34 lines
2.8 KiB
Markdown
34 lines
2.8 KiB
Markdown
# 检索报错修复已上线
|
||
|
||
2026-09-16,服务器 192.168.110.111;入口 http://192.168.110.111:8369/#/knowledge/center。
|
||
|
||
## 原因及修复
|
||
|
||
旧构建在检索问题为空或不足 2 个字符时直接提交请求,FastAPI 返回 detail 校验数组,通用错误处理把对象传入消息组件,显示 `[object Object]`。本地使用旧构建和模拟账号完整复现了截图中的提示;线上日志未提供可匹配的检索访问记录,因此没有声称捕获了用户当次具体请求。
|
||
|
||
- 前端先去除首尾空白,按 Unicode 字符校验 2–2000 字符,非法输入直接展示中文说明,不发送无效请求;后端同步先去除空白再校验。
|
||
- 公共错误提示支持字符串、FastAPI 校验数组和嵌套消息,避免直接展示对象及校验响应中的 input。
|
||
- 兼容请求客户端先解包 response.data 再抛错的行为,检索区域持续显示具体错误;失败后清除旧命中结果,捕获请求异常。
|
||
- 没有已发布知识的账号展示先审核并发布的说明;合法检索仍正常返回空结果。草稿、待发布知识仍不参与检索。
|
||
|
||
## 验证
|
||
|
||
- 本地及服务器候选容器各通过 96 项后端回归测试。
|
||
- 10 项前端错误格式与批量操作测试、类型检查、生产构建通过。
|
||
- 隔离浏览器验证空白、单字、超长问题拦截;正常问题回车检索及首尾空白处理;模拟 422 数组中文错误;清除旧结果;空知识库提示,无页面脚本错误。
|
||
- 模拟账号的 3 条知识分别为已发布、待发布、草稿,正常检索仅命中已发布的 1 条。线上测试没有发布或审核真实知识,没有发送真实聊天至模型。
|
||
- 241 个部署文件、236 个运行镜像文件哈希一致;实际内网入口与新页面资源正常;未登录检索请求返回 401。
|
||
- API、网关健康,Worker 运行;三个容器重启计数均为 0。数据库 quick_check=ok,校验时归档消息 545095 条、知识 259 条,原有数据保留。
|
||
|
||
## 版本及回滚
|
||
|
||
- 发布目录:/home/ps/knowledge-v5-search-20260916。
|
||
- 镜像:zyt/wecom-admin:knowledge-v5-search-20260916(current)。
|
||
- 镜像 ID:sha256:1d6df0547b32c29ab28c6d96c0a434f5587cb1b62e97c7aaa0a454c4932c1976。
|
||
- 旧镜像:zyt/wecom-admin:before-knowledge-v5-search-20260916。
|
||
- 源码备份:发布目录 source-before.tar.gz。
|
||
- 数据库与密钥备份:/opt/im-admin/deploy/im-admin/data/backups/knowledge-v5-search-20260916。固定读快照耗时 10.5 秒、文件 4505079808 字节,重新只读打开检查正常。
|
||
- 回滚:bash /home/ps/knowledge-v5-search-20260916/rollback.sh。恢复代码和镜像,保留线上数据库与新增聊天。
|
||
|
||
部署记录:deploy/knowledge-v5-search-20260916。浏览器验证:deploy/knowledge-v5-search/qa/result.json 及前后截图。
|