集成指南
Anthropic SDK(Python 与 TypeScript)
使用原生 Anthropic /v1/messages 接口与官方 anthropic SDK 对接 ToRouter。
ToRouter 在 https://portal.torouter.ai/v1/messages 暴露原生 Anthropic Messages API。官方 anthropic Python 包和 @anthropic-ai/sdk 无需改动即可使用——设置 Base URL 与 Key 后,用 client.messages.create(...) 调用 Claude(或目录中的其他模型)。
配置
| 配置项 | 说明 |
|---|---|
| Base URL | https://portal.torouter.ai (SDK 会自动追加 /v1/messages) |
| API Key | sk-*** |
| 模型 | claude-opus-4-7、claude-sonnet-4-5、claude-haiku-4-5 等 |
环境变量 ANTHROPIC_BASE_URL 与 ANTHROPIC_API_KEY 也会被自动识别。
代码
from anthropic import Anthropic
client = Anthropic(
base_url="https://portal.torouter.ai",
api_key="sk-***",
)
msg = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
print(msg.content[0].text)import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
baseURL: 'https://portal.torouter.ai',
apiKey: 'sk-***',
});
const msg = await client.messages.create({
model: 'claude-opus-4-7',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello' }],
});
console.log(msg.content[0].type === 'text' ? msg.content[0].text : '');curl https://portal.torouter.ai/v1/messages \
-H "x-api-key: sk-***" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4-7",
"max_tokens": 1024,
"messages": [{"role":"user","content":"Hello"}]
}'Prompt caching 透传
system/user 内容上的 cache_control 块会原样转发给上游 Anthropic 以及 Anthropic-on-OpenRouter 账号,ToRouter 不会剥离该字段,节省的 token 会直接体现在用量看板里。
易踩的坑
- 使用
https://portal.torouter.ai(不带/v1)——SDK 会自动追加/v1/messages。如果填了完整路径,会拼成/v1/v1/messages并 404。 - 鉴权头是
x-api-key,不是Authorization: Bearer(SDK 会自动处理;仅在裸 HTTP 调用时需注意)。 - 如果你更习惯 OpenAI 协议,OpenAI 风格的
/v1/chat/completions路径也接受 Claude 模型——参见 openai-python。