用 Dify 搭一个带知识库的 RAG 客服
Dify 是一个开源的 LLMOps 平台,不需要深厚的 AI 背景就能搭起一个 AI 应用,自带知识库管理、Prompt 编排、模型供应商切换等能力。本文演示在 VKS 上部署 Dify,并基于自家业务数据搭一个智能客服。
不同智算中心的 YAML 配置可能因建设差异而有所变化。本实践以"北京一区/二区/三区"为例,实际应用时请根据目标智算中心的具体信息调整YAML文件中的相关配置。
前提条件
-
用户已开通弹性容器集群,且集群可正常使用。如尚未开通,可参考开通弹性容器集群完成开通。
-
用户已连接弹性容器集群,如尚未连接,可参考使用弹性容器集群。
-
准备好待使用的业务数据,格式可为:PDF、Word或者文本。
一键部署 Dify
按 VKS 所在分区下载对应的部署文件(北京一区/二区/三区分别有各自 yaml)。下面以北京一区为例:
北京一区-部署文件北京二区-部署文件
北京三区-部署文件
执行以下命令,完成Dify的启动。
kubectl apply -f dify.yaml启动成功后查询访问地址:
kubectl describe serviceexporter dify-web-se -n dify输出里url 字样后面就是网页链接。注意 VKS 对外端口固定为 22443,访问形如:
https://<域名>:22443首次进入系统的初始密码为 password。
Dify 应用
申请大模型 API Key
-
每一次大模型信息的调用都需要消耗对应的token,需要通过各个大模型供应商的官方渠道申请对应的API Key。API Key申请成功后,在设置/模型供应商选择对应的供应商,然后添加模型,模型类型、模型名称都要以模型供应商的为准,最后填入申请的API Key,保存即可。

-
如果要接入自己用 Xinference 部署的模型(比如 QwQ),按下图选择 Xorbits Inference:

-
然后根据xinference的部署情况填写模型名称、服务器URL以及模型UID,保存后即可使用通过xinference部署的模型。

创建知识库
在知识库中可以构建包含自己业务数据的知识。
-
首先选择数据源,可以从现有的文件、Notion以及Web站点导入,也可以直接创建一个空的知识库。

-
然后可以将相关业务数据的文档上传到知识库中,Dify会帮助你完成文本的分段与清洗,索引方式有高质量和经济两种,我们推荐使用高质量的方式(需申请模型供应商的API Key),虽然它会消耗一定的token,但是能够大大提高准确性。

-
最后保存并处理,等待文本嵌入后即可完成知识库的创建。

创建应用
Dify启动后,可以在工作室中,选择创建空白应用,基于使用场景选择应用类型以及编排方法,填写应用的名称与描述,即可完成基础应用的创建。

应用创建完成,可以进行Prompt编排、添加开场白、绑定知识库、模型选择以及对话聊天。
- Prompt编排:让应用扮演智能客服的角色与用户进行交流,可以对应用进行限定,如使用的语气、回答问题的范围等。
- 添加开场白:旨在用户打开聊天窗口时,应用会先与用户打招呼,增加聊天的亲切感。
- 绑定知识库:添加上传的业务数据知识库。
- 模型选择:选择不同供应上的模型,在此基础上调节该模型的参数。
- 对话聊天:在一系列初始化完成后,可以基于业务数据对应用进行问答。

应用绑定知识库
我们回到创建的应用,在上下文处添加,选择创建好的业务数据相关的知识库,添加后即可完成知识库的绑定。

调试并发布
通过对话调试看回答是否符合预期;OK 后点发布,就能拿到对外的 Web/API 入口给业务方接入。
总结
Dify 的卖点是把 LLM、知识库、Prompt 模板、调用接口拼到一个 UI 里,让搭智能客服这件事从「写一堆 RAG 代码」变成「点点鼠标」。配合 VKS,模型推理和应用本身都可以跑在同一个集群里,数据不出域。
最后更新于
