diff --git a/ai_knowledge_base_v2/development_records/2026-07-06-tech-decisions.md b/ai_knowledge_base_v2/development_records/2026-07-06-tech-decisions.md index 45a2d3a..436cfe2 100644 --- a/ai_knowledge_base_v2/development_records/2026-07-06-tech-decisions.md +++ b/ai_knowledge_base_v2/development_records/2026-07-06-tech-decisions.md @@ -114,3 +114,6 @@ - 开发阶段可以用 `.env`。 - 生产阶段优先使用环境变量引用或加密存储。 - 后台模型配置页展示脱敏后的 Key。 +# 补充决策:不使用向量数据库 + +当前知识库检索采用“开放知识库范围约束 + 飞书搜索/节点直读 + 关键词片段排序”,不引入 embedding 或向量数据库。具体边界和重新评估条件见 `2026-07-10-production-readiness-phase2.md`。 diff --git a/ai_knowledge_base_v2/development_records/2026-07-10-production-readiness-phase2.md b/ai_knowledge_base_v2/development_records/2026-07-10-production-readiness-phase2.md new file mode 100644 index 0000000..5848adf --- /dev/null +++ b/ai_knowledge_base_v2/development_records/2026-07-10-production-readiness-phase2.md @@ -0,0 +1,37 @@ +# 生产上线优化第二批计划与实施记录 + +## 范围 + +第一批已解决直接阻断上线的功能、安全和生产部署问题。第二批继续完成以下内容: + +1. 可观测性:结构化访问日志、请求 ID、异常关联、数据库与 Redis 就绪检查、容器健康检查。 +2. 可恢复性:完善数据库备份脚本,新增恢复脚本、备份校验和操作文档,避免“有备份但无法恢复”。 +3. 可维护性:继续拆分管理后台超大入口文件和后端高复杂度职责,保持功能行为不变。 +4. 持续验证:扩展自动化测试与发布检查,覆盖健康检查、日志中间件、备份脚本和生产配置。 + +## 知识库检索架构决策 + +本项目明确不使用向量数据库,也不在本阶段引入 embedding、向量索引或向量检索服务。 + +当前适用方案: + +- 检索范围只包含后台已开放的知识库。 +- 后端通过飞书搜索接口或飞书节点直读获取内容。 +- 在限定知识库范围内完成关键词匹配、片段选择和排序,再交给 Agent 组织回答。 +- MySQL 保存业务配置、会话和审计数据,Redis 负责缓存、限流、队列和安全状态。 + +不引入向量数据库的原因:当前知识范围、检索方式和准确性要求可以由定向搜索与飞书直读满足;增加向量数据库会引入额外的数据同步、切片、重建索引、权限一致性、部署和运维成本,而当前没有对应收益。 + +只有在以下条件出现时才重新评估,且必须先修改决策文档再实现: + +- 知识规模增长后,定向搜索无法满足召回准确率或延迟要求。 +- 大量非飞书来源的非结构化文档需要统一语义检索。 +- 已有可量化测试证明关键词/直读方案无法满足业务验收标准。 + +## 验收条件 + +- 每个请求具有请求 ID,访问日志为单行 JSON,错误日志可按请求 ID 关联。 +- `/api/health` 只表示进程存活,`/api/ready` 校验数据库与 Redis;生产容器使用就绪接口作为健康检查。 +- 备份文件非空、使用安全参数、支持压缩,并提供可执行的恢复与校验流程。 +- 管理后台入口继续减少职责,至少提取系统配置定义与对应状态逻辑。 +- 全量自动验证、前后端构建、迁移与生产 Compose 检查全部通过。