a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
68 lines
3.2 KiB
Markdown
68 lines
3.2 KiB
Markdown
# V2 AI 知识库上传任务与配置执行时间线闭环
|
|
|
|
日期:2026-06-23
|
|
|
|
## 本轮目标
|
|
|
|
按照《AI 合同平台 V2 重构版开发方案》,继续把知识库上传、文档解析、OCR、失败重试这类长流程能力收敛到 `yuqei-ai-platform`,合同 Web 只做管理展示和触发动作。
|
|
|
|
## 已完成
|
|
|
|
1. AI Platform 新增 `KnowledgeIngestionJob`
|
|
- 记录知识库上传任务状态:`queued / running / succeeded / failed`
|
|
- 记录解析状态:`pending / parsed / failed / ocr_required / ocr_skipped`
|
|
- 记录 OCR 状态:`not_required / pending / skipped / succeeded / failed`
|
|
- 记录失败原因、重试次数、关联导入批次、关联文档、worker 名称。
|
|
|
|
2. 上传接口升级为可追踪任务
|
|
- `POST /api/v1/knowledge-bases/{knowledge_base_id}/documents`
|
|
- 成功上传会返回 `ingestion_job`
|
|
- 解析失败或扫描件无可读文本时,也会落一条失败任务,并在错误响应中返回任务信息。
|
|
|
|
3. 失败重试入口
|
|
- `GET /api/v1/knowledge-ingestion-jobs`
|
|
- `POST /api/v1/knowledge-ingestion-jobs/{job_id}/retry`
|
|
- 当前 MVP 对已有关联导入批次的任务执行重建索引。
|
|
- 对解析前失败且原始文件未暂存的任务,明确返回需要重新上传,避免伪造“已重试成功”。
|
|
|
|
4. 数据库迁移
|
|
- 新增迁移:`20260623_0011_add_knowledge_ingestion_jobs.py`
|
|
- 新增表:`knowledge_ingestion_jobs`
|
|
- 增加状态、批次、文档、时间字段索引。
|
|
|
|
5. OpenAPI 与 Python SDK
|
|
- OpenAPI 增加 `KnowledgeIngestionJob` schema 和任务查询/重试接口。
|
|
- `KnowledgeDocumentUploadResult` 增加 `ingestion_job`。
|
|
- `AiQualityImprovementExecutionBundle` 增加 `knowledge_ingestion_jobs`。
|
|
- SDK 增加 `list_knowledge_ingestion_jobs`、`retry_knowledge_ingestion_job`。
|
|
|
|
6. 管理区前端
|
|
- `/admin/ai-knowledge` 增加 Ingestion jobs 任务状态区。
|
|
- 支持查看上传任务状态、解析状态、OCR 状态、失败原因、重试次数。
|
|
- 失败任务支持从页面触发 retry。
|
|
- 质量改进项详情页新增统一配置执行时间线:
|
|
- 模型参数发布/回滚
|
|
- Prompt 发布/回滚
|
|
- 知识库上传任务
|
|
- 知识库重建索引
|
|
|
|
## 与 V2 方案的一致性
|
|
|
|
- 新能力位于 `yuqei-ai-platform`,没有写入合同业务后端。
|
|
- 合同 Web 只通过 AI Platform API 代理展示和触发动作。
|
|
- SDK 与 OpenAPI 同步更新,保持 AI 中台调用边界清晰。
|
|
- OCR 目前是任务状态和扩展点,不假装已有完整 OCR 引擎。
|
|
- 真正 worker 队列后续可以直接消费 `knowledge_ingestion_jobs`,不需要推翻管理页和 SDK。
|
|
|
|
## 验证
|
|
|
|
- `python -m pytest yuqei-ai-platform\services\ai-platform-api\tests\test_platform_data.py -q`
|
|
- `python -m pytest yuqei-ai-sdk-python\tests\test_ai_platform.py -q`
|
|
- `npm --prefix yuqei-contract-platform/apps/contract-web run build`
|
|
- OpenAPI YAML 解析通过
|
|
- `git diff --check` 通过
|
|
|
|
## 后续建议
|
|
|
|
下一步可继续进入真实 worker 执行循环:把当前 API 同步解析逻辑拆成任务创建 + worker 消费,并接入对象存储暂存原始上传文件、真实 OCR provider、任务日志和幂等键。
|