11 KiB
11 KiB
按阶段执行任务拆解清单
1. 文档目的
本文档基于以下两份已确认文档继续往下拆:
目标是把后续工作拆成可执行任务,方便逐项审核、排期、实施和验收。
2. 执行总原则
每项任务都按同一口径执行:
- 业务语义按旧项目保持一致
- 代码实现按当前
leaudit-platform规范落地 - 先做 P0,再做 P1,最后做 P2
每项任务都要求明确:
- 改什么
- 改哪里
- 不改什么
- 做完怎么验
3. 第一阶段:P0 闭环恢复
3.1 P0-1 恢复报告产物闭环
目标
恢复一次 govdoc run 完成后的正式产物闭环:
annotated.docxreport.htmlparagraphs.html
后端任务
- 将旧项目报告生成逻辑映射到当前
govdoc_bridge执行链路。 - 在 run 执行完成后,正式生成报告产物,而不是只写规则结果。
- 将生成后的产物上传到平台正式存储。
- 将产物索引写入
govdoc_report_artifacts。 - 确保同一 run 重复执行时,产物记录的覆盖/新增策略明确。
前端任务
- 详情页的
批注 DOCX、报告 HTML仅在真实产物存在时开放。 - 列表页“报告”入口指向真实 HTML 报告。
- 如果产物不存在,页面应明确呈现“未生成”,不能假成功。
SQL / 环境任务
- 核对
govdoc_report_artifacts字段是否满足产物索引需要。 - 明确 OSS 路径命名规则和产物类型枚举。
重点文件
fastapi_modules/fastapi_leaudit/govdoc_bridge/result_adapter.pyfastapi_modules/fastapi_leaudit/govdoc_bridge/runner.pyfastapi_modules/fastapi_leaudit/govdoc_bridge/storage_adapter.pyfastapi_modules/fastapi_leaudit/services/impl/govdocServiceImpl.pylegal-platform-frontend/components/govdoc-audit/audit.tsxlegal-platform-frontend/components/govdoc-audit/audits.tsx
不改事项
- 不改现有文档主档模型
- 不改
document + run结构 - 不改页面主入口语义
完成标准
- 新上传一份文档,run 完成后可下载批注 DOCX
- 新上传一份文档,run 完成后可打开 HTML 报告
- 段落视图可正常渲染并联动 findings
3.2 P0-2 收口详情结果对象
目标
把当前分散在多个接口里的详情结果,收口为稳定可渲染的完整业务对象。
后端任务
- 明确详情页主接口的返回语义。
- 确保以下数据在同一条业务语义上成立:
summaryfindingschecked_rulesentitiesstructureoutlinereports
- 明确“默认 latest run”和“指定历史 run”的组装规则。
- 保证
checked_rules、findings、summary三者统计一致。
前端任务
- 详情页 API 适配层统一按
documentId工作。 - 历史 run 切换后,页面所有标签页和产物入口同步切换。
- 错误态统一,不再出现部分接口成功、部分接口失败导致的半渲染页面。
SQL / 环境任务
- 核对 run 结果摘要字段与详情页所需数据是否匹配。
- 明确
result_summary_json的职责边界,避免前后重复计算。
重点文件
fastapi_modules/fastapi_leaudit/services/impl/govdocServiceImpl.pylegal-platform-frontend/lib/api/govdoc-audit/api.tslegal-platform-frontend/components/govdoc-audit/audit.tsx
不改事项
- 不把详情入口改回
runId主入口 - 不把前端强行改成只看局部接口数据
完成标准
- 详情页首次打开就能完整稳定渲染
- 切换历史 run 后,结果、报告、段落视图一致切换
- 不再依赖“某几个接口恰好成功”才能正常展示
3.3 P0-3 规则版本正式接入执行链路
目标
把 ruleVersionId 从“接口参数”变成“实际生效规则版本”。
后端任务
- 明确
govdoc模块应如何接入平台现有规则版本治理。 - 打通:
- 上传文档传入
ruleVersionId - 手动创建 run 传入
ruleVersionId - run 执行阶段解析规则版本
- 实际加载该版本规则内容
- 上传文档传入
- 在 run 记录中保存本次实际使用的规则版本信息。
GetRuleDetail/ListRules应与当前生效规则版本一致。
前端任务
- 如果当前阶段不开放规则版本选择,则隐藏选择能力,避免假入口。
- 如果开放规则版本选择,则页面选中的版本必须真生效。
SQL / 环境任务
- 明确
govdoc与平台规则版本表的关联方式。 - 如需新增字段或绑定关系,纳入正式 schema / migration。
重点文件
fastapi_modules/fastapi_leaudit/controllers/govdocController.pyfastapi_modules/fastapi_leaudit/services/impl/govdocServiceImpl.pyfastapi_modules/fastapi_leaudit/govdoc_bridge/tasks.py- 平台规则版本治理相关实现
不改事项
- 不长期依赖硬编码本地规则路径作为正式方案
完成标准
- 指定规则版本后,执行结果能证明使用的是该版本
- 审查结果页、规则页、run 记录的规则版本信息一致
3.4 P0-4 数据库与初始化正式化
目标
将当前运行时兜底初始化,收口为正式初始化方案。
后端任务
- 梳理
govdoc所需正式表、索引、字段、默认值。 - 明确哪些保留运行时兜底,哪些必须前置初始化。
- 去掉“必须先访问接口一次,表才建出来”的隐性依赖。
前端任务
- 无直接改动要求,主要配合环境验证。
SQL / 环境任务
- 整理并核对:
govdoc_runsgovdoc_rule_resultsgovdoc_report_artifactsleaudit_documents.engine_type
- 核对权限、菜单、entry module 种子 SQL。
- 新环境按正式 SQL 能一次初始化完成。
重点文件
scripts/创建sql/schema_add_govdoc_module.sql- 权限与 entry module 相关 seed SQL
fastapi_modules/fastapi_leaudit/services/impl/govdocServiceImpl.py
不改事项
- 不删除必要兜底逻辑前,先保证正式初始化可跑通
完成标准
- 全新环境初始化后可直接运行
- 不再出现缺表导致的 404/500
4. 第二阶段:P1 质量与一致性补齐
4.1 P1-1 核心实体识别调优
目标
优先把对业务最关键的实体识别稳定下来:
- 标题
- 发文字号
- 日期
- 署名
- 主送机关
- 文种
后端任务
- 梳理旧项目实体抽取逻辑与当前
govdoc_engine的差异。 - 逐项修正:
docx_parserrole_tagger_ruleentity_builder
- 确保“先结构化抽取,后差量 LLM 抽取”的语义不变。
前端任务
- 实体页展示逻辑跟随后端真实结果,不自行兜假值。
验证任务
- 选取典型正反例文档做实体识别比对。
- 建一组固定验收样本。
完成标准
- 核心实体识别达到可验收水平
- 正反例结果基本符合业务预期
4.2 P1-2 高频规则误判修正
目标
优先解决最影响结果可信度的规则误判/漏判。
后端任务
- 梳理当前高频错判规则。
- 修正规则 YAML、规则执行逻辑或实体依赖。
- 确保
findings与checked_rules状态一致。
重点文件
rules/govdoc/govdoc_general/rules.yaml- 相关 parser / engine check 实现
完成标准
- 典型样本下不再出现明显错误结论
- 高优先级规则结果可解释
4.3 P1-3 文件能力与页面提示统一
目标
把“系统真正支持什么文件”和“页面告诉用户支持什么文件”统一起来。
后端任务
- 明确当前阶段是否恢复
.doc / .wps -> docx转换能力。 - 如果恢复,补齐转换链路。
- 如果不恢复,统一收口为
.docx,并形成明确业务口径。
前端任务
- 上传页提示、accept、错误提示与后端能力一致。
- 列表筛选文件类型与实际能力一致。
重点文件
fastapi_modules/fastapi_leaudit/services/impl/govdocServiceImpl.pylegal-platform-frontend/components/govdoc-audit/upload-zone.tsxlegal-platform-frontend/components/govdoc-audit/audits.tsx
完成标准
- 用户不会再看到“页面允许、后端拒绝”的不一致
4.4 P1-4 列表、详情、历史 run 语义统一
目标
把文档主模型和历史 run 语义真正落成产品行为。
后端任务
- 明确列表展示的是“文档最新结果”。
- 明确详情默认 latest run,支持历史 run 切换。
- 明确首页统计按文档 latest run 计算。
前端任务
- 列表跳详情统一按
documentId。 - 历史 run 的显示、切换、当前标识明确。
- 避免再混用
documentId和runId做同一主键字段。
完成标准
- 同一文档多次执行后,用户能看懂当前结果和历史结果
- 列表、详情、统计三处的“最新结果”口径一致
5. 第三阶段:P2 治理与收尾
5.1 P2-1 实体结果结构化治理
目标
评估是否需要独立实体表或更正式的结构化结果域。
任务
- 梳理现有
result_summary_json承载内容。 - 明确哪些长期适合 JSON,哪些适合结构化。
- 如需拆表,作为后续治理任务安排,不阻塞 P0/P1。
5.2 P2-2 文档同步更新
目标
让内部文档反映当前真实代码状态和业务边界。
任务
- 更新运行依赖说明。
- 更新现状偏差与补齐计划。
- 更新接口、权限、环境说明。
5.3 P2-3 测试与演示数据收尾
目标
为提测和演示整理稳定环境。
任务
- 清理历史失败 run 和无效测试文档。
- 沉淀一组固定验收样本。
- 明确演示环境初始化步骤。
6. 推荐执行顺序
建议实际开发顺序如下:
P0-1报告产物闭环P0-2详情结果对象收口P0-4数据库与初始化正式化P0-3规则版本正式接入P1-1核心实体识别调优P1-2高频规则误判修正P1-3文件能力与页面提示统一P1-4列表、详情、历史 run 语义统一P2治理与文档收尾
之所以把 P0-4 放到 P0-3 前面,是因为:
- 没有稳定环境初始化,规则接入和报告链路都容易被环境问题反复干扰
7. 建议的每轮交付节奏
为了避免一次改太大,建议每轮只交付一个可验证闭环。
第一轮
- 报告产物闭环
- 详情页真实可下载/可打开报告
第二轮
- 规则版本正式接入
- 规则页与执行结果规则版本一致
第三轮
- 核心实体识别调优
- 高频规则误判修正
第四轮
- 文件能力统一
- 历史 run 与列表/详情语义统一
第五轮
- 文档、数据、治理收尾
8. 最终结论
后续实施不应再以“能不能先跑起来”为目标,而应以:
- 是否恢复完整业务闭环
- 是否符合当前平台规范
作为唯一标准。
按这个拆解顺序执行,内部公文模块就能在不改业务逻辑的前提下,逐阶段恢复为一套真正可验收、可维护、可持续扩展的正式模块。