用 OpenAI SDK 接入 OpenAI-compatible API 网

24 阅读4分钟

很多 AI 客户端和 SDK 都支持 OpenAI-compatible API。

它的好处是:你不一定要为每个模型、每个供应商单独改代码。只要服务端兼容 OpenAI 的接口格式,客户端通常只需要改两个地方:

  • api_key
  • base_url

这篇文章用一个最小可跑通的方式,演示如何在代码里接入一个 OpenAI-compatible API 网关,并用 diegeai.com 做示例。

本文只讨论合法授权的 API 网关、自有服务或团队内部统一网关接入,不涉及绕过限制、盗用账号或任何违规用途。

为什么要用 OpenAI-compatible API 网关

在实际开发里,你可能会遇到这些情况:

  • 项目里想统一管理多个模型
  • 想让前端、后端、脚本都用同一套调用方式
  • 想在不同模型之间切换,但不想每次重写 SDK 代码
  • 想集中查看用量、余额和调用日志
  • 想先用一个客户端快速验证接口是否可用

这时,一个兼容 OpenAI 接口格式的网关会比较方便。

从代码侧看,它通常还是这类调用方式:

client.chat.completions.create(...)

只是 base_url 指向你自己的网关地址。

先准备 3 个参数

开始之前,先准备好:

参数示例说明
API Keysk-xxxxxxxx后台创建的密钥
Base URLhttps://diegeai.comAPI 网关地址
Modelgpt-4o-mini后台支持的模型 ID

这里最容易出错的是模型名。

模型名不是展示名称,而是接口里真实使用的模型 ID。建议直接从后台模型列表复制。

用 curl 先测接口

在写 SDK 代码之前,建议先用 curl 做一次最小测试。

curl https://diegeai.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -d '{
    "model": "你的模型 ID",
    "messages": [
      {
        "role": "user",
        "content": "请回复 OK"
      }
    ]
  }'

如果能正常返回内容,说明这几个关键点大概率是通的:

  • Key 可用
  • 地址可用
  • 模型名可用
  • 账号有余额或额度

如果 curl 都不通,先不要急着排查 SDK,先看后面的常见错误。

Node.js 示例

先安装依赖:

npm install openai

然后写一个最小示例:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.API_KEY,
  baseURL: "https://diegeai.com",
});

const completion = await client.chat.completions.create({
  model: "你的模型 ID",
  messages: [
    {
      role: "user",
      content: "请用一句话介绍你自己",
    },
  ],
});

console.log(completion.choices[0].message.content);

运行时把 Key 放到环境变量里:

API_KEY="sk-xxxxxxxx" node index.js

开发时不要把真实 Key 写进代码仓库。

Python 示例

安装依赖:

pip install openai

示例代码:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("API_KEY"),
    base_url="https://diegeai.com",
)

response = client.chat.completions.create(
    model="你的模型 ID",
    messages=[
        {
            "role": "user",
            "content": "请回复 OK",
        }
    ],
)

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

运行:

API_KEY="sk-xxxxxxxx" python main.py

常见错误排查

1. 401 Unauthorized

一般是 Key 的问题。

常见原因:

  • API Key 填错
  • Key 前后有空格
  • Key 被删除或过期
  • 当前 Key 没有额度

排查顺序:

重新复制 Key -> 检查余额 -> 检查 Key 是否启用

2. 404 Not Found

一般是 Base URL 或路径的问题。

如果你使用 diegeai.com,示例里的 Base URL 直接写:

https://diegeai.com

不要把完整接口路径写进 SDK 的 base_url

3. model not found

一般是模型 ID 写错。

注意这两个不是一回事:

GPT-4o Mini
gpt-4o-mini

前者更像展示名,后者才更像接口里的模型 ID。

4. quota exceeded

一般是余额或额度问题。

先去后台看:

  • 余额
  • 用量记录
  • 当前 Key 的额度
  • 当前分组是否有限制

5. timeout

超时不一定是接口坏了,也可能是:

  • 模型响应慢
  • 上游拥堵
  • 网络波动
  • 上下文太长

可以先用一句很短的问题测试:

请回复 OK

短问题能返回,长问题超时,通常就不是 Key 或地址的问题。

一个实用的接入顺序

我一般建议按这个顺序排查:

  1. 后台创建 API Key
  2. 复制后台支持的模型 ID
  3. curl 测一条短消息
  4. 再接入 Node.js 或 Python SDK
  5. 最后接入 Cherry Studio、Cursor 等客户端

这样能把问题拆开。

如果一上来就直接接客户端,遇到报错时很难判断到底是 Key、模型、地址,还是客户端配置问题。

diegeai.com 的接入信息

如果你只是想找一个 OpenAI-compatible API 网关做测试,可以看一下 diegeai.com。

接入信息:

官网:https://diegeai.com
Base URL:https://diegeai.com
QQ群:1049792539

适合先做这些测试:

  • OpenAI SDK 是否能跑通
  • Cherry Studio 是否能接入
  • Cursor / 其他客户端是否能配置
  • 模型名、余额、调用日志是否清楚

建议第一次只小额测试。确认模型、计费、稳定性都符合预期后,再放到长期使用的项目里。

总结

OpenAI-compatible API 接入并不复杂,核心就是三个点:

API Key 正确
Base URL 正确
模型 ID 正确

如果你正在排查接口问题,先用 curl 做最小请求,再接 SDK。

这样能快速判断问题到底出在网关、模型、Key,还是客户端配置上。