a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
76 lines
3.5 KiB
Markdown
76 lines
3.5 KiB
Markdown
# AI 合同平台 V2 性能基线收口
|
|
|
|
日期:2026-06-26
|
|
|
|
## 结论
|
|
|
|
当前 V2 的性能收口已经有可交付基线,不再停留在“只做了索引优化”:
|
|
|
|
- 常规合同列表、审批时间线、文件仓库、AI Trace、知识库管理等高频路径已进入毫秒级。
|
|
- 合同统一搜索已从 `contracts.body_content` 的直接全表扫描,收口到 `contract_search_documents`。
|
|
- AI 中台知识库检索已完成 pgvector HNSW 和 `search_vector` 两条路径的优化。
|
|
- 现阶段最大的风险不在普通列表,而在真实生产数据下的搜索回归和向量检索形态偏移。
|
|
|
|
## 已有基线来源
|
|
|
|
- `project-docs/V2-database-performance-baseline-2026-06-24.md`
|
|
- `project-docs/V2-database-postgresql-explain-baseline-2026-06-24.md`
|
|
- `project-docs/V2-database-keyword-search-sql-optimization-2026-06-24.md`
|
|
- `project-docs/V2-database-pgvector-hnsw-query-shape-2026-06-24.md`
|
|
- `project-docs/V2-database-search-document-tsvector-2026-06-24.md`
|
|
- `project-docs/qa-artifacts/v2-database-explain-baseline/2026-06-24T18-45-59/explain-summary.tsv`
|
|
- `project-docs/V2-interface-performance-baseline-2026-06-27.md`
|
|
- `project-docs/qa-artifacts/v2-interface-benchmark/2026-06-27T00-51-47/interface-benchmark-summary.json`
|
|
|
|
## 关键结果
|
|
|
|
### 合同库
|
|
|
|
| 查询 | warm-cache |
|
|
| --- | ---: |
|
|
| 合同列表按状态 | 0.233 ms |
|
|
| 合同状态计数 | 0.692 ms |
|
|
| 文件仓库按合同 | 0.113 ms |
|
|
| 审查 worker 领取 | 0.053 ms |
|
|
| 合同审计时间线 | 0.110 ms |
|
|
| 审批时间线 | 0.090 ms |
|
|
|
|
### 合同搜索
|
|
|
|
| 查询 | warm-cache | 结论 |
|
|
| --- | ---: | --- |
|
|
| 合同正文统一搜索 | 0.273 ms | 已切到 `contract_search_documents` |
|
|
| 审查任务统一搜索 | 0.166 ms | 已切到 `contract_search_documents` |
|
|
|
|
### AI 库
|
|
|
|
| 查询 | warm-cache |
|
|
| --- | ---: |
|
|
| AI Trace 最新列表 | 0.168 ms |
|
|
| AI Trace 按 provider/model | 0.336 ms |
|
|
| AI 质量看板 14 天窗口 | 8.959 ms |
|
|
| 知识库文档按 base/status | 0.248 ms |
|
|
| 知识库关键词检索 | 0.296 ms |
|
|
| 知识库向量检索 HNSW | 1.051 ms |
|
|
| worker 执行时间线 | 0.256 ms |
|
|
|
|
## 现阶段判断
|
|
|
|
- DB/EXPLAIN 基线足以支撑 Phase 7 收口和 smoke 交付。
|
|
- 准生产接口级压测已经完成,7 个场景、420 次正式请求全部返回 `200`,总错误率 `0%`。
|
|
- 接口性能门禁尚未完全通过:合同详情和知识库 chunk 混合检索达标;合同列表、审批待办、统一搜索、AI Trace、知识库文档检索需要优化后复测。
|
|
- 合同正文搜索和审查任务搜索已经不再是最大数据库性能风险,但统一搜索在 HTTP 层仍需控制响应体和序列化成本。
|
|
- 后续真正要盯的是:
|
|
- `knowledge-documents/search` 当前 p95 为 `10694.15 ms`,需要从 Python 侧过滤切到数据库侧全文检索或搜索文档表。
|
|
- `audit/ai-runs?limit=5` 平均响应体约 `504 KB`,需要拆分轻量列表和详情懒加载。
|
|
- 生产数据规模上来以后,`search_vector` 和 HNSW 是否继续命中。
|
|
- `ai_run_audits`、`contract_search_documents` 是否需要更进一步的归档或分区。
|
|
- 真实法规库导入后,RAG 查询是否保持稳定的命中率和延迟。
|
|
|
|
## 下一步建议
|
|
|
|
1. 先优化 `knowledge-documents/search` 和 `audit/ai-runs` 列表,再复跑 `yuqei-infra/scripts/run-interface-benchmark.py`。
|
|
2. 保留当前 `EXPLAIN ANALYZE` 和接口压测结果,作为发布前回归门槛。
|
|
3. 把性能回归检查纳入 smoke 或发布前验证脚本。
|
|
4. 在接口 p95 达标前,不建议把“生产上线性能门禁”标记为通过。
|