跳到主要内容

Anthropic

将 AISIX AI 网关连接到 Anthropic,即可让应用通过网关的 OpenAI 兼容 API 或原生 Anthropic Messages API 调用 Claude 模型。AISIX 在网关侧保存 Anthropic 凭证,通过调用方 API Key 和允许列表控制模型访问,并统一执行限流和用量核算。

Anthropic 是原生上游:它使用 anthropic 适配器和自己的 x-api-key 认证。若要通过 AWS 访问 Claude,请改用 AWS Bedrock

前提条件

以下示例使用自托管 AISIX 网关。配置上游前,请准备以下内容:

配置 Anthropic 上游

为 Anthropic 后端路由创建服务提供方密钥、模型别名和调用方 API Key。

创建服务提供方密钥

创建用于保存 Anthropic 凭证的服务提供方密钥:

# 请替换为实际值
export AISIX_ADMIN_KEY="YOUR_ADMIN_KEY"
export ANTHROPIC_API_KEY="YOUR_PROVIDER_API_KEY"

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" \
--data-binary @- <<EOF
{
"display_name": "anthropic-prod",
"provider": "anthropic",
"adapter": "anthropic",
"secret": "${ANTHROPIC_API_KEY}"
}
EOF

provideranthropic

adapteranthropic。AISIX 会将凭证作为 x-api-key 请求头发送,并在出站调用中添加 anthropic-version: 2023-06-01

secret 存储 Anthropic API Key,遵循服务提供方凭证中的凭证处理行为。

Anthropic 可以省略 api_base,默认使用 https://api.anthropic.com。复制返回的服务提供方密钥 ID。

创建模型

4.6 代及更新版本的 Claude 模型 ID 是固定快照,而不是始终指向最新版本的别名。请参阅 Anthropic 模型参考获取当前模型 ID。

创建调用方将在请求中发送的模型别名:

# 请替换为实际值
export PROVIDER_KEY_ID="YOUR_PROVIDER_KEY_ID"

curl -sS -X POST "http://127.0.0.1:3001/admin/v1/models" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
--data-binary @- <<EOF
{
"display_name": "claude-sonnet-prod",
"provider": "anthropic",
"model_name": "claude-sonnet-5",
"provider_key_id": "${PROVIDER_KEY_ID}"
}
EOF

display_name 是调用方在 model 中发送的别名。

model_name 是 Claude 模型 ID,例如 claude-sonnet-5claude-opus-4-8claude-haiku-4-5

provider_key_id 将别名关联到 Anthropic 服务提供方密钥。

创建调用方 API Key

选择应用发送给 AISIX 的调用方 API Key,然后为 Admin 资源计算哈希:

# 请替换为实际值
export AISIX_API_KEY="YOUR_CALLER_API_KEY"

CALLER_KEY_HASH=$(printf '%s' "${AISIX_API_KEY}" | shasum -a 256 | awk '{print $1}')

创建允许访问该模型别名的调用方 API Key 资源:

curl -sS -X POST "http://127.0.0.1:3001/admin/v1/apikeys" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
--data-binary @- <<EOF
{
"key_hash": "${CALLER_KEY_HASH}",
"allowed_models": ["claude-sonnet-prod"]
}
EOF

allowed_models 的值必须与你创建的模型别名匹配。

调用方使用 Authorization: Bearer 请求头中的调用方 API Key 向 AISIX 认证。AISIX 会向上游提供 Anthropic 的 x-api-keyanthropic-version 请求头;客户端无需发送它们。

验证服务提供方连接

通过 AISIX 代理发送原生 Messages 请求:

curl -sS -X POST "http://127.0.0.1:3000/v1/messages" \
-H "Authorization: Bearer ${AISIX_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-prod",
"max_tokens": 64,
"messages": [
{
"role": "user",
"content": "Say hello from Claude."
}
]
}'

网关会返回回显面向调用方别名 claude-sonnet-prod 的 Anthropic Messages 响应。如果请求因上游认证错误而失败,请检查服务提供方密钥的 secret

同一别名也可供 OpenAI 形态的客户端在 /v1/chat/completions 上使用。该转换会丢弃非文本内容块,因此图片或文档输入应直接调用 /v1/messages

下一步

你现在已将 AISIX 连接到 Anthropic,并验证了模型别名。接下来可继续阅读: