Dify 简介
Dify 是一款开源的大语言模型(LLM)应用开发平台。平台内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排。同时,Dify 提供易用的界面和 API,使得开发者可以聚焦于创造应用的核心价值。

本文将详细介绍如何在腾讯云容器服务 (TKE) 上部署 Dify 平台,帮助企业和用户快速搭建自己的大模型应用开发平台。
整体架构
与单机部署相比,腾讯云 TKE 的部署提供了高可用、灵活弹性等特点,可以满足企业的生产部署需求,整体架构如下图。
部署方案全面涵盖了 Dify 平台的核心组件以及基础组件。其中,核心组件包括 api、web、worker 和 sandbox 等,是 Dify 平台正常运行的关键部分;基础组件包含向量数据库、db、redis、proxy、ssrf_proxy(专门用于防范 SSRF 攻击的安全代理)等服务,为 Dify 平台的稳定运行提供基础支撑。
在数据库选型上,可根据实际业务需求,选用腾讯云上对应的云服务替换默认的社区版数据库,如云数据库 Redis 、云数据库 PostgreSQL 和腾讯云向量数据库等,保障业务数据的安全稳定。

一键部署
腾讯云 TKE 应用市场已上架 tke-dify 应用,用户可通过应用市场实现一键部署,极大简化了部署流程。

实践步骤
存储准备
Dify 的关键组件 API 和 Work 需要共享存储,推荐在 TKE 集群中使用腾讯云 CFS 文件存储:
1. 在组件管理页面启用 CFS 文件存储。操作详情请参见 安装并设置 CFS 扩展组件。

2. 组件创建完成后,在 StorageClass 中创建命名为
cfs
的 Storageclass 对象,操作详情请参见 创建 CFS 类型 StorageClass。创建后的效果如下:
Dify 部署
TKE 的应用市场已经支持 tke-dify 应用的快速部署。
1. 登录 容器服务控制台,选择左侧导航栏中的应用市场。
2. 在应用管理中单击新建。
3. 在新建应用页面,填写应用信息。
应用名:可自定义命名,本文示例为
dify
。应用场景:选择 AI,并选择 tke-dify 应用。

4. 单击完成,进行应用创建。
高可用保障
为确保 Dify 服务的高可用性,建议从多副本部署和健康检查两方面进行配置。
1. 多副本和反亲和性
以 api 组件为例(其他组件:worker、web、sandbox 均支持):
api:replicas: 2affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: componentoperator: Invalues:- apitopologyKey: topology.kubernetes.io/zone
2. 健康检测机制
api:## @param api.livenessProbe.enabled Enable livenessProbe on API nodeslivenessProbe:enabled: trueinitialDelaySeconds: 30periodSeconds: 30timeoutSeconds: 5failureThreshold: 5successThreshold: 1## @param api.readinessProbe.enabled Enable readinessProbe on API nodesreadinessProbe:enabled: trueinitialDelaySeconds: 10periodSeconds: 10timeoutSeconds: 5failureThreshold: 5successThreshold: 1
弹性伸缩
Dify 作为 AI 服务平台,可能会面临突发流量增长。建议基于 HPA 配置弹性伸缩能力。
以 api 组件为例(其他组件:worker、web、sandbox 均支持),配置基于 CPU 使用率进行自动弹性:
api:autoscaling:enabled: trueminReplicas: 1maxReplicas: 100targetCPUUtilizationPercentage: 80
请求入口
在 TKE 集群中,可以通过 Ingress 和 CLB 负载均衡将 Dify 服务暴露出来,并提供安全的访问方式。
service:type: NodePortport: 80ingress:enabled: trueclassName: ""annotations: {}# kubernetes.io/ingress.class: qcloudhosts:- host: dify-example.localpaths:- path: /pathType: ImplementationSpecific# - host: dify-example2.local# paths:# - path: /# pathType: Prefixtls: []# - secretName: chart-example-tls# hosts:# - dify-example.local
部署完成后,在浏览器输入配置的域名(如 dify-example.local)即可访问 Dify 应用。首次访问需先配置管理员账号。登入界面如下图所示:

云产品集成
可以通过如下配置方式切换到相应云服务。
1. 腾讯云 Redis
redis:enabled: falseexternalRedis:enabled: truehost: "redis.example"port: 6379username: ""password: "difyai123456"useSSL: false
2. 腾讯云 PostgreSQL
postgresql:enabled: falseexternalPostgres:enabled: trueusername: "postgres"password: "difyai123456"address: localhostport: 5432database:api: "dify"pluginDaemon: "dify_plugin"maxOpenConns: 20maxIdleConns: 5
3. 腾讯云向量数据库
weaviate:enabled: falseexternalTencentVectorDB:enabled: trueurl: "your-tencent-vector-db-url"apiKey: "your-tencent-vector-db-api-key"timeout: 30username: "root"database: "dify"shard: 1replicas: 2
聊天助手
接下来,演示在 Dify 平台中创建聊天助手,并验证 AI 模型接入的使用效果。
1. 在 Dify 平台首页,进入用户设置,添加所需的 AI 模型,本文以腾讯混元为例。

2. 在腾讯混元插件的 API-KEY 配置页面,单击从腾讯混元获取 API Key,获取 SecretID 和 SecretKey,并填写到对应输入框。

3. 确认信息无误后单击保存,完成配置。
4. 完成上述配置后,返回 Dify 平台首页,通过首页空白应用的窗口,依照系统提示逐步创建聊天助手。

5. 进入聊天助手页面,可通过与聊天助手互动交流,输入各类问题并查看回复,以此验证聊天助手效果,确保 AI 模型接入正常且运行稳定。

总结
腾讯云 TKE 为 Dify 平台提供了生产级的容器化部署方案,从资源调度到维护管理全面赋能,助力企业快速落地 AI 应用,充分释放云原生技术的价值。