6.2 KiB
05-AI知识库系统_AI-RAG技术方案设计_V1.0 (1).docx
《05-AI 知识库系统 AI/RAG 技术方案设计》
第一章 技术架构
1.1 总体架构
第二章 技术选型
第三章 RAG 流程
3.1 总体流程
第四章 权限过滤
4.1 核心原则
AI 只能访问用户拥有权限的知识库。
例如:
用户A:
直播运营
客服SOP
提问:
如何搭建直播间?
系统:
仅检索:
直播运营
客服SOP
不会访问:
销售知识库
人事知识库
财务知识库
4.2 权限流程
第五章 飞书知识库接入
5.1 接入原则
根据已确认需求:
飞书知识库作为唯一知识源
不建立本地知识副本
不做手动同步
每次提问实时检索
5.2 更新机制
无需后台点击同步。
5.3 异常处理
默认:
自动重试 2 次(后台可配置 0~3 次)
全部失败:
返回:
当前知识库服务暂时不可用,请稍后再试。
后台记录:
请求参数
错误原因
响应时间
用户信息
第六章 Prompt 组装
6.1 Prompt 组成
最终 Prompt 由四部分组成:
6.2 系统 Prompt
来源:
后台 Prompt 管理。
保存后立即生效。
6.3 知识片段
来源:
飞书实时检索结果。
不做修改。
6.4 上下文
后台配置:
Token 模式(推荐)
最近 N 轮模式
超出限制:
自动截断最早内容。
第七章 AI 回复策略
7.1 有知识命中
流程:
7.2 无知识命中
返回:
当前知识库中未检索到相关内容,请联系管理员补充相关知识。
禁止:
自行编造答案
使用模型已有知识补充
7.3 多知识库冲突
例如:
知识库A:
建议直播2小时。
知识库B:
建议直播4小时。
返回:
AI 不进行裁决。
第八章 Streaming 输出
8.1 输出方式
采用 Server-Sent Events(SSE)。
流程:
8.2 停止生成
用户点击:
停止生成
系统:
取消模型请求
保留已生成内容
消息状态更新为 STOPPED
第九章 超时与异常
9.1 AI 超时
后台配置:
默认:
30 秒
超时:
终止请求
返回统一提示
写入 AI 请求日志
9.2 飞书异常
重试结束仍失败:
知识库服务暂时不可用,请稍后再试。
9.3 模型异常
返回:
AI 服务暂时不可用,请稍后重试。
第十章 日志记录
每次 AI 调用记录:
用户ID
会话ID
模型名称
Prompt(建议生产环境可配置是否完整保存)
检索知识库
Token 消耗
请求耗时
调用状态
错误信息(如有)
第十一章 性能建议
并发
建议:
API 无状态部署
Redis 保存验证码、登录态缓存等(按实际架构)
AI 服务独立部署
数据库
建议索引:
user_id
session_id
knowledge_id
created_at
超时
飞书接口:建议 10 秒以内
AI 请求:默认 30 秒,可后台配置
第十二章 V2 扩展规划(预留)
在不影响 V1 架构的前提下,可扩展:
向量数据库(Milvus / pgvector 等)
文档上传(PDF、Word、Excel)
图片 OCR
多 Prompt 模板
多模型路由
多租户
联网搜索
知识召回优化
AI 回复质量评估
在线设备管理
《AI/RAG 技术方案》第一版完成
本技术方案与前面的 PRD、SRS、数据库设计、API 文档保持一致,覆盖了:
总体架构
RAG 工作流
飞书知识库实时检索
权限过滤
Prompt 组装
AI 回复策略
SSE 流式输出
超时与异常处理
日志记录
后续扩展规划
Table 1
| 版本 | V1.0 |
|---|---|
| 架构模式 | RAG(Retrieval-Augmented Generation) |
| 适用范围 | V1.0 |
Table 2
| 用户(Web/H5) │ 手机号 + 短信验证码登录 │ API Gateway / Backend │ ┌───────────┼───────────┐ │ │ │ 用户服务 AI服务(RAG) 后台管理 │ │ │ │ ▼ │ │ 权限校验模块 │ │ │ │ │ Prompt组装模块 │ │ │ │ │ 飞书知识检索 │ │ │ │ │ 大模型调用 │ │ │ │ └───────────▼───────────┘ MySQL 数据库 |
|---|
Table 3
| 模块 | 建议方案 |
|---|---|
| 前端 | Vue3 + TypeScript + Element Plus(后台)、H5 用户端 |
| 后端 | Java Spring Boot 3.x(或 NestJS,二选一) |
| 数据库 | MySQL 8.x |
| 缓存 | Redis |
| AI 模型 | 后台可切换(一期仅启用一个) |
| 知识源 | 飞书知识库 |
| 通信 | REST + SSE(Streaming) |
| 身份认证 | JWT |
Table 4
| 用户提问 │ ▼ 登录校验 │ ▼ 账号状态校验 │ ▼ 聊天次数校验 │ ▼ 获取用户知识库权限 │ ▼ 过滤无权限知识库 │ ▼ 实时访问飞书知识库 │ ▼ 获取知识片段 │ ▼ 组装 Prompt │ ▼ 调用 AI 模型 │ ▼ Streaming 输出 │ ▼ 保存聊天记录 |
|---|
Table 5
| UserID │ ▼ 查询用户知识库权限 │ ▼ 过滤已过期权限 │ ▼ 过滤禁用知识库 │ ▼ 得到最终检索范围 |
|---|
Table 6
| 飞书修改文档 │ ▼ 用户下一次提问 │ ▼ 实时读取最新内容 |
|---|
Table 7
| ① 系统 Prompt + ② 检索到的知识片段 + ③ 当前会话上下文 + ④ 用户当前问题 |
|---|
Table 8
| 知识命中 ↓ 引用知识 ↓ 生成答案 |
|---|
Table 9
| 知识库A: …… 知识库B: …… 当前知识库存在不同观点, 以上内容分别来源于不同知识库, 请结合实际业务判断。 |
|---|
Table 10
| AI生成 Token │ ▼ 实时发送 │ ▼ 前端逐步渲染 |
|---|