logo
11
3
Login
编辑文件 README.md

CNB RAG 智能问答系统

CNB RAG 智能问答系统是一个基于检索增强生成(RAG)技术的对话应用,能够结合指定知识库内容为用户提供精准、有依据的回答。该系统通过连接代码仓库的文档资源,实现了基于特定领域知识的智能问答功能。

功能特点

  • 检索增强生成:结合知识库内容生成回答,确保回答的准确性和相关性

  • 对话历史管理:自动保存对话记录,支持多会话管理

  • 流式响应:采用打字机效果展示 AI 回答过程,提升用户体验

  • 知识库连接:通过 Token 验证连接指定代码仓库的文档资源

  • 响应格式化:自动将 AI 回答转换为易读的格式,并包含参考资料链接

技术架构

该项目采用前后端分离架构:

  • 前端:使用 HTML、Tailwind CSS 和原生 JavaScript 构建,实现响应式 UI 和交互逻辑

  • 后端:基于 Node.js 和 Express 构建,提供 API 接口对接知识库和 AI 服务

  • 核心技术:RAG(检索增强生成)、流式处理、本地存储管理

快速开始

使用CNB原生开发快速预览

  • Fork本项目

  • 在自己Fork后的仓库中点击橙色云原生开发按钮

  • 打开 webide 即可点击弹出的端口(默认3000)打开网页预览

本地部署

前提条件

  • Node.js 14+ 环境

  • 有效的 CNB Token(需具备 repo-code:read 权限)

  • 目标知识库地址(例如 cnb/docs)

安装步骤

  1. 克隆仓库到本地
git clone https://cnb.cool/valetzx/chat-cnb cd chat-cnb
  1. 安装依赖
npm install
  1. 启动应用
node server.js
  1. 在浏览器中访问 http://localhost:3000 即可使用

使用指南

  1. 在界面上方输入你的 CNB Token

  2. 输入目标知识库名称(格式例如 1. CNB文档:cnb/docs 2. 前端面试指南:examples/ecosystem/web-interview)

  3. 在底部输入框中提出你的问题

  4. 点击 "发送" 按钮或按 Enter 键提交问题

  5. 系统将展示 AI 的回答,并在底部列出参考资料链接

对话管理

  • 点击 "新建聊天" 按钮可开始新的对话

  • 左侧边栏显示所有历史对话记录,点击可切换

  • 点击对话记录旁的 "✕" 按钮可删除对应的对话

API 接口说明

后端提供两个主要接口:

  1. 知识库查询接口
POST /api/query

用于查询指定知识库中与问题相关的内容,请求参数包括:

  • question:用户的问题

  • repo:知识库名称

  • token:访问令牌

  1. AI 对话接口
POST /api/ai/chat

用于将检索到的知识和用户问题发送给 AI,获取生成的回答,请求参数包括:

  • repo:知识库名称

  • token:访问令牌

  • messages:对话消息数组

  • model:可选,指定 AI 模型(默认使用 hunyuan)

  • stream:可选,是否启用流式响应(默认 true)

注意事项

  • 确保你的 CNB Token 拥有正确的权限(repo-code:read)

  • 知识库名称需准确无误,格式应为 "所有者 / 仓库名"

  • 对话记录存储在浏览器本地存储中,清除浏览器数据可能导致记录丢失

  • 长时间未活动可能需要重新验证 Token