报告生成服务(独立抽取版)
从 eval_report 中抽取出的「后评价报告核心生成」链路,作为独立 FastAPI 服务运行。
保留原有的证据装配(要素表 + Milvus 向量检索)、分章 LLM 生成、表格修复、报告合并与 SSE 流式进度,
连接与原项目相同的 MySQL / Milvus / LLM 服务。
范围
- 包含:异步分章生成任务、进度查询、结果获取、SSE 实时事件、章节重试、任务取消。
- 不含:鉴权、知识库 worker、模板/范文管理、Word(docx) 导出(这些仍在原
eval_report中)。
目录结构
report_generation/
main.py FastAPI 入口
config.py 配置(DB / LLM / Embedding / Milvus / DOC_PAT)
database/ SQLAlchemy 引擎、Session、ORM 模型、建表
schemas/ Pydantic 模型
services/ 报告生成核心逻辑(含瘦身版 kb_service / docx_export_service / project_service)
function/vector_store.py Milvus 向量库封装
prompts/report_generation/ 提示词模板与章节合同
routers/report.py 报告生成 HTTP 端点
快速开始
pip install -r requirements.txt
cp .env.example .env # 按需填写 DATABASE_URL / LLM_* / EMBEDDING_* / MILVUS_DB_URL
uvicorn main:app --reload
启动后访问 http://127.0.0.1:8099/docs 查看接口文档,/health 做健康检查。
主要接口(前缀 /api/v1/write)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /projects/{project_id}/generate-sections |
预览模板章节提示词清单 |
| POST | /projects/{project_id}/generate-report-job |
创建分章异步报告生成任务 |
| GET | /projects/{project_id}/generate-report-job/{job_id} |
查询任务进度 |
| GET | /projects/{project_id}/generate-report-job/{job_id}/result |
获取任务结果 |
| GET | /projects/{project_id}/generate-report-job/{job_id}/events |
订阅实时事件(SSE) |
| POST | /projects/{project_id}/generate-report-job/{job_id}/retry-chapter |
重试指定章节 |
| POST | /projects/{project_id}/generate-report-job/{job_id}/cancel |
取消任务 |
依赖的外部数据
报告生成依赖原库中已有的项目数据:projects、element_tables / element_cells(要素表)、
report_templates / report_template_sections(模板章节)、可选的 report_section_references(参考范文),
以及 Milvus 中按项目 UUID 写入的文档向量。请确保新服务连接到已包含这些数据的 MySQL 与 Milvus。
Description
Languages
Python
100%