跳转到内容

OpenAI 与 Anthropic SDK

官方 SDK 只需替换 base_url 与 api_key,其余代码不动。

  • 已安装对应 SDK:pip install openaipip install anthropic,Node 侧为 npm i openai / npm i @anthropic-ai/sdk
  • 一把与协议匹配的 API Key,并已导出为 ROIBEST_API_KEY
SDK 地址示意:OpenAI 的 base_url 带 v1,Anthropic 使用根地址,由 SDK 拼接各自的接口路径
协议配置示意图,非运行截图。先选 SDK,再使用下面对应的代码;点击图片查看大图。

Base URL 带 /v1

# Python · 请先创建 OpenAI 兼容分组的密钥
import os
from openai import OpenAI
client = OpenAI(
base_url="https://ai.roibest.com/v1",
api_key=os.environ["ROIBEST_API_KEY"],
)
response = client.responses.create(
model="your-model",
input="Hello",
)

用 Chat Completions 时把 client.responses.create 换成 client.chat.completions.create,参数照旧。

// TypeScript
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://ai.roibest.com/v1',
apiKey: process.env.ROIBEST_API_KEY,
});
const response = await client.chat.completions.create({
model: 'your-model',
messages: [{ role: 'user', content: 'Hello' }],
});

Base URL 不带 /v1,SDK 自己拼 /v1/messages

# Python · 请先创建 Anthropic 兼容分组的密钥
import os
from anthropic import Anthropic
client = Anthropic(
base_url="https://ai.roibest.com",
api_key=os.environ["ROIBEST_API_KEY"],
)
message = client.messages.create(
model="your-model",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
// TypeScript
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
baseURL: 'https://ai.roibest.com',
apiKey: process.env.ROIBEST_API_KEY,
});
const message = await client.messages.create({
model: 'your-model',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello' }],
});
终端窗口
curl https://ai.roibest.com/v1/chat/completions \
-H "Authorization: Bearer $ROIBEST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"your-model","messages":[{"role":"user","content":"hello"}]}'

为什么两个 SDK 的 Base URL 不一样? OpenAI SDK 把 /v1 当作 base 的一部分,Anthropic SDK 把它当作路径的一部分自行拼接。照上面的写法即可。

max_tokens 是必填的吗? Anthropic 协议必填,OpenAI 协议可选。

Responses API 报不支持。 该模型不支持 Responses 协议,改用 Chat Completions。

ROIBest AI 文档