跳到主要内容

使用Dify构建带业务数据的智能客服

Dify是一个开源易用的LLMOps平台,即使你不具备深奥的AI知识,也能快速构建属于自己的AI应用,不仅如此,Dify还提供知识库管理、Prompt编排等功能,为你构建的AI应用锦上添花。

Dify对接了各个大模型供应商,提供包括GPT系列、Claude系列在内的一系列模型,未来还会有更多开源的模型也将加入到该行列中,让你能够自由切换应用的模型。

本文将演示如何部署Dify并基于自身业务数据构建一个AI智能客服。

前置条件

镜像准备

拉取官方镜像

images = (
"postgres:15-alpine"
"redis:6-alpine"
"semitechnologies/weaviate:1.19.0"
"langgenius/dify-sandbox:0.2.10"
"ubuntu/squid:latest"
"langgenius/dify-api:0.12.1"
"langgenius/dify-web:0.12.1"
"nginx:latest"
)
for image in "${images[@]}"; do
docker pull $image
done

如果docker镜像仓库受限,请使用如下镜像地址替换

原镜像替换镜像地址
postgres:15-alpineswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/postgres:15-alpine
redis:6-alpineswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:6-alpine
semitechnologies/weaviate:1.19.0swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/semitechnologies/weaviate:1.19.0
langgenius/dify-sandbox:0.2.10swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-sandbox:0.2.10
ubuntu/squid:latestswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ubuntu/squid:latest
langgenius/dify-api:0.12.1swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-api:0.12.1
langgenius/dify-web:0.12.1swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-web:0.12.1
nginx:latestswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:latest

推送镜像到镜像仓库

提示

用户名密码:查看开通镜像仓库时的通知短信
镜像仓库地址:参考镜像仓库的使用
镜像仓库地址:由 镜像仓库访问域名/项目 组成

这里只演示一个,其他类似。

docker login registry.hd-01.alayanew.com:8443 -u your-username -p your-password

docker tag 镜像仓库地址/dify-postgres:test

docker push 镜像仓库地址/dify-postgres:test

部署Dify

先用最简单的方式部署Dify,请点击此处获取配置文件

修改镜像

获取完配置文件后,需要修改镜像
全局替换配置文件中的镜像为您本人镜像仓库的镜像 例如:

  containers:
- name: dify-redis
image: registry.hd-01.alayanew.com:8443/alayanew-dab57f9b-35**********/dify-redis:test

修改镜像密钥的configjosn

在配置文件中搜索.dockerconfigjson
.dockerconfigjson的值修改为您自身镜像仓库密钥json的base64编码。操作详情参考创建密钥

部署diff

修改完配置文件后,执行kubectl apply -f dify.yaml命令,完成Dify的启动。

Dify成功启动后,执行kubectl describe serviceexporter dify-web-se -n dify即可获得网页链接(紧跟在url字样后),在浏览器中填写该链接,加上22443端口即可进入Dify的Web页面。

初始密码

首次进入系统的初始密码为:password

Dify应用

申请大模型厂商的API-KEY

1.每一次大模型信息的调用都需要消耗对应的token,需要通过各个大模型供应商的官方渠道申请对应的API Key。API Key申请成功后,在【设置】->【模型供应商】选择对应的供应商,然后【添加模型】,模型类型、模型名称都要以模型供应商的为准,最后填入申请的API Key,【保存】即可。

image

2.如果要使用QwQ + Xinference:AI推理大模型的最佳实践指南部署的模型,需要根据下图所指【添加模型】。

image

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

image

创建知识库

在【知识库】中可以构建包含自己业务数据的知识。

1.首先选择数据源,可以从现有的文件、Notion以及Web站点导入,也可以直接创建一个空的知识库。

image

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

image

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

image

创建应用

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

应用创建完成,可以进行Prompt编排、添加开场白、绑定知识库、模型选择以及对话聊天。

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

应用绑定知识库

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

调试智能客服并发布

通过对话聊天向应用发送信息,看其表现是否符合预期,如果符合预期,就可以【发布】应用了。