7b33182f6796024e9eb2bb2e66cf5c3660f35d86
- P1-2: 提取 DEFAULT_NEWS_STEPS(全链路去 report+cninfo),定时/补跑/默认三处统一; 启动补跑不再误执行 cninfo 公告管道 - P1-3: 新增 scheduler/timeutil.py(调度时区统一入口,SCHEDULE_TZ 可覆盖, 默认 Asia/Shanghai);run_scheduler 定时/补跑/--once、crawler 补跑保护、 reporter 兜底日期全部改用调度时区,避免系统时区非上海时日期错位 - 新增 6 个测试;全量 282 passed
A 股 Deep Research 私有投研平台
面向 A 股投资研究的私有化 Deep Research 平台。
自动抓取财经新闻 → 正文提取 → LLM 投资事件抽取 → 向量化 → Qdrant 知识库 → MCP 语义检索 → 日报生成。
定位:A 股研究辅助与知识管理平台,非自动交易、非预测、非投资顾问。
技术栈
| 模块 | 选型 |
|---|---|
| 抓取 | Crawl4AI (httpx 静态直连 + Playwright JS 渲染) |
| 正文提取 | GNE 中文新闻正文识别 |
| 事件抽取 | DeepSeek / Qwen (百炼) |
| 向量化 | DashScope text-embedding-v3 / 本地 BGE-M3 |
| 向量库 | Qdrant 本地文件模式 (零依赖,ARM64 兼容) |
| 调度 | APScheduler + systemd |
| 服务化 | MCP (FastMCP) |
| 日报入库 | MySQL/MariaDB (pymysql) |
| 运行时 | Python 3.11 + uv |
快速开始
# 1. 安装
cd /home/pi/news
uv sync
cp .env.example .env # 编辑填写 API Key
# 2. 跑通全链路
uv run a-share pipeline --once
# 3. 语义检索
uv run a-share search "宁德时代固态电池"
# 4. 查看数据总览
uv run a-share status
文档索引
| 文档 | 说明 |
|---|---|
| docs/user-guide.md | 用户手册 — CLI 全量参考、全链路、增量/断点续跑、MCP 服务、环境变量、FAQ |
| docs/architecture.md | 项目架构 — 11 个包职责、数据模型、配置体系、产物目录 |
| docs/db-schema.md | 日报数据库表结构 — 供 API/前端对接 |
| CLAUDE.md | AI 编码约束 |
| continuation.md | 会话恢复上下文 |
当前状态
| 已完成 | M0~M10 |
|---|---|
| 新闻源 | 14 个 (13 Web + 1 API: 新闻联播) |
| 数据库 | news_report / news_event (myquant 库) |
| 生产部署 | pi5 pi@192.168.1.160, systemd 常驻 |
| 测试 | 225+ passed (pytest) |
常用命令速查
uv run a-share crawl # M1 抓取
uv run a-share extract --date 20260822 # M2 提取
uv run a-share dedup --date 20260822 # M3 去重
uv run a-share events --date 20260822 # M4 LLM 抽取
uv run a-share embed --date 20260822 # M5 向量化
uv run a-share ingest --date 20260822 # M6 入库
uv run a-share pipeline --once --report # 全链路+日报
uv run a-share pipeline --once --resume # 断点续跑
uv run a-share search "关键词" # 语义检索
uv run a-share status # 数据总览
uv run a-share report --date 20260822 # 日报生成
uv run a-share cninfo # 公告抓取
uv run a-share discover <url> --add # 新增新闻源
项目结构
news/
├── crawler/ # M1 新闻抓取
├── extractor/ # M2 正文提取
├── dedup/ # M3 三层去重
├── llm/ # M4 投资事件抽取
├── embedding/ # M5 向量化
├── vectorstore/ # M6 Qdrant 知识库
├── scheduler/ # M7 定时任务 + pipeline
├── mcp_server/ # M8 MCP 服务
├── a_share_cli/ # 统一 CLI
├── report_db/ # M10 日报 DB 层
├── report_import/ # M10 历史日报导入
├── configs/ # 配置文件
├── prompts/ # LLM Prompt 模板
├── scripts/ # 独立运行脚本
├── tests/ # pytest 测试
├── docs/ # 文档
└── data/ # 数据产物
—— README 结束 ——
Languages
Python
100%