View a markdown version of this page

使用响应 API 进行推理 - Amazon Bedrock

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

使用响应 API 进行推理

Amazon Bedrock 通过终端节点提供OpenAI响应 API,该bedrock-mantle终端节点由 Mantle 提供支持,Mantle 是一款用于大规模机器学习模型服务的分布式推理引擎。此终端节点允许您在 Amazon Bedrock 模型中使用熟悉的 OpenAI SDK 和工具,使您只需更新基本 URL 和 API 密钥即可迁移现有应用程序,只需更新您的基本 URL 和 API 密钥即可。

重要

在 Amazon Bedrock 上使用OpenAI软件开发工具包时,必须将其指向亚马逊 Bedrock 终端节点,而不是终端节点。OpenAI设置以下环境变量:

OPENAI_BASE_URL="https://bedrock-mantle.<your-region>.api.aws/v1" OPENAI_API_KEY="<your Bedrock API key>"

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

主要优势包括:

  • 异步推理 — 通过响应 API 支持长时间运行的推理工作负载

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

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

  • 灵活的响应模式 — Support 支持直播和非直播响应

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

支持的区域和终端节点

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-north-1.api.aws
南美洲(圣保罗) sa-east-1 bedrock-mantle.sa-east-1.api.aws

先决条件

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

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

    • 亚马逊 Bedrock API 密钥(OpenAI软件开发工具包所必需的)

    • AWS 凭证(支持 HTTP 请求)

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

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

    • OPENAI_API_KEY— 设置为你的 Amazon Bedrock API 密钥

    • OPENAI_BASE_URL— 设置为您所在地区的 Amazon Bedrock 终端节点(例如, https://bedrock-mantle.us-east-1.api.aws/v1

模型 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}。30 天后,回复将自动删除,且无法再检索。

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

默认值true与OpenAI响应 API 规范相匹配。不希望 Amazon Bedrock 保留对话数据的客户应false在每次请求store时明确设置为。存储的数据保存在请求的源区域,静态加密,并限定在调用 AWS 账户的 Project 资源范围内。存储数据仅用于满足您的请求,不会用于或保留用于任何其他目的。

基本请求

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

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 }'