logo
0
0
WeChat Login
Lawrenceeeeeeee<775569157@qq.com>
feat: 完善早报生成系统,添加定时任务调度与环境配置

News Morning Brief Generator

自动新闻聚合与早报生成系统 - 每日为投资者生成精选新闻早报并推送至飞书群。

功能特性

  • 多源新闻聚合 - 从 CBS News、中新网等多个 RSS 源获取新闻
  • 智能内容提取 - 自动提取文章正文内容
  • AI 摘要生成 - 使用通义千问大模型生成中文摘要
  • 智能新闻筛选 - AI 自动筛选对投资者最重要的 10 条新闻
  • 自动推送 - 每日定时发送至飞书群聊
  • 数据持久化 - PostgreSQL 存储新闻数据,支持去重

技术栈

  • Python 3.12+
  • 数据库: PostgreSQL 16
  • AI/LLM: LangChain + 阿里云通义千问
  • 消息推送: 飞书开放平台 API
  • 容器化: Docker + Docker Compose

项目结构

. ├── main.py # 入口文件 - 定时任务调度 ├── pyproject.toml # 项目依赖配置 ├── config.toml # RSS 订阅源配置 ├── docker-compose.yml # Docker 服务编排 ├── Dockerfile # 应用镜像构建 ├── .env # 环境变量(需手动创建) └── src/news/ # 源码目录 ├── db.py # 数据库操作 ├── get_news.py # 新闻获取与内容提取 ├── summarize.py # AI 摘要生成 ├── generate_news.py # 早报生成 └── send.py # 飞书消息推送

快速开始

1. 配置环境变量

创建 .env 文件:

# PostgreSQL 数据库配置 PSQL_HOST=db PSQL_PORT=5432 PSQL_DATABASE=news_db PSQL_USER=postgres PSQL_PASSWORD=your_password # 阿里云 DashScope API(通义千问) DASHSCOPE_API_KEY=your_api_key DASHSCOPE_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1 # 飞书应用配置 APP_ID=cli_xxxxxxxx APP_SECRET=xxxxxxxx GROUP_CHAT_ID=oc_xxxxxxxx

2. 启动服务

docker compose up -d

服务将自动执行:

  • 启动 PostgreSQL 数据库
  • 构建并运行新闻应用
  • 每日早 8:00 自动生成并推送早报

3. 查看日志

docker compose logs -f news-app

本地开发

# 安装依赖 uv pip install -e . # 运行调度器 uv run python main.py # 手动执行单次任务 uv run python -c "from news.generate_news import main; main()"

配置文件

编辑 config.toml 添加或修改 RSS 订阅源:

rss_urls = [ "https://www.cbsnews.com/latest/rss/main", "https://www.cbsnews.com/latest/rss/technology", "https://www.chinanews.com.cn/rss/finance.xml", # 添加更多 RSS 源... ]

工作流程

  1. 定时触发 - APScheduler 每日 8:00 启动任务
  2. 获取新闻 - 从配置的 RSS 源拉取最新新闻
  3. 内容提取 - 提取文章正文,过滤重复内容
  4. 生成摘要 - 调用大模型生成中文摘要
  5. 智能筛选 - AI 挑选对投资者最重要的 10 条新闻
  6. 生成早报 - 格式化为 Markdown 格式
  7. 推送消息 - 发送至飞书指定群聊