使用 Anthropic SDK

使用官方 Anthropic Python SDK 调用 Genesis Messages API。本页说明 SDK 的认证参数和地址配置;它只适用于 Anthropic Messages 请求,不适用于 OpenAI Chat Completions 或 Responses API。

前提条件

  • 已准备可用于 Genesis 的访问令牌。

  • 已从获取可用模型取得支持 Messages 的模型 ID。

  • 已安装 Python 和官方 Anthropic Python SDK。

pip install anthropic

配置环境变量

控制台提供的 Genesis Base URL 通常以 /v1 结尾。Anthropic SDK 需要 Genesis 的 origin/root,并自行追加 /v1/messages,因此不要把完整的 OpenAI 兼容 Base URL 直接传给 SDK:

export GENESIS_BASE_URL='<Genesis Base URL copied from the console>'
export GENESIS_MESSAGES_ORIGIN="${GENESIS_BASE_URL%/v1}"
export GENESIS_ACCESS_TOKEN="<ACCESS_TOKEN>"

GENESIS_MESSAGES_ORIGIN 应为不包含 /v1 的地址。请以控制台当前提供的地址为准。

发送 Messages 请求

将令牌传给 auth_token。不要将 Genesis 访问令牌传给 api_key;该参数会使用 X-Api-Key 请求头,而 Genesis Messages 请求使用 Authorization: Bearer <ACCESS_TOKEN>

import os

from anthropic import Anthropic

client = Anthropic(
    auth_token=os.environ["GENESIS_ACCESS_TOKEN"],
    base_url=os.environ["GENESIS_MESSAGES_ORIGIN"],
)

message = client.messages.create(
    model="<MESSAGES_MODEL_ID>",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": "用一句话解释数据血缘。",
        }
    ],
)

for block in message.content:
    if block.type == "text":
        print(block.text)

调用成功后,SDK 返回 Messages 响应对象。输出可能包含多个内容块,因此应检查内容块类型后再读取 text

使用 SDK 时的注意事项

项目

配置或处理方式

认证

使用 auth_token,由 SDK 发送 Authorization: Bearer <ACCESS_TOKEN>

地址

base_url 使用不含 /v1 的 Genesis origin/root。

模型

使用当前凭证可访问且支持 Messages 的模型 ID。

流式输出

在 Messages 请求中启用 stream 后,按 Anthropic Messages 事件处理增量内容。

图像输入

使用 Anthropic Messages 内容块格式,并先确认模型支持多模态输入。

工具调用

仅在端点、模型和当前服务配置均支持时使用。

stream、图像内容块和工具定义属于 Messages 请求参数。字段结构、SSE 处理与能力限制见Anthropic Messages API

常见问题

现象

先检查

下一步

401 或认证错误

是否使用了 api_key,以及请求 Header

改用 auth_token,并检查访问令牌是否有效。

返回路径错误

base_url 是否包含重复的 /v1

base_url 设为不含 /v1 的 Genesis origin/root。

模型不可用

模型 ID 与当前凭证范围

从当前可用模型列表中重新选择模型。

结果没有预期文本

是否假设响应只包含一个文本内容块

遍历 message.content,按内容块的 type 读取结果。

下一步

最后更新于