OpenModelOpenModel
SDK 与工具库

Anthropic SDK

通过修改 Base URL 即可使用官方 Anthropic SDK 接入 OpenModel

官方 Anthropic SDK 可以直接与 OpenModel 配合使用。将 Base URL 指向 OpenModel,使用你的 OpenModel API Key,即可通过 Messages 协议访问任意支持的模型。

支持的供应商

Messages 协议(/v1/messages)通过单一 SDK 即可访问多家供应商。本页所有示例适用于以下任意供应商 — 只需更换 model 名称:

供应商示例模型备注
Anthropicclaude-sonnet-4-6, claude-haiku-4-5-20251001Messages 协议原生供应商
DeepSeekdeepseek-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}")

完整的错误处理模式请参阅错误处理。

下一步

本页目录