Anthropic
将 AISIX AI 网关连接到 Anthropic,即可让应用通过网关的 OpenAI 兼容 API 或原生 Anthropic Messages API 调用 Claude 模型。AISIX 在网关 侧保存 Anthropic 凭证,通过调用方 API Key 和允许列表控制模型访问,并统一执行限流和用量核算。
Anthropic 是原生上游:它使用 anthropic 适配器和自己的 x-api-key 认证。使用该配置可直接在 api.anthropic.com 上调用 Claude。若要通过 AWS 访问 Claude,请改用 AWS Bedrock 上游。
准备工作
以下示例使用自托管 AISIX 网关。配置上游前,请准备以下内容:
- 一个可访问 Admin API 和代理 API 的运行中 AISIX 网关。端口请参考快速开始中的监听地址。
- 网关
config.yaml中的 Admin Key。 - 来自 Anthropic Console 的 Anthropic API Key。
支持的能力
Anthropic 是 Messages API 的原生后端,同时也通过转换支持 chat completions。
| 端点 | 支持情况 | 流式 | 说明 |
|---|---|---|---|
/v1/messages | 支持 | 支持 | 原生 Anthropic Messages API。 |
/v1/messages/count_tokens | 支持 | — | Anthropic 后端的 token 计数。 |
/v1/chat/completions | 支持 | 支持 | OpenAI 形态请求会转换为 Messages。非文本内容块在转换中会被丢弃。 |
/v1/embeddings | 不支持 | — | Embeddings 需要 openai 适配器。 |
/v1/images/generations | 不支持 | — | 拒绝:图片生成需要 provider: "openai"。 |
/v1/rerank | 不支持 | — | Anthropic 不在 rerank 允许列表中(openai、cohere、jina)。 |
逐端点规则请参见服务提供方兼容性。
配置 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" \
-d '{
"display_name": "anthropic-prod",
"provider": "anthropic",
"adapter": "anthropic",
"secret": "'"${ANTHROPIC_API_KEY}"'"
}'
❶ provider 为 anthropic。
❷ adapter 为 anthropic。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" \
-d '{
"display_name": "claude-sonnet-prod",
"provider": "anthropic",
"model_name": "claude-sonnet-5",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}'
❶ display_name 是调用方在 model 中发送的别名。
❷ model_name 是 Claude 模型 ID,例如 claude-sonnet-5、claude-opus-4-8 或 claude-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}')
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": "'"${CALLER_KEY_HASH}"'",
"allowed_models": ["claude-sonnet-prod"]
}'
❶ allowed_models 必须与你创建的模型别名匹配。
验证服务提供方连接
通过 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 响应。同一别名在 /v1/chat/completions 上也可用于 OpenAI 形态的客户端。如果 AISIX 返回上游认证错误,请检查服务提供方密钥的 secret。
行为与限制
调用方使用 Authorization: Bearer 请求头中的调用方 API Key 向 AISIX 认证。AISIX 会向上游提供 Anthropic 的 x-api-key 和 anthropic-version 请求头;客户端无需发送它们。
在 /v1/chat/completions 上,OpenAI 形态请求会被转换为 Messages API,图片等非文本内容块会在转换过程中被丢弃。若需图片或文档输入,请直接调用 /v1/messages。参见 Anthropic Messages。
从 4.6 代开始的 Claude 模型 ID 是固定快照,而非常青指针。当前 ID 请查看 Anthropic 模型参考。
下一步
- Anthropic SDK 快速开始:从 Anthropic SDK 在
/v1/messages调用该别名。 - Anthropic Messages:原生 Messages 请求和响应形态。
- 服务提供方兼容性:逐端点支持规则。