CNB RAG 智能问答系统是一个基于检索增强生成(RAG)技术的对话应用,能够结合指定知识库内容为用户提供精准、有依据的回答。该系统通过连接代码仓库的文档资源,实现了基于特定领域知识的智能问答功能。
检索增强生成:结合知识库内容生成回答,确保回答的准确性和相关性
对话历史管理:自动保存对话记录,支持多会话管理
流式响应:采用打字机效果展示 AI 回答过程,提升用户体验
知识库连接:通过 Token 验证连接指定代码仓库的文档资源
响应格式化:自动将 AI 回答转换为易读的格式,并包含参考资料链接
该项目采用前后端分离架构:
前端:使用 HTML、Tailwind CSS 和原生 JavaScript 构建,实现响应式 UI 和交互逻辑
后端:基于 Node.js 和 Express 构建,提供 API 接口对接知识库和 AI 服务
核心技术:RAG(检索增强生成)、流式处理、本地存储管理
Fork本项目
在自己Fork后的仓库中点击橙色云原生开发按钮
打开 webide 即可点击弹出的端口(默认3000)打开网页预览
Node.js 14+ 环境
有效的 CNB Token(需具备 repo-code:read 权限)
目标知识库地址(例如 cnb/docs)
git clone https://cnb.cool/valetzx/chat-cnb cd chat-cnb
npm install
node server.js
http://localhost:3000 即可使用在界面上方输入你的 CNB Token
输入目标知识库名称(格式例如 1. CNB文档:cnb/docs 2. 前端面试指南:examples/ecosystem/web-interview)
在底部输入框中提出你的问题
点击 "发送" 按钮或按 Enter 键提交问题
系统将展示 AI 的回答,并在底部列出参考资料链接
点击 "新建聊天" 按钮可开始新的对话
左侧边栏显示所有历史对话记录,点击可切换
点击对话记录旁的 "✕" 按钮可删除对应的对话
POST /api/query
用于查询指定知识库中与问题相关的内容,请求参数包括:
question:用户的问题
repo:知识库名称
token:访问令牌
POST /api/ai/chat
用于将检索到的知识和用户问题发送给 AI,获取生成的回答,请求参数包括:
repo:知识库名称
token:访问令牌
messages:对话消息数组
model:可选,指定 AI 模型(默认使用 hunyuan)
stream:可选,是否启用流式响应(默认 true)
确保你的 CNB Token 拥有正确的权限(repo-code:read)
知识库名称需准确无误,格式应为 "所有者 / 仓库名"
对话记录存储在浏览器本地存储中,清除浏览器数据可能导致记录丢失
长时间未活动可能需要重新验证 Token