View a markdown version of this page

基岩地幔端点上的响应 API - Amazon Bedrock

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

基岩地幔端点上的响应 API

亚马逊 Bedrock 在bedrock-mantle终端节点bedrock-runtime和终端节点上均提供OpenAI响应 API。该API允许您在Amazon Bedroc OpenAI k模型中使用熟悉的软件开发工具包和工具,因此您只需对代码进行最少的更改即可迁移现有应用程序——只需更新您的基本网址和API密钥即可。对于新应用程序,我们推荐使用bedrock-runtime终端节点。

这两个端点不支持相同的功能。开启的请求始终bedrock-runtime是同步的,服务器端工具不可用,仅支持默认项目。有关完整比较亚马逊 Bedrock 支持的终端节点,请参阅;有关每种差异的详细信息,请参阅在基岩运行时端点上使用响应 API

重要

将OpenAI软件开发工具包与亚马逊基岩一起使用时,必须将其指向亚马逊基岩终端节点,而不是终端节点。OpenAI设置以下环境变量,为所需端点选择基本 URL:

# bedrock-runtime (recommended) OPENAI_BASE_URL="https://bedrock-runtime.<your-region>.amazonaws.com/openai/v1" # bedrock-mantle OPENAI_BASE_URL="https://bedrock-mantle.<your-region>.api.aws/v1" OPENAI_API_KEY="<your Bedrock API key>"

