公司想做一个"产品文档问答机器人",让客服和销售能够直接提问:"某某功能的配置步骤是什么?""这个报错是什么意思?"以前这类问题要翻几十页文档才能找到答案。我用了两周时间,在Dify上从零搭了一套RAG知识库问答机器人,现在每天处理300多个真实提问,准确率稳定在85%以上。这篇把落地过程中踩过的坑完整记录下来。
对比了几条路线:自己用LangChain+向量库从零写,开发量太大、维护成本高;用商业SaaS平台,数据要出内网,合规过不了。Dify的好处是可以私有化部署,开箱即用,可视化编排,对我们这种"要快速见效"的团队很合适。部署用的是Docker Compose,一台8核16G的服务器就够跑(模型API走公司已有的通义千问接口)。
一开始用默认分段(按固定字符数切分),结果文档里的表格被切断、一个完整的配置步骤被拆成两半,检索出来的片段经常答非所问。后来我改成**"标题层级分段"**:按文档的一级/二级标题切分,每个段落控制在500-800字。改动之后,命中准确率直接从60%提到80%。
调试阶段发现,同一问题多次提问,答案细节经常不一样。排查后发现是检索的top_k设得太低(默认3),相关片段没被全部召回来,模型只能凭不完整信息回答。我把top_k调到5,同时让系统提示词里明确"基于知识库内容回答,若知识库没有明确依据,请直接说明不知道",回答稳定性明显好转。
这是最坑的一次:产品更新后文档改了,但知识库里旧版本内容还在,用户问新功能,机器人回答的是旧逻辑。解决方案:给知识库建立版本管理机制——文档更新时重新上传并停用旧版本,同时在知识库名称里标注版本号,定期人工检查"未使用"文档。
早期系统提示词没写清楚,用户问"你是什么模型""帮我写首诗"这类问题时,机器人也老老实实回答,还偶尔透露系统提示词内容。后来在提示词里明确了身份和边界:"你是产品文档问答助手,只回答与产品相关的问题,其他问题请礼貌拒绝。"效果立竿见影。
Dify这类AI开发平台的价值,是把RAG、模型编排、知识库管理这些复杂能力封装成"可配置"的组件,让业务团队也能快速搭出能用的AI应用。但平台再好,效果的上限还是取决于数据质量:文档组织是否清晰、分段是否合理、版本是否及时更新,这些脏活累活才是决定问答质量的关键。如果你也在做知识库问答,建议先花心思整理文档,再谈模型和平台。