DeepAI Paper OpenAI Compatible API 从 curl 到 Python:如何确认 DeepAI OpenAI 兼容接口真的能用

从 curl 到 Python:如何确认 DeepAI OpenAI 兼容接口真的能用

你在 Cherry Studio、Dify、Cline、Open WebUI 里填完 API Key 后,如果工具报错,最麻烦的地方不是报错本身,而是你不知道问题出在哪里。

是 Key 错了?Base URL 写错了?模型名不存在?还是工具自己的配置项有问题?

我建议不要一上来就在客户端里反复点“保存”和“测试连接”。更稳的做法是:先离开工具,用最小请求把接口测通。

这篇文章就用 DeepAI API 中转站作为示例,演示一套从 curl 到 Python 的最小测试流程。只要这套流程能跑通,再去配置 Cherry Studio、Dify、Cline 或 Open WebUI,排错会简单很多。

本文示例默认使用:

Base URL: https://api.deepai.wang/v1
API Key: YOUR_DEEPAI_API_KEY
Model ID: YOUR_MODEL_ID

其中 YOUR_DEEPAI_API_KEY 替换成你在 DeepAI 控制台创建的令牌,YOUR_MODEL_ID 替换成 DeepAI 后台可用的模型名称。

如果你还没准备 Key,可以先打开 DeepAI API 中转站:

https://api.deepai.wang/


为什么要先用 curl 测试

很多 AI 客户端会把错误包装得很模糊。

比如同样是“连接失败”,背后可能是:

  • API Key 填错;
  • Base URL 多写或少写了 /v1
  • 模型 ID 不存在;
  • 当前 Key 没有模型权限;
  • 余额不足或触发限速;
  • 工具请求的是 /models,但服务商更适合手动填模型;
  • 网络代理或防火墙拦截了请求。

curl 的好处是它足够简单。你发出去什么请求、服务端返回什么内容,都能直接看到。

如果 curl 都不通,先别折腾 Cherry Studio、Dify、Cline。先把 API 本身修好。

如果 curl 能通,但工具不能用,问题大概率就在工具配置上。


第一步:确认 Base URL 写法

本文以 DeepAI 为主,常用 Base URL 是:

https://api.deepai.wang/v1

注意这里包含 /v1

很多 404 都是路径拼错导致的。比如某些工具会自动拼接 /v1/chat/completions,如果你又手动多写了一层,就可能变成:

https://api.deepai.wang/v1/v1/chat/completions

这不是模型问题,也不是 Key 问题,就是地址拼错。

所以配置任何工具前,先确认它要求你填的是:

  • 完整 Base URL:https://api.deepai.wang/v1
  • 还是根地址:https://api.deepai.wang

大多数支持 OpenAI Compatible API 的工具,会让你填写到 /v1。但具体仍要看工具说明。

如果你还不熟悉 Base URL、API Key、Model ID 的区别,可以先看这篇基础说明:

OpenAI Compatible API 是什么?Base URL、API Key、Model ID 与 DeepAI 接入教程


第二步:测试模型列表

先测 /models

curl https://api.deepai.wang/v1/models \
  -H "Authorization: Bearer YOUR_DEEPAI_API_KEY"

如果返回模型列表,说明至少三件事是对的:

  • https://api.deepai.wang/v1 这个地址能访问;
  • API Key 格式和鉴权基本没问题;
  • 当前接口支持模型列表查询。

如果这里报 401,大概率是 Key 有问题。

如果这里报 404,要优先检查 Base URL 是否写错。

如果这里报 429,可能是限速、额度或余额问题。

不过要注意:模型列表测试失败,不一定代表聊天接口一定不能用。有些兼容接口对 /models 的支持不完整,或者工具端需要手动填写模型 ID。真正决定聊天能不能跑的,是下一步 /chat/completions


第三步:测试聊天接口

YOUR_MODEL_ID 换成 DeepAI 后台可用的模型 ID:

curl https://api.deepai.wang/v1/chat/completions \
  -H "Authorization: Bearer YOUR_DEEPAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "messages": [
      {
        "role": "user",
        "content": "用一句话解释 OpenAI Compatible API"
      }
    ]
  }'

如果返回了模型回复,说明聊天接口已经跑通。

这时你再去配置 Cherry Studio、Dify、Cline、Open WebUI,就可以把排查范围缩小到工具本身:

  • 模型名是否填对;
  • Base URL 是否重复拼接;
  • 工具是否要求手动添加模型;
  • 是否有模型过滤器;
  • 是否开启了对应服务商开关。

如果聊天接口报错,则继续看下面的错误排查。


第四步:测试流式输出

很多客户端默认使用流式输出。普通请求能通,不代表 stream 一定稳定。

可以这样测:

curl https://api.deepai.wang/v1/chat/completions \
  -H "Authorization: Bearer YOUR_DEEPAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "stream": true,
    "messages": [
      {
        "role": "user",
        "content": "请用三点说明 API 中转站的作用"
      }
    ]
  }'

