SDK 与工具库
Anthropic SDK
通过修改 Base URL 即可使用官方 Anthropic SDK 接入 OpenModel
官方 Anthropic SDK 可以直接与 OpenModel 配合使用。将 Base URL 指向 OpenModel,使用你的 OpenModel API Key,即可通过 Messages 协议访问任意支持的模型。
支持的供应商
Messages 协议(/v1/messages)通过单一 SDK 即可访问多家供应商。本页所有示例适用于以下任意供应商 — 只需更换 model 名称:
| 供应商 | 示例模型 | 备注 |
|---|---|---|
| Anthropic | claude-sonnet-4-6, claude-haiku-4-5-20251001 | Messages 协议原生供应商 |
| DeepSeek | deepseek-v4-flash, deepseek-v4-pro | |
| DashScope(阿里云百炼) | qwen3-max | 同时支持 Responses 协议 |
| Xiaomi(小米 MiMo) | mimo-v2.5-pro, mimo-v2-flash |
完整的供应商和模型列表请参阅可用模型。
安装
pip install anthropic配置
Python
import anthropic
client = anthropic.Anthropic(
base_url="https://api.openmodel.ai",
api_key="om-your-api-key",
)Node.js
import Anthropic from "@anthropic-ai/sdk"
const client = new Anthropic({
baseURL: "https://api.openmodel.ai",
apiKey: "om-your-api-key",
})注意: Anthropic SDK 的 Base URL 应为
https://api.openmodel.ai(不含/v1)。SDK 会自动拼接/v1/messages路径。
环境变量
通过环境变量配置 SDK:
export ANTHROPIC_BASE_URL="https://api.openmodel.ai"
export ANTHROPIC_API_KEY="om-your-api-key"然后无需显式参数即可初始化客户端:
import anthropic
client = anthropic.Anthropic() # 从环境变量读取示例
基础消息
import anthropic
client = anthropic.Anthropic(
base_url="https://api.openmodel.ai",
api_key="om-your-api-key",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "解释神经网络是如何学习的。"}
],
)
print(message.content[0].text)提示: 同样的代码适用于所有 Messages 协议供应商。要使用 DeepSeek 而不是 Anthropic,只需将
model="claude-sonnet-4-6"改为model="deepseek-v4-flash"。
系统提示词
import anthropic
client = anthropic.Anthropic(
base_url="https://api.openmodel.ai",
api_key="om-your-api-key",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="你是一位 Python 专家开发者。请提供简洁的、可用于生产环境的代码。",
messages=[
{"role": "user", "content": "写一个合并两个有序数组的函数。"}
],
)
print(message.content[0].text)流式响应
import anthropic
client = anthropic.Anthropic(
base_url="https://api.openmodel.ai",
api_key="om-your-api-key",
)
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "写一份详细的酸面包制作指南。"}
],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print()多轮对话
import anthropic
client = anthropic.Anthropic(
base_url="https://api.openmodel.ai",
api_key="om-your-api-key",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "法国的首都是哪里?"},
{"role": "assistant", "content": "法国的首都是巴黎。"},
{"role": "user", "content": "它的人口是多少?"},
],
)
print(message.content[0].text)工具调用
import anthropic
client = anthropic.Anthropic(
base_url="https://api.openmodel.ai",
api_key="om-your-api-key",
)
tools = [
{
"name": "get_weather",
"description": "获取指定位置的当前天气。",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市和国家,例如 '东京, 日本'",
},
},
"required": ["location"],
},
},
]
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=tools,
messages=[
{"role": "user", "content": "伦敦的天气怎么样?"}
],
)
for block in message.content:
if block.type == "tool_use":
print(f"工具: {block.name}")
print(f"输入: {block.input}")异步用法 (Python)
import asyncio
import anthropic
client = anthropic.AsyncAnthropic(
base_url="https://api.openmodel.ai",
api_key="om-your-api-key",
)
async def main():
message = await client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "你好!"}
],
)
print(message.content[0].text)
asyncio.run(main())错误处理
import anthropic
client = anthropic.Anthropic(
base_url="https://api.openmodel.ai",
api_key="om-your-api-key",
)
try:
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "你好!"}
],
)
except anthropic.AuthenticationError:
print("API Key 无效,请检查凭证。")
except anthropic.RateLimitError:
print("触发频率限制,请降低请求速率。")
except anthropic.APIConnectionError:
print("连接失败,请检查网络。")
except anthropic.APIStatusError as e:
print(f"API 错误 {e.status_code}: {e.message}")完整的错误处理模式请参阅错误处理。