logo
0
0
WeChat Login
Forkfromopencamp/learning-ai/project-1-knowledge-base, ahead:master16 commits
Joe-Goldbug<whitepeace567@gmail.com>
docs: update README with project features, tech stack, and demo video link

RAG 知识库应用项目

📋 项目背景

本项目是基于 CNB 知识库LangGraph 构建的 RAG(检索增强生成)应用。通过将文档上传到指定 Git 仓库,CNB 自动构建知识库并提供 API 接口,我们利用 LangGraph 编排工作流,实现了能够根据知识库内容进行精准问答的智能助手。

本项目旨在演示如何将 RAG 技术应用到真实场景中,解决大模型知识更新滞后和幻觉问题。


📦 作业仓库地址

https://cnb.cool/WhitePeace.cool_223/project-1-knowledge-base


📝 项目说明

✨ 核心功能

1. 知识库动态切换

实现了灵活的知识库选择功能,用户可以根据需求切换不同的知识来源:

  • 默认知识库:初始默认连接 cnb/docs,提供 CNB 官方文档的问答能力。
  • 自定义知识库:用户可以在前端界面手动输入任意公开的 CNB 仓库路径(例如 WhitePeace.cool_223/project-1-knowledge-base),系统会即时切换检索源。
  • 实时生效:切换知识库后,无需刷新页面,下一次提问将立即基于新仓库的内容进行检索。

2. 引用来源溯源

为了增强回答的可信度,我们在界面上实现了精准的来源展示:

  • 引用角标:在对话的时间轴(Timeline)中,检索到的每篇文档都会以角标(Badge)形式展示。
  • 点击跳转:点击角标可直接跳转到 CNB 仓库中对应的 Markdown 源文件,方便用户查阅原始文档。
  • 相关性得分:角标上显示了检索结果的匹配得分(Score),帮助用户判断引用的准确性。

3. 增强的 RAG 流程

后端采用了严谨的 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


🚀 快速开始

1. 云原生一键启动

  1. Fork 本仓库。
  2. 在 CNB 平台上点击“云原生开发”启动环境。
  3. 在终端运行启动脚本:
    ./start.sh
  4. 点击 VS Code 端口转发面板中的 5173 端口链接,即可打开应用。

2. 使用指南

  1. 进入应用:打开浏览器页面,看到欢迎界面。
  2. 设置知识库:在输入框上方的 "Knowledge Base Repo" 中输入你想查询的仓库路径(例如 cnb/docs 或你自己的仓库)。
  3. 提问:输入与该仓库文档相关的问题(例如 “如何配置流水线?”)。
  4. 查看结果:AI 将基于文档回答,并在左侧时间轴中显示引用的文档来源。

📚 参考资料

About

OpenCamp 知识库应用项目

73.05 GiB
26.95 KiB
0 forks0 stars2 branches0 TagREADME
Language
TypeScript24.1%
Python10.3%
CSS2.8%
Dockerfile2.4%
Others60.4%