Skip to content

Claude (Anthropic) 接入

调用 Claude 有两种路径,强烈推荐 OpenAI 兼容路径

示例中的模型名仅为占位

本页代码示例里的 model 字段(如 claude-sonnet-4-6)只是写法占位——Anthropic 上游模型经常更新,实际能用哪些 Claude 模型 + 当前型号名永远以 控制台模型 / 定价页 为准

路径 A:OpenAI 兼容(推荐)

把 OpenAI SDK 的 model 字段填成 Claude 模型名即可,其他完全照 OpenAI 兼容接入

python
from openai import OpenAI

client = OpenAI(
    base_url="https://s1.why01.top/v1",
    api_key="sk-你的key",
)

resp = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "用一句话解释 transformer"}],
)
print(resp.choices[0].message.content)

curl:

bash
curl https://s1.why01.top/v1/chat/completions \
  -H "Authorization: Bearer sk-你的key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [{"role": "user", "content": "你好"}]
  }'

具体 Claude 模型名以控制台 模型 / 定价页 为准。

路径 B:Anthropic 原生协议

如果你的代码已经在用 anthropic SDK(client.messages.create()),可以直接换 base_url

bash
pip install anthropic
python
from anthropic import Anthropic

client = Anthropic(
    base_url="https://s1.why01.top",
    api_key="sk-你的key",  # ⚠️ 是 why01 的 sk-...,不是 Anthropic 官方的
)

msg = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "你好"}],
)
print(msg.content[0].text)

WARNING

  • API Key 用 why01 控制台创建的 sk-...不是 Anthropic 官方的 sk-ant-...
  • 部分上游渠道仅支持 OpenAI 兼容路径,不一定支持 Anthropic 原生协议;具体看你所在用户组的渠道——出问题先切到路径 A 验证

选哪条

场景推荐
新代码A(OpenAI 兼容)
已有 anthropic SDK 大量代码B 也可以,但出问题先用 A 验链路
Tool UseA
Prompt Caching(如上游支持)视上游实现,先试 A,A 不支持试 B
Computer Use / 复杂功能不一定支持,与客服确认

多模态

python
import base64

with open("image.jpg", "rb") as f:
    img_b64 = base64.standard_b64encode(f.read()).decode()

resp = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "图里是什么?"},
            {"type": "image_url", "image_url": {
                "url": f"data:image/jpeg;base64,{img_b64}"
            }}
        ]
    }],
)

注意 Claude 系模型对图片格式 / 大小有限制(jpeg/png/gif/webp,单图 ≤ 5MB),按 Anthropic 官方文档 标准。

Tool Use(函数调用)

OpenAI 兼容路径下,Tool Use 的 schema 与 OpenAI 完全一致:

python
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "查询某城市天气",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string"}
            },
            "required": ["city"]
        }
    }
}]

resp = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "北京今天天气"}],
    tools=tools,
)
print(resp.choices[0].message.tool_calls)

调用失败

参考 错误码速查