Anthropic SDK 接入
如果你的代码已经用 Anthropic 官方 SDK,改一个 Base URL 即可。走我们 Anthropic 原生端点的好处:prompt caching、tool use、extended thinking 等特性原样转发,零信息损失。
Python
安装
bash
pip install anthropic初始化
python
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.226-ai.com", # 不带 /v1
api_key="sk-你的token",
)一次对话
python
msg = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1000,
system="你是简洁的编程助手。",
messages=[
{"role": "user", "content": "Python 怎么读 JSON?"}
],
)
print(msg.content[0].text)
print(f"usage: {msg.usage}")流式
python
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=500,
messages=[{"role": "user", "content": "写个 haiku"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print()
# 收尾
final = stream.get_final_message()
print(f"total tokens: {final.usage.input_tokens + final.usage.output_tokens}")工具调用
python
tools = [{
"name": "search_docs",
"description": "搜索项目文档",
"input_schema": {
"type": "object",
"properties": {"query": {"type": "string"}},
"required": ["query"],
},
}]
msg = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": "项目里 auth 是怎么实现的?"}],
)
for block in msg.content:
if block.type == "text":
print("说:", block.text)
elif block.type == "tool_use":
print(f"要调用: {block.name}({block.input})")
# 实际执行,然后:
# messages.append(msg)
# messages.append({"role":"user","content":[{"type":"tool_result","tool_use_id":block.id,"content":"..."}]})
# 继续 messages.createPrompt Caching(省钱关键)
长 system prompt 或长代码库上下文一定要标记缓存:
python
msg = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system=[
{
"type": "text",
"text": "你是 Go 语言专家...(下面是 5000 字的代码规范/架构说明)",
"cache_control": {"type": "ephemeral"},
}
],
messages=[{"role": "user", "content": "帮我改这段代码"}],
)
print(f"cache_read: {msg.usage.cache_read_input_tokens}") # 命中缓存的 token 数
print(f"cache_created: {msg.usage.cache_creation_input_tokens}") # 首次写缓存- 第一次调用:cache_created 很大,按输入价 × 1.25 扣(首次写缓存贵 25%)
- 5 分钟内再调:cache_read 很大,按输入价 × 0.10 扣(便宜 90%)
Extended Thinking(推理模式)
Claude Opus / Sonnet 最新版支持显式推理:
python
msg = client.messages.create(
model="claude-opus-4-7",
max_tokens=4096,
thinking={"type": "enabled", "budget_tokens": 10000},
messages=[{"role": "user", "content": "证明费马小定理"}],
)
for block in msg.content:
if block.type == "thinking":
print("思考:", block.thinking)
elif block.type == "text":
print("回答:", block.text)注意:thinking 模式会消耗 budget_tokens 做推理,计入 output tokens。
Node.js / TypeScript
安装
bash
npm install @anthropic-ai/sdk基础
typescript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://api.226-ai.com",
apiKey: process.env.RELAY_TOKEN!,
});
const msg = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 500,
messages: [{ role: "user", content: "一句话介绍 Anthropic SDK" }],
});
console.log(msg.content[0].type === "text" ? msg.content[0].text : "");流式(Node)
typescript
const stream = await client.messages.stream({
model: "claude-sonnet-4-6",
max_tokens: 500,
messages: [{ role: "user", content: "讲个故事" }],
});
for await (const chunk of stream) {
if (chunk.type === "content_block_delta" && chunk.delta.type === "text_delta") {
process.stdout.write(chunk.delta.text);
}
}生产环境
自定义 HTTP client(加代理、改超时等)
python
import httpx
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.226-ai.com",
api_key="sk-xxx",
http_client=httpx.Client(
timeout=httpx.Timeout(60.0, connect=10.0),
transport=httpx.HTTPTransport(retries=2),
),
)请求 ID
python
resp = client.messages.with_raw_response.create(...)
req_id = resp.http_response.headers.get("x-request-id")
print(f"request-id: {req_id}")排障时把 request-id 给管理员。
和 Anthropic 官方 SDK 的差异
零差异。SDK 调的 endpoint 都是 ${base_url}/v1/messages,我们把 base_url 替换后,SDK 完全感知不到。
唯一要注意:
- 所有账号级别的功能(organization、user profile、workbench)我们不转发——那些是你 Anthropic 账号的事。我们这里只做
/v1/messages调用和/v1/models列表。
Anthropic vs OpenAI SDK 选哪个
选 Anthropic SDK 如果:
- 你只用 Claude 模型
- 要深度用 prompt caching、tool use、thinking mode
- 代码以后可能直连 Anthropic 官方 API(只改 base_url)
选 OpenAI SDK 如果:
- 你需要同一套代码同时跑 Claude + GPT + Gemini
- 已经有 OpenAI SDK 的老代码
- 同事更熟 OpenAI 生态
两种 SDK 都能通过 226-ai 调 Claude。选你团队上手更快的那个。