Skip to content

OpenAI base_url 自定义:Python、Node.js 接入第三方 API

OpenAI SDK 默认请求官方服务,但 base_url 允许开发者把请求切换到任何 OpenAI 兼容网关。将 base_url 改为 https://api.clawsocket.com/v1,同一套代码即可调用 GPT、Claude、DeepSeek 等模型。本文覆盖 Python、Node.js、curl、环境变量和生产排错方法。

本文的参数命名对应 OpenAI API Making Requests 官方文档OpenAI Python SDK;模型可用性与第三方路由规则请以 ClawSocket 控制台为准。

OpenAI SDK 通过 ClawSocket 统一 API 入口访问多个模型

base_url、api_key 和 model 的关系

参数Python 写法Node.js 写法说明
API 地址base_url="https://api.clawsocket.com/v1"baseURL: "https://api.clawsocket.com/v1"OpenAI 兼容版本路径
Keyapi_key="..."apiKey: "..."从 ClawSocket 控制台创建
模型model="gpt-5"model: "gpt-5"必须是网关可用 API ID

注意 Python SDK 参数名是 base_url(下划线),JavaScript SDK 参数名是 baseURL(大写 URL)。写错大小写会让 SDK 继续请求默认地址。

Python 配置

安装最新版 SDK:

bash
python -m pip install -U openai
export OPENAI_API_KEY="你的 ClawSocket API Key"
export OPENAI_BASE_URL="https://api.clawsocket.com/v1"

最小可运行示例:

python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["OPENAI_API_KEY"],
    base_url=os.getenv("OPENAI_BASE_URL", "https://api.clawsocket.com/v1"),
)
response = client.chat.completions.create(
    model="gpt-5",
    messages=[{"role": "user", "content": "解释什么是 OpenAI 兼容 API"}],
)
print(response.choices[0].message.content)

也可以只依赖环境变量,让 SDK 自动读取 OPENAI_API_KEYOPENAI_BASE_URL

python
from openai import OpenAI
client = OpenAI()

Node.js/TypeScript 配置

bash
npm install openai
export OPENAI_API_KEY="你的 ClawSocket API Key"
ts
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: process.env.OPENAI_BASE_URL ?? "https://api.clawsocket.com/v1",
});

const result = await client.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "给我一个 JavaScript 数组去重示例" }],
});
console.log(result.choices[0]?.message?.content);

curl 与模型列表检查

先检查地址和 Key,而不是直接调大请求:

bash
curl "https://api.clawsocket.com/v1/models" \
  -H "Authorization: Bearer $OPENAI_API_KEY"

成功后再调用聊天接口:

bash
curl "https://api.clawsocket.com/v1/chat/completions" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5","messages":[{"role":"user","content":"你好"}]}'

生产环境建议

  • 通过环境变量或密钥管理服务注入 OPENAI_API_KEY,不要提交 .env
  • 为开发、测试、生产创建不同 ClawSocket Key,设置额度和来源限制。
  • 服务端复用 HTTP 客户端,设置连接超时与请求超时。
  • 对 429、502、503 做指数退避,但不要无上限重试非幂等操作。
  • 日志只记录 request id、耗时和模型,不记录完整提示词与 Key。
状态码排查重点
401Key 是否为空、已撤销,Authorization 是否为 Bearer
404是否把 /v1 漏掉或重复,模型路径是否兼容
429速率限制、账户余额、并发队列
400messages、model、JSON 字段是否符合接口要求

FAQ

OpenAI Python 的 base_url 应该写到哪里?

写在 OpenAI(base_url="https://api.clawsocket.com/v1") 中,或设置 OPENAI_BASE_URL 环境变量。两者同时存在时,代码参数通常优先。

为什么改了 OPENAI_BASE_URL 仍请求官方 API?

确认变量在启动 Python/Node 进程前已导出,并检查 JavaScript 使用的是 baseURL 而非 base_url。重启 IDE 的终端后再测试。

一个 OpenAI SDK 能调用 Claude 或 DeepSeek 吗?

只要网关实现 OpenAI Chat Completions 兼容格式即可。把 model 换成控制台提供的模型 ID,复杂工具调用仍应先做兼容性测试。

base_url 末尾要不要斜杠?

按 SDK 文档和网关要求填写。ClawSocket 示例使用 /v1 且不带末尾斜杠,避免路径拼接成双斜杠。

可在ClawSocket API 控制台获取统一入口和模型列表;也可以继续阅读OpenAI 兼容 API 原理

专注大模型 API 的实用指南