如果普通请求能返回,但流式请求中途断开,可能和这些因素有关:

  • 网络代理不稳定;
  • 反向代理没有正确支持长连接;
  • 客户端超时时间太短;
  • 当前模型响应太慢;
  • 请求内容过长。

Open WebUI、Cherry Studio、Cline 这类工具都可能用到流式输出。如果你经常遇到“回答到一半断了”,这一步很值得测。


第五步:用 Python 再测一遍

curl 适合快速判断接口是否通,Python 更接近真实项目调用。

先安装 OpenAI Python SDK:

pip install openai

然后新建一个 test_deepai.py

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_DEEPAI_API_KEY",
    base_url="https://api.deepai.wang/v1"
)

resp = client.chat.completions.create(
    model="YOUR_MODEL_ID",
    messages=[
        {"role": "user", "content": "用一句话解释 DeepAI API 中转站的作用"}
    ]
)

print(resp.choices[0].message.content)

运行:

python test_deepai.py

如果这里能输出内容,说明你已经可以在自己的 Python 项目里调用 DeepAI 的 OpenAI 兼容接口。

如果 Python 报错,但 curl 正常,重点检查:

  • SDK 版本是否太旧;
  • base_url 参数是否写对;
  • Key 是否有前后空格;
  • Python 环境是否走了错误代理;
  • 模型 ID 是否复制错。

第六步:不要把 Key 写死在代码里

上面的示例为了方便演示,把 Key 直接写在代码里。真实项目里不建议这么做。

更好的方式是用环境变量。

Linux / macOS:

export DEEPAI_API_KEY="YOUR_DEEPAI_API_KEY"

Windows PowerShell:

$env:DEEPAI_API_KEY="YOUR_DEEPAI_API_KEY"

Python 代码改成:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPAI_API_KEY"),
    base_url="https://api.deepai.wang/v1"
)

resp = client.chat.completions.create(
    model="YOUR_MODEL_ID",
    messages=[
        {"role": "user", "content": "测试 DeepAI API 是否可用"}
    ]
)

print(resp.choices[0].message.content)

这样做有几个好处:

  • 不容易把 Key 提交到 GitHub;
  • 多个环境可以用不同 Key;
  • 换 Key 不需要改代码;
  • 出问题时更容易定位。

如果你是给 Cherry Studio、Dify、Open WebUI、Cline 分别配置,建议也给每个工具单独创建一个 DeepAI 令牌。这样后面查用量、排查异常消耗会方便很多。


常见错误怎么判断

下面这些是测试 OpenAI 兼容接口时最常见的问题。

报错更可能的原因先检查什么
401 UnauthorizedKey 错误、Key 被禁用、Key 和 Base URL 不匹配重新复制 DeepAI API Key
403 Forbidden没有权限、账号限制、模型权限不足检查 DeepAI 后台权限和模型可用性
404 Not FoundBase URL 路径错、/v1 重复或缺失检查最终请求地址
429 Too Many Requests限速、余额不足、并发太高查看余额、降低频率
model not found模型 ID 写错或无权限从 DeepAI 模型列表复制模型名
timeout网络、代理、模型响应慢换网络、减少上下文、检查代理
stream interrupted流式连接中断测普通请求,再测 stream

最容易混淆的是 404。

很多人看到 404 以为“平台不可用”,其实更常见的是路径拼错:

https://api.deepai.wang/v1/v1/chat/completions

这种就是 /v1 重复了。

还有一种是少了 /v1

https://api.deepai.wang/chat/completions

所以遇到 404,先别换模型,先看请求地址。


测通以后,怎么接到具体工具

接口测通后,再去接客户端就简单了。

Cherry Studio

重点检查:

  • 服务商是否选择 OpenAI 或自定义 OpenAI;
  • Base URL 是否填 https://api.deepai.wang/v1
  • API Key 是否为 DeepAI 令牌;
  • 模型是否手动添加;
  • 服务商开关是否打开。

如果你主要用 Cherry Studio,可以继续看:

Cherry Studio 接入 GPT、Claude、Gemini、DeepSeek 统一方案:DeepAI 多模型配置

Dify

Dify 里通常要在模型供应商或 OpenAI API-compatible 插件里配置。

重点检查:

  • 聊天模型和 Embedding 模型是否分开配置;
  • Workflow 用到的模型是否有权限;
  • 速率限制是否影响工作流;
  • 知识库场景是否需要额外配置向量模型。

继续阅读:

Dify 插件市场 OpenAI Compatible 模型怎么配置?DeepAI 接入说明

Open WebUI

Open WebUI 可能会尝试读取模型列表。如果模型列表不显示,可以手动填写 Model IDs Filter。

继续阅读:

Open WebUI 私有部署安全配置建议:DeepAI Key、团队权限与反向代理

