base_url 即可指向 OpenPAI。
Python
pip install anthropic
from anthropic import Anthropic
client = Anthropic(
api_key="sk-XXXXXXXXXXXXXXXX", # 你的 OpenPAI Key
base_url="https://openp.ai", # 注意:不带 /v1
)
resp = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
system="你是 Python 工程师",
messages=[{"role": "user", "content": "用 Python 写一个 LRU Cache"}],
)
print(resp.content[0].text)
Node.js / TypeScript
npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.OPENPAI_API_KEY!,
baseURL: "https://openp.ai",
});
const resp = await client.messages.create({
model: "claude-opus-4-8",
max_tokens: 1024,
messages: [{ role: "user", content: "hello" }],
});
流式
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "讲个故事"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
工具调用
resp = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
tools=[{
"name": "get_weather",
"description": "获取城市天气",
"input_schema": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
}
}],
messages=[{"role": "user", "content": "查上海今天的天气"}],
)
for block in resp.content:
if block.type == "tool_use":
print(block.name, block.input)
思考模式
resp = client.messages.create(
model="claude-opus-4-8",
max_tokens=4096,
thinking={"type": "enabled", "budget_tokens": 8000},
messages=[{"role": "user", "content": "证明费马小定理"}],
)
for block in resp.content:
if block.type == "thinking":
print("[思考]", block.thinking)
elif block.type == "text":
print("[回答]", block.text)
提示缓存
resp = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
system=[
{
"type": "text",
"text": "<长 system prompt>",
"cache_control": {"type": "ephemeral"},
}
],
messages=[{"role": "user", "content": "..."}],
)
视觉
resp = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "这张图里是什么?"},
{"type": "image", "source": {
"type": "base64",
"media_type": "image/png",
"data": "<base64-string>",
}},
],
}],
)
注意事项
- OpenPAI 同时支持 OpenAI 兼容协议调用 Claude(
/v1/chat/completions),但若你的代码已经使用 Anthropic SDK,直接覆盖 base_url 是最低改动方案。 anthropic-version头会由 SDK 自动添加,无需手动指定。- 上游 Anthropic 官方 API 暂未开放给所有地区,OpenPAI 提供稳定接入。