一句话回答
Dify 连接 OpenAI 兼容接口失败,优先检查 openai_api_base、API Key、模型名和网络。很多 Dify 的 provider error 只是外层提示,真正原因可能是 401、invalid_api_key、model_not_found、404 或 timeout。
最稳的排查方式是:先用 curl 请求 /models,确认服务可访问;再回到 Dify 模型供应商页面测试;最后再接入应用或工作流。
这个问题通常出现在哪里
常见场景包括:
- 添加 OpenAI-API-compatible 供应商时测试失败。
- Dify Chat App 调用模型时报 provider error。
- 自部署 Dify 在服务器上无法访问 API 域名。
- 模型供应商保存成功,但实际聊天时报错。
- Key 在别的工具里可用,在 Dify 里不可用。
基础配置可以看 Dify 配置 OpenAI 兼容 API 完整教程 和 Dify 里的 openai_api_base 应该怎么填。
最常见原因
1. openai_api_base 填错
推荐填 API 入口地址,通常到 /v1:
https://api.tokencheap.space/v1
不要填网页后台地址,也不要填完整 /chat/completions。
2. API Key 和 Base URL 不匹配
TokenCheap Key 要配 TokenCheap Base URL,OpenAI 官方 Key 要配 OpenAI 官方 Base URL。混用会导致 401 或 invalid key。
3. 模型名不存在
Dify 里填写的模型名必须是当前服务支持的模型 ID。先请求 /models,再复制真实模型名。参考 model_not_found 怎么解决。
4. 自部署服务器网络不通
自部署 Dify 请求从服务器发出。服务器无法访问 API 域名时,Dify 页面会显示连接失败或 provider error。
5. 请求过快或额度不足
工作流批量调用时可能触发 429 或 quota。参考 OpenAI API 429 报错解决 和 insufficient_quota 配额不足。
快速排查步骤
- 在服务器或本地执行
/modelscurl 测试。 - 确认
openai_api_base是 API 地址。 - 确认 Key 和 Base URL 来自同一服务商。
- 确认模型名在
/models列表里。 - 在 Dify 模型供应商页面重新测试。
- 如果仍失败,查看 Dify 日志里的原始错误码。
curl 验证命令
curl "https://api.tokencheap.space/v1/models" \
-H "Authorization: Bearer YOUR_API_KEY"
返回模型列表后,再把其中一个模型 ID 填入 Dify。不要手动猜模型名。
云端 Dify 和自部署 Dify 怎么区分
云端 Dify
请求从 Dify 云端发出。你需要确认服务商允许该环境访问,并且 Key 没有 IP 限制。
自部署 Dify
请求从你的服务器发出。必须在服务器上 curl 测试,而不是只在浏览器里测试。
Provider Error 怎么看
Provider Error 是 Dify 对底层错误的包装。你要继续找原始信息:
- 401:认证失败。
- 404:路径或 endpoint 错。
- model_not_found:模型名问题。
- timeout:网络问题。
- 429:限流或额度问题。
相关阅读
- Dify 里的 openai_api_base 应该怎么填?
- Dify 配置 OpenAI 兼容 API 完整教程
- OpenAI Compatible API curl 调用示例
- invalid_api_key 是什么原因?
- TokenCheap AI API 接入入口
FAQ
Dify 连接 OpenAI 兼容接口失败先查什么?
先查 openai_api_base 和 API Key 是否匹配,再用 curl 请求 /models 验证。
Dify Provider Error 是什么意思?
它是一个外层错误,底层可能是 401、404、429、timeout 或 model_not_found。
Key 在 Cursor 可用,Dify 不可用怎么办?
检查 Dify 是否使用同一个 Base URL 和模型名。如果是自部署,还要检查服务器网络。
openai_api_base 要不要带 /v1?
多数 OpenAI-compatible 配置建议带 /v1,例如 https://api.tokencheap.space/v1。
Dify 自部署为什么本地能访问但服务不行?
因为 Dify 请求从服务器发出。服务器的 DNS、代理、防火墙和出口网络都可能不同。