MONKEYCODE 教程系列
MC-025 | 实战AI客服机器人
MonkeyCode教程及推广系列
不爱土豆唯爱马铃薯 · MonkeyCode 教程系列
系列:不爱土豆唯爱马铃薯 · MonkeyCode 教程系列
字数:约 1700 字 | 难度:⭐⭐⭐⭐ | 实操用时:30 分钟
开篇:让 AI 懂你的知识
上一期 MC-024,你做了一个浏览器插件——跳出 Web 应用的范畴,让代码运行在用户的浏览器里。今天再上一个台阶:做一个能理解你知识库的 AI 对话系统。
你一定用过客服机器人:在电商网站问"什么时候发货",它秒回"预计3个工作日";在银行 App 问"怎么改密码",它给出操作指引。这些机器人的背后,就是一个知识库 + 检索 + 大模型的系统。
今天的实战项目:AI 客服机器人。你上传自己的文档(产品手册、FAQ、规章制度……),用户提问时,AI 根据文档内容回答——不是瞎编,而是基于你提供的知识。
RAG 是什么
这个项目的核心技术叫 RAG(Retrieval-Augmented Generation,检索增强生成)。名字很长,原理其实很直观:
用户提问 → 在知识库中搜索相关内容 → 把搜索结果喂给 AI → AI 基于这些内容回答
为什么要"检索增强"?因为大模型虽然聪明,但它不知道你的私有信息——你的产品价格、公司政策、技术文档,这些都不在它的训练数据里。RAG 通过先检索再生成,让 AI 的回答"有据可依"。
纯大模型 vs RAG 系统对比:
| 对比项 | 纯大模型 | RAG 系统 |
|---|---|---|
| 知识来源 | 训练数据(公开信息) | 你上传的文档 |
| 准确性 | 可能"幻觉"(编造) | 基于文档,可溯源 |
| 更新方式 | 重新训练(不现实) | 替换文档即可 |
| 私有数据 | 不支持 | 天然支持 |
需求分析(SDD)
📋 原始需求
一个基于知识库的 AI 客服机器人,支持上传文档构建知识库,用户通过对话界面提问,AI 从知识库中检索相关内容并给出准确回答,附带引用来源。
🎨 产品设计
- 知识库管理:上传文档(TXT/MD/JSON),查看已上传列表,支持删除和重新上传
- 对话界面:聊天式交互,用户输入问题,AI 返回回答 + 引用的文档片段
- 引用溯源:每条回答标注来自哪篇文档的哪个部分,可点击查看原文
- 前端界面:左侧知识库管理面板,右侧对话区域
⚙️ 技术设计
- 向量检索:使用 TF-IDF 或简单的关键词匹配(轻量方案,无需额外数据库)
- 后端:Node.js + Express 处理文档解析和检索逻辑
- 前端:HTML + CSS + JS 聊天界面
- AI 调用:调用大模型 API(或 MonkeyCode 内置模型能力)进行回答生成
开始开发
第一步:创建项目
新建项目 ai-chatbot,告诉 AI 你的需求:
创建一个基于知识库的 AI 客服机器人。 技术栈:Node.js + Express 后端,纯 HTML/CSS/JS 前端 功能需求: 1. 知识库管理: - 上传 TXT/MD/JSON 文档(拖拽或点击上传) - 文档自动解析,按段落拆分为知识条目 - 显示已上传文档列表,支持删除 2. 检索引擎: - 用户提问时,在所有知识条目中搜索相关内容 - 使用 TF-IDF 关键词匹配算法(纯 JS 实现) - 返回最相关的 top 3 条知识片段 3. AI 回答生成: - 将用户问题 + 检索到的知识片段组合成 prompt - 调用 AI 生成回答(使用 /v1/chat/completions 接口) - 回答中标注引用来源 4. 对话界面: - 左侧:知识库管理面板 - 右侧:聊天界面 - AI 回答下方显示引用的原文片段(可折叠) 5. 准备 3 篇示例知识库文档: - "产品FAQ.md"(10个常见问题及回答) - "使用指南.md"(产品功能介绍) - "退换货政策.txt"(退换货规则)
第二步:验证知识库功能
AI 生成后,先测试知识库的上传和检索:
测试以下功能: 1. 上传 3 篇示例文档,确认文件列表正确显示 2. 在聊天框输入"怎么退货",检查检索结果是否返回退换货政策相关段落 3. 输入"产品有哪些功能",检查是否返回使用指南相关内容 4. 删除一篇文档后重新搜索,确认该文档的内容不再出现
第三步:验证 AI 回答质量
检索准确是基础,AI 回答的质量才是关键。测试几个典型场景:
| 问题类型 | 测试用例 | 预期行为 |
|---|---|---|
| 直接匹配 | "退货要几天" | 直接从政策文档提取答案 |
| 模糊提问 | "东西坏了怎么办" | 检索到退换货相关内容并回答 |
| 超出范围 | "今天天气怎么样" | 坦诚回答"知识库中没有相关信息" |
| 多文档关联 | "会员退货有什么优惠" | 综合会员政策和退换货政策回答 |
💡 小贴士:如果 AI 出现幻觉(编造文档中没有的信息),在 prompt 中加入更强的约束:
"你必须仅基于以下知识库内容回答问题。如果知识库中没有相关信息,请直接说'我暂时无法回答这个问题',不要编造。"
进阶优化
🔍 更好的检索算法
TF-IDF 是最基础的文本检索方式,适合入门。如果需要更精准的语义检索:
升级检索算法为余弦相似度匹配: 1. 将每个知识条目和用户问题都转换为词袋向量 2. 计算问题向量与每个知识条目向量的余弦相似度 3. 返回相似度最高的 top 3 条
💬 多轮对话
当前版本是单轮问答——每次提问都是独立的。加入上下文记忆:
添加多轮对话支持: 1. 在后端维护一个对话历史数组 2. 每次新提问时,将最近 5 轮对话作为上下文一起发送 3. 用户可以说"那运费呢?",AI 能理解"那"指代什么
📦 知识库导入导出
添加知识库导入/导出功能: - 导出:将所有知识条目打包为一个 JSON 文件下载 - 导入:上传 JSON 文件批量导入知识条目 方便在不同项目间复用知识库。
部署上线
把这个 AI 客服机器人部署上线, 确保文档上传、检索、AI 回答、引用显示等功能全部可用。 获取公网访问链接。
动手看:用你的文档做一个客服
挑战任务:
- 准备你自己的知识库文档(课程笔记、项目文档、FAQ……)
- 上传到系统中,测试不同类型的问题
- 检查 AI 回答是否准确、是否有幻觉
- 优化 prompt 让回答更贴合你的需求
💡 提示:知识库文档的质量直接决定 AI 回答的质量——内容清晰、结构分明的文档,比堆砌在一起的文档效果好得多。
总结与下期预告
MC-025 的核心要点:
- RAG 原理:用户提问 → 检索知识库 → AI 基于检索内容回答,解决"私有数据"问题
- 知识库构建:上传文档 → 按段落拆分 → 建立索引,支持增删
- 检索算法:TF-IDF 关键词匹配(入门),余弦相似度(进阶)
- 防幻觉:prompt 中明确要求"仅基于知识库回答",超出范围坦诚告知
- 引用溯源:回答标注来源文档,增强可信度
第三阶段实战还剩最后一个项目,也是和很多人息息相关的一个场景:写论文。不管你是本科生还是研究生,论文写作都是绕不过去的大山。下一期 MC-026,实战:论文辅助全流程——从文献检索到提纲生成,从实验代码到排版输出,用 AI 辅助论文写作的每一个环节。
漫画教程
📖 第1页:封面
📖 第2页:RAG工作原理
📖 第3页:SDD需求分析
📖 第4页:项目创建与开发
📖 第5页:知识库与检索测试
📖 第6页:进阶功能与最佳实践
📖 第7页:总结回顾
转载自CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/llllccccddd/article/details/161752455





