本项目是基于 CNB 知识库 和 LangGraph 构建的 RAG(检索增强生成)应用。通过将文档上传到指定 Git 仓库,CNB 自动构建知识库并提供 API 接口,我们利用 LangGraph 编排工作流,实现了能够根据知识库内容进行精准问答的智能助手。
本项目旨在演示如何将 RAG 技术应用到真实场景中,解决大模型知识更新滞后和幻觉问题。
https://cnb.cool/WhitePeace.cool_223/project-1-knowledge-base
实现了灵活的知识库选择功能,用户可以根据需求切换不同的知识来源:
- 默认知识库:初始默认连接
cnb/docs,提供 CNB 官方文档的问答能力。
- 自定义知识库:用户可以在前端界面手动输入任意公开的 CNB 仓库路径(例如
WhitePeace.cool_223/project-1-knowledge-base),系统会即时切换检索源。
- 实时生效:切换知识库后,无需刷新页面,下一次提问将立即基于新仓库的内容进行检索。
为了增强回答的可信度,我们在界面上实现了精准的来源展示:
- 引用角标:在对话的时间轴(Timeline)中,检索到的每篇文档都会以角标(Badge)形式展示。
- 点击跳转:点击角标可直接跳转到 CNB 仓库中对应的 Markdown 源文件,方便用户查阅原始文档。
- 相关性得分:角标上显示了检索结果的匹配得分(Score),帮助用户判断引用的准确性。
后端采用了严谨的 RAG 逻辑:
- 检索优先:系统优先调用 CNB Open API 检索相关文档。
- 诚实回答:通过精心设计的 Prompt,强制 AI 仅基于检索到的上下文回答。如果知识库中没有相关信息,AI 会明确告知“根据已知信息无法回答”,杜绝幻觉。
- 稳健的错误处理:后端实现了完善的异常捕获机制,即使 Ollama 服务或网络出现波动,也能返回友好的错误提示,而不是直接崩溃。
- 前端:React + Vite + Tailwind CSS,实现了现代化的聊天界面和配置面板。
- 后端:Python + LangGraph,构建了
retrieve_knowledge -> generate_answer 的标准 RAG 工作流。
- 模型:支持本地运行的 Ollama (qwen3:32b) 或远程 API,结合 CNB 云原生环境的 GPU 资源实现高效推理。
- API:深度集成了 CNB Knowledge Base Open API,实现了文档切片、向量化和语义检索的自动化闭环。
演示视频链接: 功能演示.mp4
- Fork 本仓库。
- 在 CNB 平台上点击“云原生开发”启动环境。
- 在终端运行启动脚本:
./start.sh
- 点击 VS Code 端口转发面板中的
5173 端口链接,即可打开应用。
- 进入应用:打开浏览器页面,看到欢迎界面。
- 设置知识库:在输入框上方的 "Knowledge Base Repo" 中输入你想查询的仓库路径(例如
cnb/docs 或你自己的仓库)。
- 提问:输入与该仓库文档相关的问题(例如 “如何配置流水线?”)。
- 查看结果:AI 将基于文档回答,并在左侧时间轴中显示引用的文档来源。