

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

# 使用响应 API 进行推理
<a name="bedrock-mantle"></a>

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-keys.md)。

主要优势包括：
+ **异步推理** — 通过响应 API 支持长时间运行的推理工作负载
+ **状态对话管理** — 自动重建上下文，无需在每个请求中手动传递对话历史记录
+ **简化工具使用** — 简化了代理工作流程的集成
+ **灵活的响应模式** — Support 支持直播和非直播响应
+ **易于迁移** — 与现有 OpenAI SDK 代码库兼容

`bedrock-mantle`终端节点的推理流量由与终端节点分开的一组配额`bedrock-runtime`控制。有关输入和输出令牌配额以及如何请求增加的详细信息，请参阅[基岩地幔端点的配额](quotas-mantle.md)。

## 支持的区域和终端节点
<a name="bedrock-mantle-supported"></a>

终`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 | 

## 先决条件
<a name="bedrock-mantle-prereq"></a>

在使用 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
<a name="bedrock-mantle-models"></a>

模型 API 允许您在由 Mantle 提供支持的 Amazon Bedrock 中发现可用的模型。使用此 API 检索可用于响应 API 的模型列表。有关完整的 API 详细信息，请参阅[OpenAI模型文档](https://developers.openai.com/api/reference/resources/models)。

### 列出可用型号
<a name="bedrock-mantle-models-list"></a>

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

------
#### [ 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
<a name="bedrock-mantle-responses"></a>

Responses API 提供有状态的对话管理，支持直播、后台处理和多回合互动。如需了解完整的 API 详情，请参阅[OpenAI响应文档](https://developers.openai.com/api/reference/resources/responses)。

**注意**  
并非所有模型都支持响应 API。要查看哪些模型支持响应 API，请参阅[API 兼容性](models-api-compatibility.md)。

### 响应 API 如何存储对话状态
<a name="bedrock-mantle-responses-state"></a>

Responses API 可以使用存储状态来启用多回合对话，并允许您通过`previous_response_id`参数引用之前的回合。默认情况下，存储处于启用状态，但可以通过`store`参数根据请求禁用。存储的响应按项目划分范围。来自一个项目的响应不能用作先前的响应，也不能在第二个项目中读取。有关项目的更多信息，请参阅[项目 (OpenAI-compatible)](projects.md)。
+ 如果`store`为`true`（默认），Amazon Bedrock 会在请求的源区域将响应（包括输入和输出）保留 30 天。在此窗口中，您可以通过传递`previous_response_id`和检索响应来链接后续请求`GET /v1/responses/{id}`。30 天后，回复将自动删除，且无法再检索。
+ 如果`store`是`false`，Amazon Bedrock 将不会保留请求或响应中的任何数据。该`previous_response_id`参数不能用于继续对话。

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

### 基本请求
<a name="bedrock-mantle-responses-create"></a>

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

------
#### [ 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?"}
    ]
}'
```

------

### 直播回复
<a name="bedrock-mantle-responses-streaming"></a>

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

------
#### [ 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/responses`，`stream`设置为`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
}'
```

------