fix: 稳定 RAG、合同模板搜索与页面质量检测 #8

Merged
TanWenyan merged 1 commits from wren-dev into main 2026-05-22 12:23:38 +08:00
Owner

背景

知识库配置管理和 RAG 对话页面此前会因后端 schema 检查重复执行 DDL 产生锁等待,表现为前端持续转圈或代理超时。同时合同模板模糊搜索在分类统计 SQL 中漏掉列表参数展开,PostgreSQL 会报 syntax error at or near "$2"。页面质量检测也需要使用 VLM 判定并覆盖异常分支。

主要改动

  • RAG 数据集和聊天应用 schema 检查增加类级缓存与 asyncio.Lock,避免每次请求重复执行 ALTER TABLE
  • 对 RAG schema DDL 设置短 lock_timeout,降低数据库锁等待对接口的影响。
  • 合同模板模糊搜索的分类统计 SQL 补齐 expanding bindparam,修复 tenant_code IN $2 语法错误。
  • 页面质量检测改为 VLM 判定,并在 VLM 未配置、异常或返回不可用结果时回退到 review,避免误判为通过。
  • 新增页面质量队列配置,并让 worker 启动脚本监听普通/加急页面质量队列。
  • 更新前端子仓库指针到最新提交,包含 RAG 代理超时、知识库加载和操作按钮配色修复。

影响范围

  • /api/v3/rag/datasets/*/api/v3/rag/apps* 相关后端服务。
  • 合同模板搜索接口 /api/v3/contract-templates/search
  • 页级图片质量检测任务和 worker 队列配置。
  • 前端子仓库指针,对应知识库配置管理、RAG 对话、结构比对模板上传等页面。

测试

  • .venv/bin/pytest tests/test_contract_template_search.py tests/test_page_quality_vlm.py -q:4 passed。
  • 直接调用 ContractTemplateServiceImpl().SearchTemplates(q="买卖"):返回 total=3,无 SQL 语法错误。
  • 前端 npm run lint:0 errors,存在项目历史 warning。
  • node .codex-run/verify-rag-pages.mjs:知识库管理页和对话页均无转圈、无超时文案,相关接口 200。

验收建议

  • 在合同模板页面搜索 买卖,确认接口返回 200 且结果、分类统计正常展示。
  • 打开 /chat-with-llm/dataset-manager/chat-with-llm/chat,确认页面不会持续转圈。
  • 连续访问 RAG 数据集和聊天应用接口,观察数据库不再反复执行 tenant schema DDL。
  • 提交一个页面质量检测任务,确认 VLM 正常结果和异常回退均可被记录为 pass/review/reject 中的合法状态。
  • 重启 worker 后确认页面质量普通/加急队列均被监听。
## 背景 知识库配置管理和 RAG 对话页面此前会因后端 schema 检查重复执行 DDL 产生锁等待,表现为前端持续转圈或代理超时。同时合同模板模糊搜索在分类统计 SQL 中漏掉列表参数展开,PostgreSQL 会报 `syntax error at or near "$2"`。页面质量检测也需要使用 VLM 判定并覆盖异常分支。 ## 主要改动 - RAG 数据集和聊天应用 schema 检查增加类级缓存与 `asyncio.Lock`,避免每次请求重复执行 `ALTER TABLE`。 - 对 RAG schema DDL 设置短 `lock_timeout`,降低数据库锁等待对接口的影响。 - 合同模板模糊搜索的分类统计 SQL 补齐 expanding bindparam,修复 `tenant_code IN $2` 语法错误。 - 页面质量检测改为 VLM 判定,并在 VLM 未配置、异常或返回不可用结果时回退到 `review`,避免误判为通过。 - 新增页面质量队列配置,并让 worker 启动脚本监听普通/加急页面质量队列。 - 更新前端子仓库指针到最新提交,包含 RAG 代理超时、知识库加载和操作按钮配色修复。 ## 影响范围 - `/api/v3/rag/datasets/*`、`/api/v3/rag/apps*` 相关后端服务。 - 合同模板搜索接口 `/api/v3/contract-templates/search`。 - 页级图片质量检测任务和 worker 队列配置。 - 前端子仓库指针,对应知识库配置管理、RAG 对话、结构比对模板上传等页面。 ## 测试 - `.venv/bin/pytest tests/test_contract_template_search.py tests/test_page_quality_vlm.py -q`:4 passed。 - 直接调用 `ContractTemplateServiceImpl().SearchTemplates(q="买卖")`:返回 `total=3`,无 SQL 语法错误。 - 前端 `npm run lint`:0 errors,存在项目历史 warning。 - `node .codex-run/verify-rag-pages.mjs`:知识库管理页和对话页均无转圈、无超时文案,相关接口 200。 ## 验收建议 - 在合同模板页面搜索 `买卖`,确认接口返回 200 且结果、分类统计正常展示。 - 打开 `/chat-with-llm/dataset-manager` 和 `/chat-with-llm/chat`,确认页面不会持续转圈。 - 连续访问 RAG 数据集和聊天应用接口,观察数据库不再反复执行 tenant schema DDL。 - 提交一个页面质量检测任务,确认 VLM 正常结果和异常回退均可被记录为 `pass/review/reject` 中的合法状态。 - 重启 worker 后确认页面质量普通/加急队列均被监听。
TanWenyan added 1 commit 2026-05-22 12:22:32 +08:00
TanWenyan changed title from fix: 稳定后端服务与结构比对链路 to fix: 稳定 RAG、合同模板搜索与页面质量检测 2026-05-22 12:23:37 +08:00
TanWenyan merged commit 0217c1c5ed into main 2026-05-22 12:23:38 +08:00
Sign in to join this conversation.