a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
2.3 KiB
2.3 KiB
V2 合同审查 worker 异步化闭环记录
日期:2026-06-24
本轮目标
把合同审查从“详情页按钮同步等待 AI 返回”改为“创建审查任务后由合同侧 worker 异步执行”,降低用户操作负担,并支持运行中状态、失败重试和详情页自动刷新。
架构边界
yuqei-contract-platform:只负责合同、附件、审查任务状态、失败重试、详情页展示。yuqei-ai-platform:继续负责模型调用、RAG 检索、法条依据、AI 审计和质量评测。yuqei-ai-sdk-python:继续作为合同系统调用 AI 中台的正式 SDK。yuqei-infra:补充contract-review-worker容器运行入口。
本轮没有把模型参数、Prompt 拼接、知识库检索逻辑塞回合同系统,符合 V2 重构版方案。
已完成
-
review_tasks增加 worker 状态字段:started_atcompleted_atretry_countworker_name
-
Contract API 新增任务队列能力:
- 创建审查任务后状态为
queued。 - worker 领取任务后状态变为
running。 - AI 审查成功后状态变为
succeeded,并回写风险项、依据、AI Trace。 - AI 审查失败后状态变为
failed,保留错误信息。 - 失败任务可通过原
/run入口重新排队。
- 创建审查任务后状态为
-
新增合同审查 worker:
- 模块:
yuqei_contract_api.review_worker - 支持
--health - 支持
--run-once - 默认循环消费 queued 审查任务。
- 模块:
-
前端详情页体验调整:
queued状态显示“已加入审查队列”。running状态显示“AI 正在审查,页面会自动刷新”。- 失败状态才显示“重新排队”按钮。
- 详情页在存在 queued/running 任务时自动刷新。
-
部署配置:
- Docker Compose 增加
contract-review-worker服务。 - contract-api 镜像补齐
psycopg[binary]和alembic依赖。
- Docker Compose 增加
简化原则
用户主流程保持为:
上传合同 / 进入详情 -> 发起审查 -> 等待结果自动刷新 -> 根据结果修改或提交审批
用户不需要理解模型、Prompt、RAG、worker、队列等技术细节。
后续建议
下一轮可以做“审查任务队列轻量可视化”,只给管理员看 worker 健康、最近失败任务和重试入口;普通用户继续只看到“下一步操作”和审查结果。