在前面的课程中,我们已经:
而本项目阶段的目标是:将 RAG 知识库与 LangGraph 结合,应用到真实场景中
我们将直接调用 CNB 知识库 API(基于 CNB 知识库,只需上传 markdown 到指定 Git 仓库,即可自动构建知识库并提供 API 接口)
本项目还将使用 LangGraph 作为核心工作流引擎:
我会提供一个基础 Demo,包含:
在 Demo 基础上,选择以下场景之一(或多个)进行开发:
难度表示,⭐ 越多表示难度越大。
要求: 在 Demo 基础上增强对话功能
核心功能:
要求: 在 Demo 基础上实现深度研究功能
核心功能:
与普通对话的区别:
资料:
要求: 接入企业微信,实现自动问答机器人
核心功能:
要求: 将 CNB 知识库嵌入到文档站点中(如 VuePress 等)
核心功能:
要求: 实现语音交互的知识库问答
核心功能:
技术方案参考:
自由发挥,但需要包含知识库检索能力,并且具有创新性,例如:
LangGraph 的作用:
CNB 知识库 API:
CNB 云原生环境 - 一键启动开发
如果你想获得更高分数,可以实现:
docker-compose.yml 配置文件README.md:快速开始指南Q: 我必须做 DeepResearch 吗?
A: 不是。5 个场景任选其一即可
Q: 可以同时做多个场景吗?
A: 可以!建议先完成一个场景,再扩展其他场景。
Q: LangGraph 是什么?为什么要用它?
A: LangGraph 是用于构建复杂 AI 工作流的框架,它可以帮你编排多步骤的推理和检索流程。是当前最流行的 AI 工作流框架之一。
Q: CNB 知识库怎么用?
A: 你会得到一个 Git 仓库地址,上传 markdown 文件后,系统自动构建知识库。然后调用提供的 API 接口即可查询。 链接更多👉
Q: 必须用本地 ollama 吗?
A: 建议使用本地 ollama,因为 CNB 云原生开发环境带 GPU 资源,可以快速启动模型。
技术实现:
RepoManager 类管理多个知识库/api/repos 端点获取知识库列表RepoSelector 组件提供用户界面使用方式:
owner/repository 格式的 slug应用场景:
技术实现:
ConversationStore 类实现文件系统存储ConversationHistory 组件提供丰富交互核心功能:
数据存储:
backend/data/conversations/ 目录技术实现:
AuthManager 类处理用户认证和权限AuthManager 组件提供登录/注册界面核心功能:
安全特性:
# 1. 设置环境变量
export CNB_TOKEN="your_cnb_token_here"
export JWT_SECRET="your_jwt_secret_here" # 可选,系统会自动生成
# 2. 确保 Ollama 运行
ollama pull qwen3:32b
ollama serve
# 3. 启动完整应用
./start_deepresearch.sh
# 构建前端
cd frontend
npm run build
# 启动完整服务
docker compose up
GET /api/repos - 获取可用知识库列表POST /api/repos/check - 检查知识库访问权限POST /api/repos/add - 添加自定义知识库POST /api/auth/register - 用户注册POST /api/auth/login - 用户登录POST /api/auth/change-password - 修改密码GET /api/users/me - 获取当前用户信息PUT /api/users/preferences - 更新用户偏好GET /api/conversations - 获取用户对话列表POST /api/conversations - 创建新对话GET /api/conversations/{id} - 获取特定对话PUT /api/conversations/{id} - 更新对话DELETE /api/conversations/{id} - 删除对话GET /api/users/{user_id}/stats - 获取用户统计Q: Docker Compose 不熟悉怎么办?
A: Demo 会提供完整的 docker-compose.yml 配置,你只需要按需修改即可。
完成本项目后,你将掌握:
✅ 真实企业级项目中 RAG 的应用方式
✅ LangGraph 工作流编排能力
✅ 前后端分离架构设计
✅ API 集成和调用最佳实践
✅ 云原生应用开发
✅ 复杂 AI 应用的产品化思维
先让它跑起来,再让它跑得好!
如有任何问题,随时在训练营群里提问。祝你项目顺利!🎉
LANGSMITH_API_KEY (注意是 export 到 环境变量上)export LANGSMITH_API_KEY=your_api_key
docker compose up
# 如果是远程开发, 注意 XXX 是转发后会在端口 Tab 中展示
https://xxx-8123.cnb.run/app/
# 如果是本地
http://localhost:8123/app/
使用我们提供的一键启动脚本:
# 1. 设置环境变量
export CNB_TOKEN="your_cnb_token_here"
# 2. 确保 Ollama 运行并拉取模型
ollama pull qwen3:32b
ollama serve
# 3. 启动应用
./start_deepresearch.sh
这将自动启动后端和前端服务,提供完整的 DeepResearch 体验。
backend/ 目录backend/.env.example 文件创建一个名为 .env 的文件.env 文件并添加你的 CNB TOKEN:CNB_TOKEN="YOUR_CNB_TOKEN"后端:
cd backend
pip install .
前端:
cd frontend
npm install
后端和前端:
make dev
这将运行后端和前端开发服务器。打开浏览器并导航到前端开发服务器 URL(例如,http://localhost:5173/app)。
或者,你可以分别运行后端和前端开发服务器:
backend/ 目录中打开一个终端并运行 langgraph dev。后端 API 将在 http://127.0.0.1:2024 可用。它还会打开一个浏览器窗口到 LangGraph UI。frontend/ 目录中打开一个终端并运行 npm run dev。前端将在 http://localhost:5173 可用。本项目已实现 DeepResearch 深度研究功能,提供比普通问答更强大的多轮检索和综合分析能力。
| 特性 | 普通对话 | DeepResearch |
|---|---|---|
| 流程 | 问一次 → 检索一次 → 回答 | 问一次 → 拆解问题 → 多次检索 → 整合信息 → 生成报告 |
| 深度 | 表面答案 | 深度分析 |
| 引用 | 基础引用 | 完整溯源 |
| 输出 | 直接答案 | 结构化报告 |
每个 DeepResearch 报告包含:
基本上和 CNB 知识库 一致,前端收到用户的 Query 后,会调用后端 API 进行查询,后端 API 会调用 CNB 知识库 API 进行查询,然后交给 LLM 结合 Prompt 生成答案。
DeepResearch 模式下,后端会: