上周在 Dify 上搭一个客服 Agent,同时要用 GPT-5 做意图识别、Claude Opus 4.6 做长文本总结。结果光配置模型供应商这一步就搞了大半天——两家 API 鉴权方式不同,Key 管理也乱得一批。后来发现只要用 OpenAI 兼容协议接一个聚合接口,改一个 base_url 就全解决了,省下来的时间够我多摸两把鱼。
核心步骤其实很简单:进入「设置 → 模型供应商」,选 OpenAI-API-compatible,填 API Key 和 base_url,保存,完事。不超过 5 分钟。下面把完整流程和踩过的坑都记下来。
要在 Dify 里同时用两个以上模型,走 OpenAI 兼容协议接聚合接口是最省事的方案。
- Dify v0.11.x 或更高(社区版 / 云端版均可)
- 一个支持 OpenAI 兼容协议的 API Key 和 base_url
- 浏览器,没了
我用的是 Docker 自建的社区版。云端版 cloud.dify.ai 操作完全一样,界面有微小差异。
Dify 侧只配一次,后面换模型直接在节点里改 model name 就行。
只用 GPT-5 一个模型的话,直接接官方最直接。
第一步:进入模型供应商配置
登录 Dify → 点右上角头像 → 「设置」→ 左侧「模型供应商」
第二步:找到 OpenAI,点击配置
在供应商列表找到 OpenAI,点「设置」,填入:
API Key: sk-proj-xxxxxxxxxxxxxxxx
保存。Dify 会自动拉取可用模型列表(gpt-5、gpt-5-mini 等)。
第三步:在工作流中使用
新建 Chatbot 或 Workflow,在 LLM 节点选模型,下拉就能看到刚才配的 OpenAI 模型了。
这个方案的问题:只能用 OpenAI 一家的模型。想加 Claude 得再配 Anthropic,想加 Gemini 又得配一套,每家 Key 管理和鉴权方式都不同,模型一多就很头疼。
一次配置,所有模型都能用。
第一步:进入模型供应商配置
登录 Dify → 「设置」→「模型供应商」
第二步:找到 OpenAI-API-compatible
注意,不是选「OpenAI」,往下翻找到 OpenAI-API-compatible。这是 Dify 内置的通用兼容供应商,支持任何遵循 OpenAI 协议的第三方接口。
点「添加模型」,填入:
Model Name: gpt-5 Model Type: LLM API Key: 你的聚合平台 Key API Base URL: https://api.ofox.ai/v1
有个坑:Model Name 必须和聚合平台上模型的实际 ID 完全一致。比如有些平台 Claude 的 model name 是 claude-opus-4.6-,就得填完整的,不能只填 claude。
第三步:配置模型参数
Context Window: (根据模型实际值填) Max Tokens: 16384 (模型最大输出) Streaming: ✅ 开启 Function Calling: ✅ 支持 (如果要用工具节点) Vision: ✅ 支持 (如果接的是多模态模型)
第四步:保存并测试
保存后回到编辑器,在 LLM 节点选模型,能看到刚才添加的模型就对了。发句话测一下,能正常回复就通了。
加更多模型?重复第二步,每次只改 Model Name:
模型 1: gpt-5 → Base URL: https://api.ofox.ai/v1 模型 2: claude-opus-4.6 → Base URL: https://api.ofox.ai/v1 模型 3: gemini-3-pro → Base URL: https://api.ofox.ai/v1 模型 4: deepseek-chat → Base URL: https://api.ofox.ai/v1
ofox.ai 是 AI 模型聚合平台,一个 API Key 可以调用 GPT-5、Claude Opus 4.6、Gemini 3 等 50+ 模型,兼容 OpenAI 协议,低延迟直连,支持支付宝付款,按量计费。
在 Dify 里配完发现不工作,别急着怀疑 Dify 有 bug——先用脚本测一下 API 本身是否通:
from openai import OpenAI client = OpenAI( api_key="your-key", base_url="https://api.ofox.ai/v1" ) # 测试基础对话 response = client.chat.completions.create( model="gpt-5", messages=[ {"role": "user", "content": "你好,测试一下连通性"} ], stream=True ) for chunk in response: if chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True) print()
脚本能正常输出,说明 API 没问题,问题在 Dify 配置。脚本就报错,先解决 API 的问题。
坑 1:Base URL 末尾多了斜杠
❌ https://api.ofox.ai/v1/ ✅ https://api.ofox.ai/v1
Dify 拼接端点时会自己加 /chat/completions,base_url 末尾多个 /,最终请求变成 v1//chat/completions,直接 404。看日志才发现,Dify 前端只告诉你「模型调用失败」,信息量为零。
坑 2:Model Name 大小写敏感
填了 GPT-5,结果模型不存在。应该是 gpt-5(小写)。各平台模型 ID 命名规范不同,最保险的办法是去文档里直接复制。
坑 3:Context Window 填错导致长对话被截断
Dify 会根据 Context Window 值做上下文管理。把 GPT-5 的窗口填成了 4096,多轮对话到第三轮就开始丢上下文。GPT-5 是 128K,Claude Opus 4.6 是 200K,别填错。
坑 4:Streaming 没开导致超时
Dify 对 LLM 调用有超时限制。生成长文本时,非 Streaming 模式可能触发超时,建议一律开启。
坑 5:Function Calling 勾选了但模型不支持
不是所有模型都支持 Function Calling。如果在工具节点里用了一个不支持 FC 的模型,会直接报错。只对确认支持的模型勾选这个选项。
这才是聚合接口真正爽的地方。我现在有一个 Workflow 是这样的:
不同节点用不同模型,各取所长:GPT-5-mini 便宜适合做意图分类,DeepSeek V3 性价比高适合 RAG,Claude Opus 4.6 长文本理解强适合做总结。所有模型共用同一个 API Key 和 base_url,管理起来毫无负担。
Dify 接入模型就两步:
- 选 OpenAI-API-compatible 供应商(不是 OpenAI)
- 填 API Key + Base URL + 正确的 Model Name
多模型场景下,用聚合接口比逐个配官方省太多事。现在 Dify 上跑着 5 个模型,配置页面干干净净,不用管一堆 Key。
Dify 的模型供应商配置界面做得确实粗糙——报错信息不够详细,填错了也不校验格式。但作为免费开源的 LLM 应用开发平台,整体还是很能打的,等后面版本改进吧。
有问题评论区聊,踩到新坑我会更新上来。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/247941.html