

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Anthropic 消息 API 进行推理
<a name="inference-messages-api"></a>

Anthropic Messages API 使用 Anthropic 请求和响应格式提供对 Claude 模型的原生访问权限。您可以在`bedrock-mantle`和`bedrock-runtime`端点上使用 Messages API，这样您就可以灵活地选择适合您的应用程序的身份验证和集成风格。


| **Endpoint** | **基本网址** | **使用案例** | 
| --- | --- | --- | 
| bedrock-mantle | https://bedrock-mantle.{region}.api.aws/anthropic/v1/messages | 推荐用于新应用程序。支持 API 密钥身份验证和[工作空间 () Anthropic-compatible](workspaces.md). | 
| bedrock-runtime | https://bedrock-runtime.{region}.amazonaws.com | 与现有的 AWS SDK 集成和调用日志一起使用。 | 

## 支持的区域：
<a name="inference-messages-api-supported"></a>

消息 API 可在所有支持的区域的`bedrock-mantle`终端节点上使用`bedrock-mantle`（请参阅[支持的区域和终端节点](bedrock-mantle.md#bedrock-mantle-supported)）。在`bedrock-runtime`终端上，它适用于所有可用 Claude 模型的区域。有关详细信息，请参阅[各型号的地区供货情况](models-region-compatibility.md)。

## 先决条件
<a name="inference-messages-api-prereq"></a>

在使用消息 API 之前，请确保您具备以下条件：
+ **模型访问权限** — 在 Amazon Bedrock 控制台中请求访问 Claude 模型。请参阅[请求访问模型](model-access.md)。
+ **身份验证**-取决于端点：
  + `bedrock-mantle`— 使用 Amazon Bedrock API 密钥（参见[API 密钥](api-keys.md)）或 AWS Sigv4 凭证。
  + `bedrock-runtime`— 通过 S AWS DK（boto3 等）使用 S AWS igv4 凭证。
+ **Anthropic 版本标头** — 所有请求都需要 API 版本：
  + `bedrock-mantle`：设置`anthropic-version: 2023-06-01`为 HTTP 标头。
  + `bedrock-runtime`：`"anthropic_version": "bedrock-2023-05-31"`在请求正文中设置。

## 基本请求
<a name="inference-messages-api-basic"></a>

要向 Claude 模型发送基本信息，请选择首选方法的选项卡，然后按照以下步骤操作：

------
#### [ bedrock-mantle (curl) ]

```
curl -X POST https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages \
  -H "x-api-key: $BEDROCK_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic.claude-sonnet-4-6-v1",
    "max_tokens": 1024,
    "messages": [
        {"role": "user", "content": "Explain quantum computing in one sentence."}
    ]
  }'
```

------
#### [ bedrock-runtime (Python) ]

```
import boto3
import json

client = boto3.client("bedrock-runtime", region_name="us-east-1")

response = client.invoke_model(
    modelId="anthropic.claude-sonnet-4-6-v1",
    body=json.dumps({
        "anthropic_version": "bedrock-2023-05-31",
        "max_tokens": 1024,
        "messages": [
            {"role": "user", "content": "Explain quantum computing in one sentence."}
        ]
    })
)

result = json.loads(response["body"].read())
print(result["content"][0]["text"])
```

------
#### [ bedrock-runtime (AWS CLI) ]

使用 C AWS LI 调用模型：

```
aws bedrock-runtime invoke-model \
  --model-id anthropic.claude-sonnet-4-6-v1 \
  --body '{
    "anthropic_version": "bedrock-2023-05-31",
    "max_tokens": 1024,
    "messages": [
        {"role": "user", "content": "Explain quantum computing in one sentence."}
    ]
  }' \
  --cli-binary-format raw-in-base64-out \
  output.json
```

------
#### [ bedrock-runtime (curl) ]

你可以使用 AWS sigv4 签署请求，`bedrock-runtime`直接用 curl 调用。以下示例使用 curl 的内置`--aws-sigv4`标志（在 curl 7.75.0 及更高版本中可用）：

```
curl -X POST \
  "https://bedrock-runtime.us-east-1.amazonaws.com/model/anthropic.claude-sonnet-4-6-v1/invoke" \
  -H "Content-Type: application/json" \
  --aws-sigv4 "aws:amz:us-east-1:bedrock" \
  --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
  -d '{
    "anthropic_version": "bedrock-2023-05-31",
    "max_tokens": 1024,
    "messages": [
        {"role": "user", "content": "Explain quantum computing in one sentence."}
    ]
  }'
```

**注意**  
如果您使用来自 AWS STS 的临时证书（例如，代入的角色），则还要通过向请求中添加`-H "X-Amz-Security-Token: $AWS_SESSION_TOKEN"`来传递会话令牌。对于大多数用例，我们建议使用 AWS SDK 或 CLI，它们可以自动处理请求签名和凭据刷新。

------

## 直播回复
<a name="inference-messages-api-streaming"></a>

要在生成响应令牌时以增量方式接收它们，请选择首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ bedrock-mantle (curl) ]

```
curl -X POST https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages \
  -H "x-api-key: $BEDROCK_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic.claude-sonnet-4-6-v1",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
        {"role": "user", "content": "Write a short poem about cloud computing."}
    ]
  }'
```

------
#### [ bedrock-runtime (Python) ]

```
import boto3
import json

client = boto3.client("bedrock-runtime", region_name="us-east-1")

response = client.invoke_model_with_response_stream(
    modelId="anthropic.claude-sonnet-4-6-v1",
    body=json.dumps({
        "anthropic_version": "bedrock-2023-05-31",
        "max_tokens": 1024,
        "messages": [
            {"role": "user", "content": "Write a short poem about cloud computing."}
        ]
    })
)

for event in response["body"]:
    chunk = json.loads(event["chunk"]["bytes"])
    if chunk["type"] == "content_block_delta":
        print(chunk["delta"]["text"], end="")
```

------

## 支持的功能
<a name="inference-messages-api-features"></a>

除了上面的 “[扩展思维](claude-messages-extended-thinking.md)”、“[自适应思维](claude-messages-adaptive-thinking.md)”、“[结构化输出](claude-messages-structured-outputs.md)[”、“压缩”](claude-messages-compaction.md)、“[拒绝请求的后备积分（测试版）](claude-messages-fallback-credit.md)” 和 “[Mid-conversation 系统消息](claude-messages-mid-conversation-system.md)” 部分外，消息 API 还支持 Claude 模型的以下功能：
+ **系统提示**-使用`system`参数设置模型行为。
+ **Multi-turn 对话** —传递交替`user`和`assistant`消息。
+ **工具使用**-定义模型可以调用的工具。请参阅[使用工具完成 Amazon Bedrock 模型响应](tool-use.md)。
+ **Vision** — 将`content`数组中的图像与文本一起发送。
+ **提示缓存**-缓存常用的上下文以减少延迟和成本。

有关完整的消息 API 请求和响应字段参考，请参阅[请求和响应](model-parameters-anthropic-claude-messages-request-response.md)。

## 计算代币
<a name="inference-messages-api-count-tokens"></a>

要计算请求在发送请求进行推断之前将消耗的输入令牌数量，请使用端点上的 Anthropic `count_tokens` 路径。`bedrock-mantle`这是唯一支持 Region-specific 终端节点的 Claude 模型的代币计数路径，包括仅`bedrock-runtime`使用跨区域推理 (CRIS) 启动的 Claude 模型。有关详细信息和示例，请参阅[使用基岩地幔端点计算代币](count-tokens.md#count-tokens-mantle)。