OpenAI 与 Anthropic SDK
官方 SDK 只需替换 base_url 与 api_key,其余代码不动。
This content is not available in your language yet.
- 已安装对应 SDK:
pip install openai或pip install anthropic,Node 侧为npm i openai/npm i @anthropic-ai/sdk。 - 一把与协议匹配的 API Key,并已导出为
ROIBEST_API_KEY。
OpenAI SDK
Section titled “OpenAI SDK”Base URL 带 /v1。
# Python · 请先创建 OpenAI 兼容分组的密钥import osfrom 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,参数照旧。
// TypeScriptimport 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' }],});Anthropic SDK
Section titled “Anthropic SDK”Base URL 不带 /v1,SDK 自己拼 /v1/messages。
# Python · 请先创建 Anthropic 兼容分组的密钥import osfrom 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"}],)// TypeScriptimport 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。
