View a markdown version of this page

使用 Anthropic Messages API 的推論 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Anthropic Messages API 的推論

Anthropic Messages API 使用 Anthropic 請求和回應格式,提供 Claude 模型的原生存取權。您可以在 bedrock-runtimebedrock-mantle端點上使用 Messages API。對於新應用程式,我們建議使用 bedrock-runtime端點。

端點 基本 URL 使用案例
bedrock-runtime https://bedrock-runtime.{region}.amazonaws.com/anthropic 建議用於新應用程式。使用 AWS SDK 整合、IAM 身分驗證和調用記錄。
bedrock-mantle https://bedrock-mantle.{region}.api.aws/anthropic/v1/messages 支援 Amazon Bedrock API 金鑰身分驗證和 Workspaces (與 Anthropic 相容)

支援的區域

訊息 API 可在可使用 Claude 模型的所有區域中的bedrock-runtime端點上使用。如需詳細資訊,請參閱 依模型的區域可用性。在bedrock-mantle端點上,它可用於支援 的所有區域 bedrock-mantle(請參閱 支援的區域和端點)。

先決條件

使用 Messages API 之前,請確定您有下列項目:

  • 模型存取 – 在 Amazon Bedrock 主控台中請求存取 Claude 模型。請參閱 請求存取模型

  • 身分驗證 – 取決於端點:

    • bedrock-runtime – 透過 AWS SDK (boto3 等)、Amazon Bedrock API 金鑰 (請參閱 API 金鑰) 或從 aws-bedrock-token-generator 程式庫的登入資料產生的短期 Bedrock 承載字符使用 AWS SigV4 AWS 登入資料。

    • bedrock-mantle – 使用 Amazon Bedrock API 金鑰 (請參閱API 金鑰) 或 AWS SigV4 登入資料。

  • 人類版本標頭 – 所有請求都需要 API 版本:

    • bedrock-runtime:呼叫 時,在請求內文"anthropic_version": "bedrock-2023-05-31"中設定 InvokeModel。軟體Anthropic開發套件會在使用 時自動新增所需的標頭base_url=https://bedrock-runtime.{region}.amazonaws.com/anthropic

    • bedrock-mantle:設定為 HTTP anthropic-version: 2023-06-01 標頭。

基本請求

若要將基本訊息傳送至 Claude 模型,請選擇您偏好方法的標籤,然後遵循下列步驟:

bedrock-runtime (Python, Anthropic SDK)

針對bedrock-runtime端點的/anthropic路由使用 Anthropic SDK,搭配 aws-bedrock-token-generator 產生的短期 Bedrock 承載字符:

from anthropic import Anthropic from aws_bedrock_token_generator import provide_token token = provide_token(region="us-east-1") client = Anthropic( base_url="https://bedrock-runtime.us-east-1.amazonaws.com/anthropic", api_key=token, ) response = client.messages.create( model="global.anthropic.claude-sonnet-5", max_tokens=1024, messages=[ {"role": "user", "content": "Explain quantum computing in one sentence."} ] ) print(response.content[0].text)
bedrock-runtime (Python, boto3)
import boto3 import json client = boto3.client("bedrock-runtime", region_name="us-east-1") response = client.invoke_model( modelId="anthropic.claude-sonnet-5", 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)

使用 AWS CLI 叫用模型:

aws bedrock-runtime invoke-model \ --model-id anthropic.claude-sonnet-5 \ --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-5/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 SDKs 或 CLI。

bedrock-runtime (curl, API key)

您也可以使用 Anthropic 原生/anthropic/v1/messages路由bedrock-runtime搭配 Amazon Bedrock API 金鑰來呼叫 ,就像 bedrock-mantle

curl -X POST https://bedrock-runtime.us-east-1.amazonaws.com/anthropic/v1/messages \ -H "x-api-key: $AWS_BEARER_TOKEN_BEDROCK" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "us.anthropic.claude-sonnet-5", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Explain quantum computing in one sentence."} ] }'
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-5", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Explain quantum computing in one sentence."} ] }'

串流回應

若要在產生回應權杖時逐步接收回應權杖,請選擇您偏好方法的標籤,然後遵循以下步驟:

bedrock-runtime (Python, Anthropic SDK)
from anthropic import Anthropic from aws_bedrock_token_generator import provide_token token = provide_token(region="us-east-1") client = Anthropic( base_url="https://bedrock-runtime.us-east-1.amazonaws.com/anthropic", api_key=token, ) with client.messages.stream( model="global.anthropic.claude-sonnet-5", max_tokens=1024, messages=[ {"role": "user", "content": "Write a short poem about cloud computing."} ], ) as stream: for text in stream.text_stream: print(text, end="", flush=True)
bedrock-runtime (Python, boto3)
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-5", 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="")
bedrock-runtime (curl, API key)
curl -X POST https://bedrock-runtime.us-east-1.amazonaws.com/anthropic/v1/messages \ -H "x-api-key: $AWS_BEARER_TOKEN_BEDROCK" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "us.anthropic.claude-sonnet-5", "max_tokens": 1024, "stream": true, "messages": [ {"role": "user", "content": "Write a short poem about cloud computing."} ] }'
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-5", "max_tokens": 1024, "stream": true, "messages": [ {"role": "user", "content": "Write a short poem about cloud computing."} ] }'

支援的功能

除了上面的擴展思維適應性思維結構化輸出壓縮拒絕請求的備用額度 (Beta 版)中融合系統訊息區段之外,訊息 API 還支援 Claude 模型的下列功能:

  • 系統提示 – 使用 system 參數設定模型行為。

  • 多轉對話 – 傳遞交替userassistant訊息。

  • 工具使用 – 定義模型可以呼叫的工具。請參閱 使用工具完成 Amazon Bedrock 模型回應

  • 視覺 – 將content陣列中的影像與文字一起傳送。

  • 提示快取 – 快取常用的內容,以減少延遲和成本。

如需完整的 Messages API 請求和回應欄位參考,請參閱 請求與回應

計數字符

若要在傳送請求以進行推論之前計算請求將使用的輸入字符數量,請使用bedrock-mantle端點上的 Anthropic count_tokens 路徑。這是 Claude 模型唯一支援的字符計數路徑,不適用於bedrock-runtime具有區域特定端點的 ,包括僅使用跨區域推論 (CRIS) 啟動的 Claude 模型。如需詳細資訊和範例,請參閱使用 bedrock-mantle 端點計算權杖