2026/2/11 5:30:25
网站建设
项目流程
大型销售网站建设,自己做网站要钱吗,wordpress展开,怎么建立网站 个人热点读完本文#xff0c;你将掌握知识库构建的核心技巧#xff0c;让 AI 基于你的文档准确回答问题#xff0c;告别一本正经地胡说八道。 上篇回顾
上一篇#xff0c;小禾完成了#xff1a;
Dify 平台部署#xff08;20 分钟#xff09;DeepSeek 模型接入你将掌握知识库构建的核心技巧让 AI 基于你的文档准确回答问题告别一本正经地胡说八道。上篇回顾上一篇小禾完成了Dify 平台部署20 分钟DeepSeek 模型接入10 分钟基础对话功能验证现在 AI 能对话了但问它公司年假怎么算它只能瞎编。附上一篇链接这篇要把它变成真正的企业知识库——把文档喂给它让它基于真实内容回答问题。RAG 是个啥30 秒讲明白在开始之前先搞懂一个概念RAG检索增强生成。用户问题检索相关文档拼接上下文模型生成回答返回答案简单说就是用户问“年假怎么算”系统检索从知识库里找到《员工手册》第三章拼给模型“根据以下内容回答[员工手册内容]… 问题年假怎么算”模型回答基于真实文档生成答案这样 AI 就不会瞎编了——它的回答有据可查。创建知识库把文档喂进去第一步创建知识库登录 Dify 控制台左侧菜单点击「知识库」点击「创建知识库」填写名称比如公司内部文档点击「创建」第二步上传文档Dify 支持的文档格式格式支持情况说明TXT完美最推荐处理最稳定Markdown完美保留格式PDF支持扫描件效果差建议用文字版Word.docx支持复杂表格可能丢格式HTML支持会自动提取正文Excel部分支持建议转成 CSV 或 Markdown 表格点击「添加文件」选择你的文档上传。第三步选择分段策略重要上传后Dify 会问你怎么切分文档。这一步非常关键直接影响检索效果。自动分段Dify 自动识别段落适合格式规整的文档。自定义分段自己设置规则小禾一般这么配参数建议值说明分段标识符\n\n两个换行按段落切分最大分段长度500-800 字符太长检索不精准太短缺上下文分段重叠50-100 字符避免切断句子小禾的经验规章制度类按条款切每条一段技术文档类按章节切500-800 字符FAQ 类按问答对切一问一答一段第四步等待索引完成上传后Dify 会自动解析文档内容按规则分段生成向量嵌入Embedding存入向量数据库进度条走完知识库就可以用了。把知识库接入应用知识库建好了现在要让聊天应用用上它。方法一在已有应用中添加知识库打开你之前创建的聊天应用点击「编排」在左侧找到「上下文」模块点击「添加」→ 选择你的知识库点击「发布」方法二创建新的知识库问答应用点击「创建应用」选择「聊天助手」在「上下文」中添加知识库配置模型选 DeepSeek发布并测试检索参数调优在「上下文」设置里有几个重要参数参数说明建议值Top K检索返回的段落数3-5Score 阈值相似度最低分0.5-0.7检索模式向量/全文/混合混合检索小禾的调参心得Top K 3大多数场景够用太多会干扰模型Score 阈值 0.6过滤掉不太相关的内容混合检索向量检索找语义相关全文检索找关键词命中两者结合最稳实战踩坑那些文档没告诉你的事坑 1问啥都说未找到相关信息症状明明文档里有AI 就是找不到。排查步骤# 1. 检查文档是否成功导入在知识库页面点击「文档」确认状态是「已完成」# 2. 检查分段是否合理点击文档查看「分段」看内容是否被正确切分# 3. 测试检索在知识库页面点击「召回测试」 输入用户可能问的问题 看能否召回相关段落常见原因文档是扫描 PDF内容没被识别出来 → 换成文字版分段太大检索不精准 → 调小分段长度问题和文档用词差异大 → 调低 Score 阈值坑 2回答不准确瞎编内容症状检索到了相关段落但 AI 的回答还是有问题。解决方案优化 System Prompt你是一个企业知识库助手。 重要规则 1. 只能根据提供的「上下文」内容回答问题 2. 如果上下文中没有相关信息直接说文档中未找到相关内容 3. 不要编造、推测或添加上下文中没有的信息 4. 回答时引用来源如根据《员工手册》第三章... 回答格式 - 先给出直接答案 - 再补充细节说明 - 最后注明信息来源调低 Temperature知识库问答场景Temperature 建议设为0.1-0.3让模型更老实。坑 3中文检索效果差症状英文问题检索很准中文就不行。原因默认的 Embedding 模型对中文支持一般。解决方案在 Dify 设置里把 Embedding 模型换成对中文友好的模型中文效果说明text-embedding-3-small一般OpenAI 默认text-embedding-3-large较好OpenAI 大号bge-large-zh很好专门针对中文优化m3e-base很好国产中文强如果用本地部署可以用 Ollama 跑nomic-embed-text或bge-m3。坑 4长文档检索慢症状知识库文档多了以后回答明显变慢。优化方案启用缓存Dify 默认开启查询缓存相同问题秒回精简文档删除无用内容只保留核心信息分库管理按主题建多个知识库应用按需挂载升级向量库数据量大时考虑换成 Milvus 或 Qdrant进阶让检索更精准的技巧技巧 1给文档加元数据上传文档时可以添加元数据标签# 文档属性标题:员工手册 2024 版部门:人力资源部更新日期:2024-01-15文档类型:规章制度检索时可以按元数据过滤比如只搜索人力资源部的文档。技巧 2预处理文档上传前做一些清洗# 文档预处理示例defpreprocess_doc(text):# 1. 去除多余空白textre.sub(r\n{3,},\n\n,text)# 2. 统一标点符号texttext.replace(,: ).replace(,; )# 3. 提取有效内容去掉页眉页脚textre.sub(r第 \d 页共 \d 页,,text)# 4. 保留结构化标记# 比如「第一章」「1.1」这种方便分段returntext技巧 3写好的分段提示对于结构化文档可以手动加分隔符---SECTION--- ## 第一章 总则 公司成立于 2020 年... ---SECTION--- ## 第二章 考勤制度 工作时间为早 9 晚 6... ---SECTION--- ## 第三章 休假制度 年假计算方式如下...然后在 Dify 分段设置里用---SECTION---作为分隔符。技巧 4FAQ 模式如果有现成的 FAQ直接用问答对格式Q: 年假怎么计算 A: 入职满一年享有 5 天年假每增加一年工龄增加 1 天上限 15 天。 Q: 加班费怎么算 A: 工作日加班 1.5 倍周末 2 倍法定节假日 3 倍。 Q: 报销流程是什么 A: 1. OA 提交报销单 2. 直属领导审批 3. 财务审核 4. 打款到工资卡这种格式检索效果最好因为问题和答案天然配对。完整架构图现在的架构是这样的私有化 AI 知识库架构知识库Dify 核心提问1. 向量检索2. 返回相关段落3. 拼接 Prompt4. 生成回答5. 返回答案导入导入导入员工手册用户Dify 平台向量数据库WeaviateDeepSeek技术文档FAQAPI 服务异步任务PostgreSQL数据流向用户提问Dify 将问题转成向量在向量库中检索取出最相关的 K 个段落把段落 问题拼成 Prompt 发给 DeepSeekDeepSeek 基于上下文生成回答返回给用户效果对比有知识库 vs 没知识库问题没有知识库有知识库“公司年假怎么算”“一般来说年假根据工龄计算…”通用回答“根据《员工手册》第三章入职满一年享有 5 天年假…”准确引用“报销需要什么材料”“通常需要发票、申请单…”瞎猜“根据财务制度需要1. 正规发票 2. OA 报销单 3. 部门领导签字…”具体流程“项目 A 的技术方案是什么”“无法回答我没有相关信息”“根据《项目 A 技术方案 v2.3》系统采用微服务架构…”直接引用文档快速避坑清单# 1. 文档格式检查- 优先用 TXT/MarkdownPDF 确保是文字版 - Excel 转成 CSV 或 Markdown 表格 - 扫描件先 OCR 再上传# 2. 分段策略- 规章制度按条款切 - 技术文档500-800 字符 - FAQ一问一答一段 - 分段重叠50-100 字符# 3. 检索参数- Top K:3-5 - Score 阈值:0.5-0.7 - 检索模式: 混合检索# 4. Prompt 优化- 明确要求只根据上下文回答- 要求引用来源- Temperature 调低到0.1-0.3# 5. 中文优化- Embedding 模型换成 bge-large-zh 或 m3e - 检索模式用混合检索# 6. 性能优化- 启用查询缓存 - 分库管理 - 定期清理无用文档一键可用的配置模板System Prompt 模板你是一个企业知识库助手专门回答关于 {{公司名称}} 的问题。 ## 核心规则 1. 严格根据「上下文」中的内容回答 2. 上下文没有的信息直接说文档中未找到相关内容建议咨询 XX 部门 3. 不要编造、推测、添加文档中没有的信息 4. 回答时注明来源如根据《XX 文档》... ## 回答格式 - 先给出直接答案1-2 句话 - 再补充必要的细节 - 最后注明信息来源 ## 语气要求 - 专业、简洁、友好 - 不用亲、呢等过于口语化的表达知识库配置模板# 推荐配置分段策略:自定义分段标识符:\n\n最大分段长度:600分段重叠:80# 检索配置检索模式:混合检索Top K:4Score 阈值:0.6重排序:开启如果可用# 模型配置模型:deepseek-chatTemperature:0.2Max Tokens:1500写在最后从能用到好用搭建私有化 AI 知识库技术门槛其实不高——DeepSeek Dify 的组合让这件事变得异常简单。但从能用到好用关键在于文档质量垃圾进垃圾出。花时间整理好文档比调参数重要 10 倍分段策略切得好检索才准Prompt 工程给 AI 立好规矩它才不乱说持续迭代收集用户反馈不断优化现在你已经有了一个完整的私有化 AI 知识库。接下来可以做的事接入企业微信/钉钉让员工随时提问加入更多文档覆盖更多场景训练专属模型让回答更懂你的业务这两篇文章的完整收获小禾踩过的坑端口占用、容器残留数据扫描 PDF 内容识别失败分段不合理导致检索不准中文 Embedding 效果差模型瞎编不按文档回答值得复用的经验文档预处理很重要格式统一、内容精简分段策略要因文制宜Prompt 里明确只根据上下文回答混合检索 适当的 Score 阈值先跑通再优化别一开始就追求完美零成本清单Dify开源免费 ✓DeepSeek API新用户有免费额度 ✓DeepSeek 本地部署开源免费需要 GPU✓数据完全在自己服务器 ✓如果你在搭建过程中遇到问题欢迎留言交流。知识库这事儿搭起来不难用起来才是开始。环境信息- Dify 1.0.02026-01 最新版- DeepSeek-V3 / DeepSeek-R1- Embedding: bge-large-zh / text-embedding-3-small- 测试文档量约 50 篇共 10 万字我在公众号DevJar持续分享 AI 企业应用开发经验欢迎查看AI 后端架构及开发实战合集