使用Dify构建带业务数据的智能客服
Dify是一个开源易用的LLMOps平台,即使你不具备深奥的AI知识,也能快速构建属于自己的AI应用,不仅如此,Dify还提供知识库管理、Prompt编排等功能,为你构建的AI应用锦上添花。
Dify对接了各个大模型供应商,提供包括GPT系列、Claude系列在内的一系列模型,未来还会有更多开源的模型也将加入到该行列中,让你能够自由切换应用的模型。
本文将演示如何部署Dify并基于自身业务数据构建一个AI智能客服。
前置条件
- 已开通容器云集群,如未开通请开通
弹性集群容器
- Docker环境,Docker环境安装请参考安装Docker
- 连接弹性容器集群, 参考使用指南->弹性容器集群->快速开始
- 符合自身需求的业务数据
镜像准备
拉取官方镜像
- Linux(Shell)
- Windows(PowerShell)
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
$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"
)
$images | ForEach-Object { docker pull $_ }
如果docker镜像仓库受限,请使用如下镜像地址替换
原镜像 | 替换镜像地址 |
---|---|
postgres:15-alpine | swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/postgres:15-alpine |
redis:6-alpine | swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:6-alpine |
semitechnologies/weaviate:1.19.0 | swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/semitechnologies/weaviate:1.19.0 |
langgenius/dify-sandbox:0.2.10 | swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-sandbox:0.2.10 |
ubuntu/squid:latest | swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ubuntu/squid:latest |
langgenius/dify-api:0.12.1 | swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-api:0.12.1 |
langgenius/dify-web:0.12.1 | swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-web:0.12.1 |
nginx:latest | swr.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,【保存】即可。
2.如果要使用QwQ + Xinference:AI推理大模型的最佳实践指南部署的模型,需要根据下图所指【添加模型】。
3.然后根据xinference的部署情况填写模型名称、服务器URL以及模型UID,【保存】后即可使用通过xinference部署的模型。
创建知识库
在【知识库】中可以构建包含自己业务数据的知识。
1.首先选择数据源,可以从现有的文件、Notion以及Web站点导入,也可以直接创建一个空的知识库。
2.然后可以将相关业务数据的文档上传到知识库中,Dify会帮助你完成文本的分段与清洗,索引方式有高质量和经济两种,我们推荐使用高质量的方式(需申请模型供应商的API Key),虽然它会消耗一定的token
,但是能够大大提高准确性。
3.最后【保存并处理】,等待文本嵌入后即可完成知识库的创建。
创建应用
Dify启动后,可以在【工作室】中,选择【创建空白应用】,基于使用场景选择【应用类型】以及【编排方法】,填写应用的【名称】与【描述】,即可完成基础应用的【创建】。
应用创建完成,可以进行Prompt编排、添加开场白、绑定知识库、模型选择以及对话聊天。
Prompt编排
:让应用扮演智能客服的角色与用户进行交流,可以对应用进行限定,如使用的语气、回答问题的范围等。
添加开场白
:旨在用户打开聊天窗口时,应用会先与用户打招呼,增加聊天的亲切感。
绑定知识库
:添加上传的业务数据知识库。
模型选择
:选择不同供应上的模型,在此基础上调节该模型的参数。
对话聊天
:在一系列初始化完成后,可以基于业务数据对应用进行问答。
应用绑定知识库
我们回到创建的应用,在上下文处【添加】,【选择】创建好的业务数据相关的知识库,【添加】后即可完成知识库的绑定。
调试智能客服并发布
通过对话聊天向应用发送信息,看其表现是否符合预期,如果符合预期,就可以【发布】应用了。