跳到主要内容
版本:1.5.0

Anthropic SDK

将 Anthropic Python SDK 指向 AISIX AI 网关,在保留 Anthropic Messages 请求格式的同时,由网关管理调用方身份认证、模型别名、路由和策略。

SDK 只需要网关 base URL、AISIX 调用方 API Key,以及可通过 /v1/messages 使用的模型别名。该别名可以直接使用 Anthropic,也可以通过 AISIX 转换使用其他受支持的模型服务提供方。

准备工作​

  • 应用可以访问的、正在运行的 AISIX 网关。
  • 可通过 /v1/messages 使用的已配置模型别名。
  • 允许使用该模型别名的调用方 API Key。
  • Python 3.9 或更新版本。

如果你的组织已部署 AISIX,请向负责管理的团队获取网关 URL、模型别名和调用方 API Key。否则,请按照开源 AISIX 网关快速入门或 AISIX Cloud 快速入门操作;如需使用 Hybrid Cloud,请联系 API7。

如需为任一产品配置由 Anthropic 支持的模型别名,请按照 Anthropic 指南操作。AISIX Cloud 与开源 AISIX 网关的 SDK 客户端配置相同。

请求流程​

保留 Anthropic SDK 客户端,但将请求发送到网关,而不是直接调用上游模型服务提供方:


应用发送调用方 API Key 和 AISIX 模型别名。AISIX 对调用方进行授权、解析别名,并在调用上游模型时提供已保存的模型服务提供方凭证。

配置 SDK​

设置调用方 API Key、模型别名和网关 base URL:

# AISIX_BASE_URL 是网关源地址,不含末尾斜杠或 /v1
# 本地快速入门使用 http://127.0.0.1:3000
export AISIX_BASE_URL="YOUR_AISIX_GATEWAY_URL"
export AISIX_API_KEY="YOUR_CALLER_API_KEY"
export AISIX_MODEL="claude-sonnet-prod"

Anthropic SDK 会将 /v1/messages 追加到 base URL。不要在 AISIX_BASE_URL 中包含 /v1。

安装 Anthropic SDK​

创建并激活 Python 虚拟环境:

python3 -m venv .venv
. .venv/bin/activate

安装 Anthropic SDK:

python -m pip install anthropic

创建客户端示例​

创建以下客户端:

anthropic-sdk-example.py
import os

from anthropic import Anthropic

client = Anthropic(
api_key=os.environ["AISIX_API_KEY"],
base_url=os.environ["AISIX_BASE_URL"],
)

message = client.messages.create(
model=os.environ["AISIX_MODEL"],
max_tokens=128,
messages=[{"role": "user", "content": "Say hello from AISIX."}],
)

print(message.content[0].text)

运行示例:

python anthropic-sdk-example.py

你应该会看到一段简短的助手回复。具体文本取决于上游模型。

SDK 使用 AISIX 模型别名发送 POST /v1/messages 请求。AISIX 对调用方 API Key 进行身份认证、检查模型允许列表、解析别名,并返回 Anthropic 风格的 message 响应。

兼容性边界​

POST /v1/messages 既可以解析由 Anthropic 支持的模型别名,也可以解析非 Anthropic 支持的模型别名。由 Anthropic 支持的别名最能直接保留 Anthropic 特有的请求和响应行为。

当你需要稳定的 Anthropic 风格客户端入口时,非 Anthropic 转换很有用,但它并不与原生 Anthropic 行为完全等价。如果应用依赖工具结果往返、思考块、图片块或其它 Anthropic 特有内容块,建议优先使用由 Anthropic 支持的别名,并验证完整流程。

完整端点行为请参阅 Anthropic 风格 Messages API。

如果 SDK 请求失败​

先使用相同的调用方 API Key 和模型别名直接请求 /v1/messages。如果直接请求成功,请确认 AISIX_BASE_URL 指向网关根路径,并且不以 /v1 结尾。

如果 AISIX 返回 404,说明请求的模型别名未配置。如果 AISIX 返回 403,说明调用方 API Key 存在,但没有权限使用该别名。如果上游身份认证或模型发生错误,请验证模型服务提供方配置,不要替换调用方 API Key。

清理​

删除本页创建的 Python 环境:

deactivate
rm -rf .venv

本示例使用的网关资源在本页之外创建。使用 AISIX Cloud 时,请在控制台中删除调用方 API Key、模型别名和模型服务提供方密钥。使用开源 AISIX 网关时,请从 resources.yaml 中移除相应条目并重新加载。

下一步​

你现在已经通过 Anthropic SDK 客户端调用了 AISIX。接下来可阅读 Anthropic 风格 Messages API了解端点行为,阅读流式响应了解流式响应,或阅读 Anthropic 配置上游。