# newsLLM **Repository Path**: Sckaro/news-llm ## Basic Information - **Project Name**: newsLLM - **Description**: Python大模型应用项目--适用于了解最新消息,解析时政新闻。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-07 - **Last Updated**: 2025-11-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NewsLLM - AI新闻助手 NewsLLM是一个智能新闻聚合和分析系统,能够自动抓取新闻、分类整理、生成摘要,并通过AI技术提供深度分析。 ## 功能特点 - **新闻自动抓取**:从多个主流新闻源自动抓取最新资讯 - **智能分类**:基于关键词权重算法对新闻进行主题和来源分类 - **AI摘要生成**:利用通义千问大模型生成每日新闻导览摘要 - **Web界面展示**:提供友好的Web界面浏览和分析新闻 - **定时任务**:支持定时自动生成和发送新闻报告 - **邮件推送**:可配置邮件功能,定期推送新闻摘要 - **响应式设计**:支持深色/浅色模式切换,适配各种设备 ## 技术架构 ### 核心技术栈 - **新闻处理**:Newspaper3k, Requests - **AI模型**:通义千问(Qwen) via LangChain - **Web框架**:Flask - **模板引擎**:Jinja2 - **任务调度**:APScheduler - **前端技术**:HTML5, CSS3, JavaScript - **其他组件**:Markdown, Click ### 项目结构 ``` newsLLM/ ├── main.py # 程序入口 ├── news_load.py # 新闻抓取和分类模块 ├── news_analysis_app.py # Flask Web应用 ├── convert_to_html.py # Markdown转HTML工具 ├── emailTool.py # 邮件发送模块 ├── scheduler.py # 定时任务调度器 ├── langchain_qwen_llm.py# Qwen模型接入 ├── web_loader.py # 网页内容加载器 ├── requirements.txt # 项目依赖 └── templates/ # HTML模板目录 ``` ## 快速开始 ### 环境要求 - Python 3.8+ - 有效的通义千问API密钥 ### 安装步骤 1. 克隆项目代码: ```bash git clone cd newsLLM ``` 2. 安装依赖: ```bash pip install -r requirements.txt ``` 3. 配置API密钥: 在环境变量中设置您的通义千问API密钥: ```bash export DASHSCOPE_API_KEY=your_api_key_here ``` 或者创建`.env`文件并在其中添加: ``` DASHSCOPE_API_KEY=your_api_key_here ``` 4. (可选)配置邮件发送功能: 创建[email_config.json](file:///D:/data/code/Python/newsLLM/email_config.json)文件并填入相应配置: ```json { "sender": "your_email@example.com", "receiver": "recipient@example.com", "email_password": "your_email_password_or_app_specific_password", "email_server": "smtp.example.com", "email_port": 587 } ``` ### 运行应用 直接运行主程序: ```bash python main.py ``` 程序将执行以下操作: 1. 抓取新闻并分类 2. 生成今日导览摘要 3. 输出Markdown和HTML格式的新闻报告 4. 启动Web服务以供在线浏览和分析 5. 启动定时任务调度器 ## 使用说明 ### 浏览新闻报告 运行程序后,系统会自动生成当日新闻报告,并在浏览器中打开。您也可以访问以下URL: - http://localhost:8080 - 新闻列表页面 - http://localhost:8080/detail/ - 特定新闻的详细分析页面 ### Web界面功能 1. **新闻列表页**: - 展示按主题和来源分类的新闻 - 点击新闻标题可查看详细分析 2. **新闻详情页**: - 展示原始新闻链接 - 提供由AI生成的深度分析内容 - 支持返回新闻列表 ### 定时任务 系统集成了APScheduler定时任务框架,默认配置为每天20:00执行一次新闻抓取和报告生成任务,并可根据配置发送邮件。 ## 配置项 ### 新闻源配置 可在[news_load.py](file:///D:/data/code/Python/newsLLM/news_load.py)中修改`NEWS_SOURCES`变量来自定义新闻源网站。 ### 分类关键词配置 系统通过关键词匹配实现新闻分类,可在[news_load.py](file:///D:/data/code/Python/newsLLM/news_load.py)中调整`KEYWORDS_WITH_WEIGHT`变量来优化分类效果。 ### AI模型配置 在[langchain_qwen_llm.py](file:///D:/data/code/Python/newsLLM/langchain_qwen_llm.py)中可以调整模型参数和提示词模板。 ## 工作原理 1. **新闻采集**:使用Newspaper3k库从预设的新闻源抓取文章 2. **智能分类**:基于关键词权重算法对新闻进行主题和来源分类 3. **摘要生成**:调用通义千问API生成当日新闻导览摘要 4. **报告输出**:生成Markdown和HTML格式的新闻报告 5. **Web服务**:启动Flask应用,提供在线浏览和AI分析功能 6. **定时任务**:使用APScheduler定期执行新闻采集和报告生成 ## 贡献指南 欢迎提交Issue和Pull Request来帮助改善项目。 ## 许可证 本项目采用MIT许可证,详情请见[LICENSE](file:///D:/data/code/Python/newsLLM/LICENSE)文件(如存在)。