请勿使用您OpenAI的 API 密钥或OpenAI基本 URL (https://api.openai.com/v1)。它们OpenAI直接连接到亚马逊 Bedrock,而不是连接到亚马逊 Bedrock。要创建亚马逊 Bedrock API 密钥,请参阅API 密钥

主要优势包括:

  • 异步推理 — 通过响应 API 支持长时间运行的推理工作负载。bedrock-mantle仅适用于。

  • 状态对话管理 -自动重建上下文,无需在每次请求中手动传递对话历史记录

  • 简化工具使用 — 简化代理工作流程的集成

  • 灵活的响应模式 — 支持流式和非流式响应

  • 易于迁移 — 与现有 OpenAI SDK 代码库兼容

每个端点都受其自己的一组配额管辖。对于开启响应流量bedrock-runtime,将适用模型的每分钟代币和每日代币配额,并将与该端点上的其他推理 API 共享——请参阅。基岩运行时端点的配额对于 bedrock-mantle,请参阅基岩地幔端点的配额

支持的区域和终端节点

bedrock-runtime终端节点上,响应API AWS 区域 可在该终端节点的所有可用区域使用,包括 AWS GovCloud (美国)区域。有关列表,请参阅终端节点的区域可用性。中列出了哪些型号支持每个端点上的 API 各型号的端点可用性

bedrock-mantle终端节点在以下 AWS 区域可用:

区域名称 区域 端点
美国东部(俄亥俄州) us-east-2 bedrock-mantle.us-east-2.api.aws
美国东部(弗吉尼亚州北部) us-east-1 bedrock-mantle.us-east-1.api.aws
美国西部(俄勒冈州) us-west-2 bedrock-mantle.us-west-2.api.aws
亚太地区(雅加达) ap-southeast-3 bedrock-mantle.ap-southeast-3.api.aws
亚太地区(孟买) ap-south-1 bedrock-mantle.ap-south-1.api.aws
亚太地区(悉尼) ap-southeast-2 bedrock-mantle.ap-southeast-2.api.aws
亚太地区(东京) ap-northeast-1 bedrock-mantle.ap-northeast-1.api.aws
欧洲地区(法兰克福) eu-central-1 bedrock-mantle.eu-central-1.api.aws
欧洲地区(爱尔兰) eu-west-1 bedrock-mantle.eu-west-1.api.aws
欧洲地区(伦敦) eu-west-2 bedrock-mantle.eu-west-2.api.aws
欧洲地区(米兰) eu-south-1 bedrock-mantle.eu-south-1.api.aws
欧洲地区(斯德哥尔摩) eu-north-1 bedrock-mantle.eu-north1.api.aws
南美洲(圣保罗) sa-east-1 bedrock-mantle.sa-east-1.api.aws
AWS GovCloud (US-West) us-gov-west-1 bedrock-mantle.us-gov-west-1.api.aws

先决条件

在使用 OpenAI API 之前,请确保您具备以下条件:

  • 身份验证 — 您可以使用以下方式进行身份验证:

    • 亚马逊 Bedrock API 密钥(OpenAISDK 必需)

    • AWS 证书(支持 HTTP 请求)

  • OpenAISDK(可选)-如果使用 SDK-based 请求,请安装 OpenAI Python 软件开发工具包。

  • 环境变量 -设置以下环境变量:

    • OPENAI_API_KEY— 设置您的亚马逊 Bedrock API 密钥

    • OPENAI_BASE_URL— 设置为您所在地区的亚马逊 Bedrock 终端节点(例如,https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1https://bedrock-mantle.us-east-1.api.aws/v1

  • 权限 -您需要的操作取决于终端节点。开启bedrock-mantle,推理即可bedrock-mantle:CreateInference。开启bedrock-runtime,它bedrock:InvokeModel对推理目标和您账户的默认项目进行授权,管理存储的响应授权,以及对该项目bedrock:DeleteInvoke进行授权bedrock:GetInvokebedrock:CancelInvoke有关策略示例,请参阅 运行模型推理的先决条件

模型 API

模型 API 允许你在由 Mantle 提供支持的 Amazon Bedrock 中发现可用的模型。使用此 API 检索可用于响应 API 的模型列表。有关完整的 API 详细信息,请参阅OpenAI模型文档

列出可用型号

要列出可用模型,请选择首选方法的选项卡,然后按照以下步骤操作:

OpenAI SDK (Python)
# List all available models using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() models = client.models.list() for model in models.data: print(model.id)
HTTP request

向以下地址发出 GET 请求/v1/models

# List all available models # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X GET $OPENAI_BASE_URL/models \ -H "Authorization: Bearer $OPENAI_API_KEY"

响应 API

Responses API 提供有状态的对话管理,支持流式传输、后台处理和多回合交互。有关完整的 API 详细信息,请参阅OpenAI响应文档

注意

并非所有模型都支持响应 API。要查看哪些模型支持响应 API,请参阅按型号划分的 API 兼容性

响应 API 如何存储对话状态

Responses API 可以使用存储状态来启用多回合对话,并允许您通过previous_response_id参数引用之前的回合。默认情况下存储处于启用状态,但可以通过store参数为每个请求禁用存储。存储的响应受项目限制。来自一个项目的响应不能用作先前的响应,也不能在第二个项目中读取。有关项目的更多信息,请参阅项目 (OpenAI-compatible)

  • storetrue(默认)时,Amazon Bedrock 将响应(包括输入和输出)保留 30 天。在此窗口中,您可以通过传递previous_response_id和检索响应(开GET /v1/responses/{id}bedrock-mantle)来连锁后续请求bedrock-runtimeGET /openai/v1/responses/{id}30 天后,回复将自动删除,无法再检索。

  • 如果storefalse,Amazon Bedrock 不会保留请求或响应中的任何数据。该previous_response_id参数不能用于继续对话。

默认值是true匹配OpenAI响应 API 规范。不希望 Amazon Bedrock 保留对话数据的客户应false在每个请求中明确设置store为,或者将账户的数据保留模式设置为none,这将完全拒绝明确store=true的请求。有关更多信息,请参阅 数据留存

存储的数据在静态时经过加密,范围仅限于调用 AWS 账户的项目资源。存储数据仅用于满足您的请求,不会出于任何其他目的使用或保留。开启bedrock-mantle,它保留在发送到 AWS 区域 的请求中。开启时bedrock-runtime,使用跨区域推理的请求可以在另一个区域中处理 AWS 区域,响应存储在处理该请求的区域中,因此,使用全球推理配置文件的请求可以在配置路径的任何商业区域存储数据。如果您有数据驻留要求,请使用地理推断配置文件而不是全球推理配置文件。

基本请求

要创建响应,请选择首选方法的选项卡,然后按照以下步骤操作:

OpenAI SDK (Python)
# Create a basic response using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() response = client.responses.create( model="openai.gpt-oss-120b", input=[ {"role": "user", "content": "Hello! How can you help me today?"} ] ) print(response)
HTTP request

向:发出 POST 请求/v1/responses

# Create a basic response # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X POST $OPENAI_BASE_URL/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "openai.gpt-oss-120b", "input": [ {"role": "user", "content": "Hello! How can you help me today?"} ] }'

直播回复

要以增量方式接收响应事件,请选择首选方法的选项卡,然后按照以下步骤操作:

OpenAI SDK (Python)
# Stream response events incrementally using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() stream = client.responses.create( model="openai.gpt-oss-120b", input=[{"role": "user", "content": "Tell me a story"}], stream=True ) for event in stream: print(event)
HTTP request

向发出 POST 请求/v1/responsesstream设置为true

# Stream response events incrementally # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X POST $OPENAI_BASE_URL/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "openai.gpt-oss-120b", "input": [ {"role": "user", "content": "Tell me a story"} ], "stream": true }'

在基岩运行时端点上使用响应 API

开启的响应 API bedrock-runtime 使用与开启相同的请求和响应格式bedrock-mantle,因此 OpenAI SDK 对其中任何一种都适用。更改的是基本 URL、模型 ID、权限以及本节中描述的少量行为。

基本 URL 和路径

将您的基本 URL 设置为https://bedrock-runtime.region.amazonaws.com/openai/v1。该 API 通过以下路径提供:

  • POST /openai/v1/responses— 创建回复。

  • GET /openai/v1/responses/{id}— 检索存储的响应。

  • POST /openai/v1/responses/{id}/cancel— 取消仍在进行的回复。

  • DELETE /openai/v1/responses/{id}— 删除存储的响应。

模特 ID

将跨区域推理配置文件命名为模型,而不是基础模型 ID。OpenAIGPT 模型在商业区域使用us.global.配置us-gov.文件以及 AWS GovCloud (美国)地区的配置文件——例如,us.openai.gpt-5.6-sol。 In-Region 推理不适用于此端点上的这些模型。有关每个型号的配置文件 ID,请参阅中的模型一览型号卡;有关路由的工作原理,请参阅将模型推理请求路由到各处 AWS 区域 使用跨区域推断

权限

创建响应会授权两个资源:bedrock:InvokeModel(或bedrock:InvokeModelWithResponseStream)与任何推理请求一样,在推理目标上,以及bedrock:InvokeModel在您账户的默认项目上。检索、取消和删除存储的响应 bedrock:GetInvokebedrock:CancelInvokebedrock:DeleteInvoke分别对项目进行授权。个人响应 ID 不是 IAM 资源。

两个条件密钥允许任一资源上的策略限制另一种资源。推理目标授权携带bedrock:ProjectArn,项目授权以您的请求命名的bedrock:ModelArn推理配置文件或基础模型为准,而不是跨区域配置文件路由到的目标模型。有关策略示例,请参阅 运行模型推理的先决条件

行为差异

  • 请求始终是同步的。background=true因 400 错误而被拒绝。该store参数不受影响,其默认值保持不变true,因此存储的多回合对话可以正常运行。

  • model每项请求均为必填项,包括提供的请求previous_response_id。这与OpenAI响应 API 规范和源不同bedrock-mantle,后者可以省略模型并继承先前的响应。模型是请求授权对象的一部分,因此必须在请求本身中命名。

  • Server-side 工具使用和预配置的工具不可用,包括网络搜索。 Client-side 工具的使用适用于两个端点。

  • 仅支持默认项目。OpenAI-Project标头仅被接受为default或作为您自己的默认项目 ARN;任何其他值都将被拒绝。请参阅项目 (OpenAI-compatible)

  • 不支持应用程序推理配置文件。将一个命名为推理目标的请求被拒绝,错误为 400。系统、地理和全球推理配置文件正常运行。

  • 护栏不适用于响应 API。要将护栏应用于此端点上的 GPT 模型,请改为调用 Converse API。

  • 存储的响应属于提供 AWS 区域 该响应的人。检索、取消或删除它以及继续与previous_response_id之对话均由该地区处理。找不到的响应 ID(因为它从未存在、属于另一个账户或从未存储过)在任何情况下都会返回相同的 404 错误。

监控和成本

由于每个请求都是同步的,因此 CloudWatch 指标和模型调用日志对响应 API 的工作方式与该端点上的其他推理 API(包括流式请求)的工作方式相同。使用量归因于推理目标,就像Converse一样, InvokeModel 默认项目永远不是计费锚点。请参阅追踪亚马逊 Bedrock 的使用量和成本