Cline

Cline 是代码 Agent,测试一句话能返回还不够。你还要关注模型是否适合代码任务、上下文长度是否足够、长任务是否稳定。

如果给 Cline 用,建议单独创建 DeepAI 令牌,方便控制消耗。


一个最小排查顺序

如果你不想看太多解释,按这个顺序来:

1. 打开 DeepAI API 中转站,确认 API Key 和模型 ID; 2. 用 curl 测 https://api.deepai.wang/v1/models; 3. 用 curl 测 https://api.deepai.wang/v1/chat/completions; 4. 如果客户端支持 stream,再测一次 stream: true; 5. 用 Python SDK 测 base_url="https://api.deepai.wang/v1"; 6. curl 和 Python 都正常后,再去配置 Cherry Studio、Dify、Cline、Open WebUI; 7. 如果工具仍报错,优先检查工具里的模型名、Base URL 拼接和模型过滤器。

这套流程的价值是:先把 API 本身和工具配置分开。

API 本身不通,就修 Key、地址、模型、额度。

API 本身通,工具不通,就查工具配置。

不要混在一起猜。


FAQ

DeepAI 的 Base URL 应该怎么填?

本文示例使用:

https://api.deepai.wang/v1

大多数 OpenAI Compatible API 工具可以填写这个地址。如果某个工具要求填写根地址,则按工具文档调整。

为什么 /models 测试失败,但聊天接口可能能用?

因为有些兼容接口对模型列表支持不完整,或者客户端需要手动填模型 ID。真正要确认聊天是否可用,还是要测试 /v1/chat/completions

401 一定是 Key 错了吗?

大多数情况下是 Key 问题,但也可能是 Key 和 Base URL 不匹配。比如把别的平台 Key 填到了 DeepAI 的 Base URL 里。

404 是模型不存在吗?

不一定。404 很多时候是路径错,比如 /v1 重复或缺失。模型不存在通常会返回 model not found 或类似错误。

Python SDK 能用 DeepAI 这种兼容接口吗?

可以。关键是初始化客户端时设置:

client = OpenAI(
    api_key="YOUR_DEEPAI_API_KEY",
    base_url="https://api.deepai.wang/v1"
)

要不要给每个工具单独创建 Key?

建议这样做。Cherry Studio、Dify、Cline、Open WebUI 分别用不同 DeepAI 令牌,后续看日志、查消耗、停用异常工具都会更方便。


总结

配置 OpenAI 兼容接口时,别一开始就陷在工具界面里反复试。

先用 curl 测 Base URL、API Key 和模型 ID,再用 Python 测一次真实调用。确认 DeepAI API 本身可用后,再接 Cherry Studio、Dify、Cline、Open WebUI,排错会清楚很多。

如果你还没有准备接口,可以先进入 DeepAI API 中转站创建令牌:

https://api.deepai.wang/

如果你还没弄清 Base URL、API Key、Model ID 的区别,可以先看上一篇:

OpenAI Compatible API 是什么?Base URL、API Key、Model ID 与 DeepAI 接入教程

Related Post

Dify deepai max completion tokens reasoning model.png

Dify 接入 DeepAI API 中转站:max_tokens 不支持改用 max_completion_tokensDify 接入 DeepAI API 中转站:max_tokens 不支持改用 max_completion_tokens

Dify 使用 OpenAI-API-compatible Provider 接入 o1、GPT-5 或其他 reasoning 模型时,如果模型校验或运行报 Unsupported parameter: max_tokens,通常要改用 max_completion_tokens。本文结合 Dify Issue #10348、官方插件 Issue #1845 和 PR #2713/#2771,整理 DeepAI API 中转站场景下的排查与修复方法。

Cline deepai tool use xml context error.png

Cline 接入 DeepAI API 中转站:You did not use a tool 工具调用错误怎么排查Cline 接入 DeepAI API 中转站:You did not use a tool 工具调用错误怎么排查

Cline / Roo Code 类代码 Agent 通过 OpenAI-compatible Provider 接入中转站时,如果提示 You did not use a tool in your previous response,常见根因不是 Base URL,而是模型没有按 XML 工具格式输出、项目上下文过大或本地模型 context 太小。本文结合 Cline Issue #735,整理 DeepAI

Openclaw deepai tool calls not executed.png

OpenClaw 接入 DeepAI API 中转站:返回 tool_calls 但工具不执行的排查OpenClaw 接入 DeepAI API 中转站:返回 tool_calls 但工具不执行的排查

OpenClaw 使用自定义 OpenAI-compatible Provider 时,直接 curl 能返回合法 tool_calls,但 Agent 只用自然语言回应,write、exec 等本地工具没有执行。本文结合 OpenClaw Issue #67745,整理 DeepAI API 中转站日志、tool_choice、finish_reason 与客户端工具调度的分层排查方法。