Anthropic SDK 快速开始
本页通过 Anthropic SDK 示例说明如何把客户端请求发送到 AISIX,并通过网关路由到配置好的模型别名。
本指南会把 Anthropic 风格的 SDK 客户端指向 AISIX AI 网关。这种方式适合已经使用 Anthropic Messages 格式、并希望尽量少改客户端代码的应用。
本配置会向本地网关添加一个由 Anthropic 支持的模型别名,为该别名创建调用方 API Key,并通过 Anthropic Python SDK 调用 POST /v1/messages。
相比 OpenAI SDK 快速开始,本指南需要更多网关配置,因为主快速开始已经创建了 OpenAI 服务提供方密钥、模型别名和调用方 API Key。Anthropic 使用相同的网关资源模式,但客户端 API 形态不同,因此本快速开始会先创建 Anthropic 对应资源,再运行 SDK 示例。
准备工作
- 完成自托管快速开始。
- 准备一个 Anthropic API Key。
- 安装 Python 3.8 或更新版本。
- 安装
curl和jq,用于创建并验证示例别名。
请求流程
主快速开始会创建名为 gpt-4o-mini、由 OpenAI 支持的别名。本快速开始会新增 claude-demo,这是一个由 Anthropic 支持的别名,使 Anthropic SDK 客户端可以通过 /v1/messages 调用 AISIX。
保留 Anthropic SDK 客户端,但让请求经过网关,而不是直接调用 Anthropic:
应用会发送调用方 API Key YOUR_CALLER_API_KEY、AISIX 模型别名 claude-demo,并使用网关 base URL http://127.0.0.1:3000。
AISIX 会将 claude-demo 解析到上游 Anthropic 模型,并在上游侧注入已保存的服务提供方凭证。
配置网关
创建 Anthropic 服务提供方密钥,添加 claude-demo 模型别名,并创建可使用该别名的调用方 API Key。
设置环境变量
导出 Admin 命令要使用的变量:
export AISIX_ADMIN_KEY="YOUR_ADMIN_KEY"
export AISIX_API_KEY="YOUR_CALLER_API_KEY"
export ANTHROPIC_API_KEY="YOUR_ANTHROPIC_API_KEY" # 替换为你的 Anthropic API Key
export ANTHROPIC_MODEL="claude-sonnet-4-5" # AISIX 发送给 Anthropic 的上游模型 ID
export AISIX_ANTHROPIC_ALIAS="claude-demo" # 应用发送给 AISIX 的面向客户端模型别名
创建 Anthropic 服务提供方密钥
创建一个保存上游 Anthropic 凭证的服务提供方密钥:
ANTHROPIC_PROVIDER_KEY_RESPONSE=$(curl -sS -X POST "http://127.0.0.1:3001/admin/v1/provider_keys" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "anthropic-upstream",
"provider": "anthropic",
"adapter": "anthropic",
"secret": "'"${ANTHROPIC_API_KEY}"'",
"api_base": "https://api.anthropic.com"
}')
printf '%s\n' "${ANTHROPIC_PROVIDER_KEY_RESPONSE}" | jq .
ANTHROPIC_PROVIDER_KEY_ID=$(jq -r '.id // empty' <<< "${ANTHROPIC_PROVIDER_KEY_RESPONSE}")
AISIX 会在 api_base 后追加 /v1/messages,因此这里使用不带路径的主机 https://api.anthropic.com。
创建由 Anthropic 支持的模型别名
创建面向客户端的模型别名:
ANTHROPIC_MODEL_RESPONSE=$(curl -sS -X POST "http://127.0.0.1:3001/admin/v1/models" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "'"${AISIX_ANTHROPIC_ALIAS}"'",
"provider": "anthropic",
"model_name": "'"${ANTHROPIC_MODEL}"'",
"provider_key_id": "'"${ANTHROPIC_PROVIDER_KEY_ID}"'"
}')
printf '%s\n' "${ANTHROPIC_MODEL_RESPONSE}" | jq .
ANTHROPIC_MODEL_ID=$(jq -r '.id // empty' <<< "${ANTHROPIC_MODEL_RESPONSE}")
客户端向 AISIX 发送 claude-demo。上游服务提供方会收到 claude-sonnet-4-5。
创建 AISIX API Key
创建可访问 claude-demo 的调用方 API Key:
AISIX_API_KEY_HASH=$(printf '%s' "${AISIX_API_KEY}" | shasum -a 256 | awk '{print $1}')
ANTHROPIC_APIKEY_RESPONSE=$(curl -sS -X POST "http://127.0.0.1:3001/admin/v1/apikeys" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
-d '{
"key_hash": "'"${AISIX_API_KEY_HASH}"'",
"allowed_models": ["'"${AISIX_ANTHROPIC_ALIAS}"'"]
}')
printf '%s\n' "${ANTHROPIC_APIKEY_RESPONSE}" | jq .
ANTHROPIC_APIKEY_ID=$(jq -r '.id // empty' <<< "${ANTHROPIC_APIKEY_RESPONSE}")
验证别名可见
列出该调用方 API Key 可见的模型:
curl -sS "http://127.0.0.1:3000/v1/models" \
-H "Authorization: Bearer ${AISIX_API_KEY}" \
| jq -r '.data[].id'
输出中应该包含 claude-demo。
运行 SDK 示例
安装 Anthropic SDK,将其指向 AISIX,并通过网关发送一次 Anthropic 风格请求。
安装 Anthropic SDK
创建并激活一个小型 Python 环境:
python3 -m venv .venv
. .venv/bin/activate
在虚拟环境中安装 Anthropic SDK:
python -m pip install anthropic