Files
news/README.md
T
simon 65ead54b4f docs: 文档清理与重构 — 统一为 3 个核心文档
- 删除 5 个过时/残留文档(project_plan/agent_prompt/optimization_plan/report_db_design/deploy/README)
- 新建 docs/architecture.md(项目架构:11 包职责+数据模型+配置+产物)
- 重写 docs/user-guide.md(CLI 全量+增量/断点续跑+MCP+FAQ)
- 重写 README.md(精简入口+文档索引)
- 更新 continuation.md(追加本次记录)
- 更新 .gitignore(排除 data/* 运行产物)
2026-08-22 17:10:39 +08:00

115 lines
3.5 KiB
Markdown

# 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 |
---
## 快速开始
```bash
# 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](docs/user-guide.md) | 用户手册 — CLI 全量参考、全链路、增量/断点续跑、MCP 服务、环境变量、FAQ |
| [docs/architecture.md](docs/architecture.md) | 项目架构 — 11 个包职责、数据模型、配置体系、产物目录 |
| [docs/db-schema.md](docs/db-schema.md) | 日报数据库表结构 — 供 API/前端对接 |
| [CLAUDE.md](CLAUDE.md) | AI 编码约束 |
| [continuation.md](continuation.md) | 会话恢复上下文 |
---
## 当前状态
| 已完成 | M0~M10 |
|--------|--------|
| 新闻源 | 14 个 (13 Web + 1 API: 新闻联播) |
| 数据库 | `news_report` / `news_event` (myquant 库) |
| 生产部署 | pi5 `pi@192.168.1.160`, systemd 常驻 |
| 测试 | 225+ passed (pytest) |
---
## 常用命令速查
```bash
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 结束 ——