上市公司公告 PDF 自动化处理与知识库入库系统
从巨潮资讯网批量下载年报 PDF → 按章节智能切分 → MinerU 转 Markdown → MD 精简清洗 → WeKnora 知识库入库,全流程自动化。
流水线:股票列表 → [下载] → PDF原文件 → [切分] → PDF分片 → [转换] → MD文件 → [精简] → 知识库
| 模块 | 功能 | 输入 | 输出 |
|---|---|---|---|
| 下载 (Download) | 从巨潮资讯网批量下载年报 PDF,支持沪深北全市场 | 股票代码列表 | PDF 文件 |
| 切分 (Split) | 按章节智能拆分 PDF(每块目标 100-150 页),含转换前精简(排除封面/目录/模板页) | 单个 PDF | 多个 PDF 分片 |
| 转换 (Convert) | 调用 MinerU API 将 PDF 转 Markdown,两阶段并行提交 | PDF 分片 | MD 文件 |
| 精简 (Refine) | 9 条规则清洗 MD 内容,提取核心信息 | MD 文件 | 精简 MD |
| 知识库 (WeKnora) | 腾讯开源 RAG 框架,MD 入库 + 混合检索 | 精简 MD | 可检索知识库 |
- 后端:FastAPI + APScheduler + SQLite
- 转换:MinerU 云端 API(免费 1000 页/天,本地暂停线 3000 页/天)
- 知识库:WeKnora(默认关闭,配置环境变量启用)
- 部署:目标 Docker 容器化(Phase 5 未完成)
# 环境(Linux)
cd /opt/Project/PDF-ZL
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
# 配置(无默认密钥,缺失/弱值启动即失败)
# 编辑 .env:MINERU_API_KEY / PDFZL_ADMIN_USER / PDFZL_ADMIN_PASS / PDFZL_JWT_SECRET
# 跑测试
.venv/bin/python -m pytest tests/ -q # 52 passed
# 启动服务
.venv/bin/python -m uvicorn app.main:app --host 0.0.0.0 --port 8000
# 登录:admin + .env 里配置的 PDFZL_ADMIN_PASS| 端点 | 说明 |
|---|---|
POST /api/auth/login |
登录获取 JWT |
POST/GET/DELETE /api/tasks |
任务创建/列表/删除(删除级联清理磁盘) |
POST /api/tasks/{id}/retry |
重试任务 |
GET /api/stocks |
股票列表 |
POST /api/stocks/fetch-latest |
拉取全市场 A 股(沪深北) |
POST /api/pipeline/start |
启动流水线 |
GET /api/pipeline/quota |
MinerU 当日配额 |
POST /api/split/preview |
预览拆分方案 |
POST /api/split/{id} |
手动触发切分 |
POST /api/convert/{id}/retry |
手动重启转换(强制模式) |
POST /api/refine/{id}/run |
手动触发精简 |
POST /api/kb/ingest / search |
知识库入库/检索 |
完整 API 清单与参数见 docs/DEVELOPMENT.md。
- ✅ 后端五大模块全部完成(下载/切分/转换/精简/知识库接入),52 测试全过
- ✅ 全链路真实跑通:任务 21(光峰 688007)/ 22(澜起 688008)/ 24(东鹏 605499)
- ✅ 三轮代码审查整改完毕(安全/并发/健壮性:密钥强校验、CORS 收紧、配额账本、登录限速、任务去重等)
- ⏳ Phase 4 前端(Vue3 + Element Plus)未开始
- ⏳ Phase 5 Docker 部署未完成
- ⏳ WeKnora 待部署后配置环境变量真实启用
| 文档 | 内容 |
|---|---|
docs/交接_新会话.md |
新会话必读:当前状态/快速上手/待办/踩坑记录 |
docs/DEVELOPMENT.md |
开发总纲:架构/数据库/API/关键决策(36 条) |
docs/PROGRESS.md |
开发进度与修复记录 |
docs/MODULE_*.md |
各模块详细文档(含新手版) |
docs/KB_VECTOR_方案.md |
WeKnora 知识库方案 |
docs/审查报告_大白话版.md |
代码审查问题与修复状态 |
download/README.md |
下载模块脚本用法 |
- 真实 API key 存
.env(权限 600),永不入库 - 根目录 10 份
6880xx_*_2025年年度报告.pdf是测试样本,勿删 - 远程仓库:https://github.com/ddonggit/PDF-ZL