上周在 Dify 上搭一个客服 Agent,同时要用 GPT-5 做意图识别、Claude Opus 4.6 做长文本总结。结果光配置模型供应商这一步就搞了大半天——两家 API 鉴权方式不同,Key 管理也乱得一批。后来发现只要用 OpenAI 兼容协议接一个聚合接口,改一个 base_url 就全解决了,省下来的时间够我多摸两把鱼。
核心步骤其实很简单:进入「设置 → 模型供应商」,选 OpenAI-API-compatible,填 API Key 和 base_url,保存,完事。不超过 5 分钟。下面把完整流程和踩过的坑都记下来。
先说结论
| 维度 | 直接接官方 API | 用 OpenAI 兼容聚合接口 |
|---|---|---|
| 配置复杂度 | 每家单独配,至少 3 套 Key | 1 个 Key + 1 个 base_url |
| 模型切换 | 换供应商要重新配 | 只改 model 参数 |
| 鉴权方式 | 各家不同(Bearer/x-api-key 等) | 统一 Bearer Token |
| Streaming 兼容 | 部分模型需要适配 | 聚合层统一处理 |
| 上手时间 | 30 分钟+ | 5 分钟 |
要在 Dify 里同时用两个以上模型,走 OpenAI 兼容协议接聚合接口是最省事的方案。
环境准备
- Dify v0.11.x 或更高(社区版 / 云端版均可)
- 一个支持 OpenAI 兼容协议的 API Key 和 base_url
- 浏览器,没了
我用的是 Docker 自建的社区版。云端版 cloud.dify.ai 操作完全一样,界面有微小差异。
graph LR
A[Dify 工作流/Chatbot] -->|OpenAI 协议| B[聚合 API 网关]
B --> C[GPT-5]
B --> D[Claude Opus 4.6]
B --> E[Gemini 3]
B --> F[DeepSeek V3]
B --> G[Qwen 3]
Dify 侧只配一次,后面换模型直接在节点里改 model name 就行。
方案一:接入 OpenAI 官方 API(单模型场景)
只用 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 管理和鉴权方式都不同,模型一多就很头疼。
方案二:用 OpenAI 兼容协议接聚合 API(推荐,多模型场景)
一次配置,所有模型都能用。
第一步:进入模型供应商配置
登录 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-20260301,就得填完整的,不能只填 claude。
第三步:配置模型参数
Context Window: 128000 (根据模型实际值填)
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 协议,低延迟直连,支持支付宝付款,按量计费。
先用 Python 验证 API
在 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 里混用多个模型
这才是聚合接口真正爽的地方。我现在有一个 Workflow 是这样的:
graph TD
A[用户输入] --> B[意图识别<br/>GPT-5-mini]
B -->|问答类| C[知识库检索 + RAG<br/>DeepSeek V3]
B -->|总结类| D[长文本总结<br/>Claude Opus 4.6]
B -->|代码类| E[代码生成<br/>GPT-5]
C --> F[输出]
D --> F
E --> F
不同节点用不同模型,各取所长: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 应用开发平台,整体还是很能打的,等后面版本改进吧。
有问题评论区聊,踩到新坑我会更新上来。