首页 / 资讯中心 / 文章详情

华为云Flexus+DeepSeek征文|Dify LLM 应用平台三种部署方案横评:单机、知识库增强、高可用容器化怎么选

华为云Flexus+DeepSeek征文|Dify LLM 应用平台三种部署方案横评:单机、知识库增强、高可用容器化怎么选 ★ FEATURED ARTICLE
1. 三种部署路线到底差在哪先看场景再动手Dify 是一个开源的大模型应用开发平台可视化编排工作流、管理 Prompt、挂知识库、接多模型这些能力它都有。但真正落到华为云 Flexus 上很多人第一步就卡住到底选社区版单机、知识库增强还是 CCE 容器高可用这三个名字听起来都像一键部署实际架构、资源依赖、运维成本差得很远。我按个人验证 / 团队知识库 / 生产高可用三条线把三种方案拆成可复现的配置骨架。核心思路是不管哪种部署模型调用通道统一走 TaoToken 的 Key 和 API 地址这样换部署方案时不用改业务代码只改环境变量。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 后面所有配置示例都围绕这两个地址展开。先给结论方便你对号入座方案适合谁云资源部署耗时运维社区版单机个人开发者、原型验证1 台 FlexusX EIP10~15 分钟低知识库增强中小团队、智能客服2 台 FlexusX OBS CSS20~30 分钟中CCE 容器高可用企业生产、高并发CCE RDS Redis OBS ELB30~60 分钟高但可自动化单机版没有文档解析和向量检索知识库增强版补上了这块CCE 版则把高可用、弹性伸缩、多租户隔离全带上。选型的关键不是哪个最强而是你现在需要哪一档。2. TaoToken 前置统一 Key 与 API 通道三种方案都要接大模型如果每个方案各配一套 Key迁移时非常痛苦。我的做法是统一用 TaoToken 作为模型调用通道Dify 里所有模型供应商都指向同一个 API 基址。先去控制台创建 API Key入口是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。拿到形如sk-xxxx的 Key 后记下两个值API Basehttps://taotoken.net/apiAPI Keysk-你的密钥Dify 的模型配置里OpenAI 兼容接口填这两个值即可。DeepSeek 系列模型、Claude 系列都能通过这个通道调用具体模型名以文档为准接入说明在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。注意API 地址不要加 UTM 参数只有官网和 deep link 才带。填错会导致请求 404。如果你打算长期跑编码类 Agent可以了解 Coding Plan入口 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 只是想先验证模型通不通用模型对话页最快https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。3. 可复制配置三种方案的 config.toml 与 settings.json 骨架Dify 的配置分两层.env管基础设施数据库、Redis、存储settings.json管模型供应商。下面按方案给骨架你按自己实例的 IP、密码替换占位符。3.1 社区版单机docker-compose 最小 .env单机版用 Docker Compose 起核心是数据库和 Redis 本地化。.env关键片段# 数据库 DB_HOSTdb DB_PORT5432 DB_USERNAMEpostgres DB_PASSWORDdify_single_2024 DB_DATABASEdify # Redis REDIS_HOSTredis REDIS_PORT6379 REDIS_PASSWORDdify_redis_2024 # 存储单机用本地 STORAGE_TYPElocal STORAGE_LOCAL_PATH/app/api/storage # 模型通道统一指向 TaoToken OPENAI_API_BASEhttps://taotoken.net/api OPENAI_API_KEYsk-你的密钥settings.json里配一个 OpenAI 兼容供应商{ provider: openai, config: { api_base: https://taotoken.net/api, api_key: sk-你的密钥, model: deepseek-chat } }单机版没有向量库知识库功能不可用但工作流、Prompt 管理、模型对话都能跑。3.2 知识库增强加 OBS 与 CSS OpenSearch知识库增强版在单机基础上加两个东西对象存储放文档OpenSearch 做向量检索。.env增量部分# 对象存储切到 OBS STORAGE_TYPEhuawei-obs OBS_BUCKET_NAMEdify-kb-bucket OBS_ENDPOINTobs.cn-north-4.myhuaweicloud.com OBS_ACCESS_KEY你的AK OBS_SECRET_KEY你的SK # 向量库走 OpenSearch VECTOR_STOREopensearch OPENSEARCH_HOSTcss-dify-xxx.elasticsearch.huaweicloud.com OPENSEARCH_PORT9200 OPENSEARCH_USERadmin OPENSEARCH_PASSWORDCss_2024_dify模型侧要额外配 embedding 和 rerank。settings.json里加{ providers: [ { provider: openai, config: { api_base: https://taotoken.net/api, api_key: sk-你的密钥 } } ], embedding_model: bge-m3, rerank_model: bge-reranker-v2-m3 }embedding 和 rerank 模型可以部署在第二台 FlexusX 上通过内网 IP 调用避免走公网。文档上传到 OBS 后Dify 会自动切分、向量化、写入 OpenSearch。3.3 CCE 容器高可用Helm values 骨架CCE 版用 Helm 部署核心是把有状态服务外置。values.yaml关键片段api: replicas: 3 env: DB_HOST: rds-dify.internal DB_PASSWORD: Rds_2024_dify REDIS_HOST: redis-dify.internal STORAGE_TYPE: huawei-obs VECTOR_STORE: opensearch OPENAI_API_BASE: https://taotoken.net/api OPENAI_API_KEY: sk-你的密钥 worker: replicas: 2 ingress: enabled: true host: dify.yourdomain.comCCE 版把 API、Worker、Web 拆成独立 Deployment各自可扩副本。RDS 存业务数据Redis 做缓存OBS 放文件OpenSearch 做检索ELB 做入口负载均衡。NAT 网关让私有网络不出公网。4. 验证请求部署后怎么确认真的通了部署完别急着建应用先按清单逐项验证。我习惯从底层往上查。第一步确认容器状态。单机版执行docker compose ps应该看到 api、worker、web、db、redis 全部 Up。CCE 版在集群里查kubectl get pods -n dify第二步验证模型通道。用 curl 直接打 TaoToken 的接口确认 Key 有效curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的密钥 \ -H Content-Type: application/json \ -d { model: deepseek-chat, messages: [{role: user, content: ping}] }返回带choices字段就说明通道正常。如果这里报 401是 Key 问题报 404是 API 地址写错。第三步在 Dify 后台建一个最小工作流开始节点 → LLM 节点 → 结束节点。LLM 节点选 OpenAI 兼容供应商模型填deepseek-chat。点运行能返回文本就说明 Dify 到 TaoToken 的链路通了。第四步知识库增强版额外验证检索。上传一个 PDF 到知识库等索引完成在召回测试里输入相关问题看能否命中片段。如果召回为空检查 OpenSearch 连接和 embedding 模型是否正常。第五步CCE 版验证高可用。手动删掉一个 api pod观察是否自动重建同时请求不中断kubectl delete pod -n dify -l appdify-api5. 本篇常见错排查报错一模型调用返回 401 Unauthorized。九成是 Key 填错或带了多余空格。检查.env里OPENAI_API_KEY是否完整注意不要用引号包裹。另外确认 Key 没有过期。报错二知识库上传文档后召回为空。先看 OpenSearch 里有没有索引生成。如果索引为空多半是 embedding 模型没配通。用 curl 单独测 embedding 接口确认返回向量维度。bge-m3 通常是 1024 维维度对不上会导致写入失败。报错三CCE 版 pod 一直 CrashLoopBackOff。大概率是数据库连不上。检查 RDS 安全组是否放行了 CCE 节点网段以及DB_HOST是否用了内网地址。RDS 白名单没配是高频坑。报错四单机版重启后数据丢失。Docker Compose 默认没挂载数据卷。在docker-compose.yml里给 db 和 redis 加 volume 映射否则容器重建数据就没了。报错五API 地址填了带 UTM 的链接导致 404。记住 API Base 只能是https://taotoken.net/api不要带任何查询参数。官网链接才带 UTM。报错六CCE 版 ingress 访问 502。检查 Service 的 targetPort 是否和容器暴露端口一致以及 ELB 后端服务器组是否健康。健康检查路径一般配/health。6. 按场景选型与接入入口回到选型本身。如果你只是想在 Flexus 上快速验证 Dify 能不能满足需求单机版足够一台 FlexusX 加 EIP十几分钟跑起来。如果团队要做内部知识库、智能客服知识库增强版是甜点区多一台机器加 CSS 集群成本可控检索能力到位。如果是生产环境、要高并发和多租户直接上 CCE 版前期配置麻烦但后期扩缩容和容灾省心。三种方案共用的模型通道统一走 TaoToken。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Key 在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 创建。长期跑编码 Agent 的话Coding Plan 入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后提醒一句不管哪种方案先把.env里的模型通道配通再建应用否则后面排查会分不清是 Dify 的问题还是模型通道的问题。我踩过的坑基本都在这了按清单走能省不少时间。
阅读完成 · 觉得有帮助?
咨询建站