

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

# 使用生成响应 OpenAI APIs
<a name="bedrock-mantle"></a>

Amazon Bedrock 为模型推断提供了OpenAI兼容的 API 端点，该端点由 Mantle 提供支持，Mantle 是一款用于大规模机器学习模型服务的分布式推理引擎。这些终端节点允许您在 Amazon Bedrock 模型中使用熟悉的工具，使您只需更新基本 URL OpenAI SDKs 和 API 密钥即可迁移现有应用程序，只需更新您的基本 URL 和 API 密钥即可。

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

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

Amazon Bedrock 在以下 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-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 APIs，请确保您具备以下条件：
+ **身份验证**-您可以使用以下方式进行身份验证：
  + 亚马逊 Bedrock API 密钥（OpenAI软件开发工具包所必需的）
  + AWS 凭证（支持 HTTP 请求）
+ **OpenAI软件开发工具包**（可选）— 如果使用基于 SDK 的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 的模型列表。有关完整的 API 详细信息，请参阅[OpenAI模型文档](https://platform.openai.com/docs/api-reference/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://platform.openai.com/docs/api-reference/responses)。

### 基本请求
<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
}'
```

------

## 聊天完成 API
<a name="bedrock-mantle-chat-completions"></a>

聊天完成 API 会生成对话回复。有关 API 的完整详细信息，请参阅[OpenAI聊天完成文档。](https://platform.openai.com/docs/api-reference/chat/create)

### 创建聊天补全
<a name="bedrock-mantle-chat-completions-create"></a>

要创建聊天完成功能，请选择首选方法的选项卡，然后按照以下步骤操作：

------
#### [ OpenAI SDK (Python) ]

使用环境变量配置OpenAI客户端：

```
# Create a chat completion using the OpenAI SDK
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables

from openai import OpenAI

client = OpenAI()

completion = client.chat.completions.create(
    model="openai.gpt-oss-120b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)

print(completion.choices[0].message)
```

------
#### [ HTTP request ]

向以下地址发出 POST 请求`/v1/chat/completions`：

```
# Create a chat completion
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables

curl -X POST $OPENAI_BASE_URL/chat/completions \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer $OPENAI_API_KEY" \
   -d '{
    "model": "openai.gpt-oss-120b",
    "messages": [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
}'
```

------

### 启用直播
<a name="bedrock-mantle-chat-completions-streaming"></a>

要逐步接收回复，请选择首选方法的选项卡，然后按照以下步骤操作：

------
#### [ OpenAI SDK (Python) ]

```
# Stream chat completion responses incrementally using the OpenAI SDK
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables

from openai import OpenAI

client = OpenAI()

stream = client.chat.completions.create(
    model="openai.gpt-oss-120b",
    messages=[{"role": "user", "content": "Tell me a story"}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="")
```

------
#### [ HTTP request ]

向发出 POST 请求`/v1/chat/completions`，` stream`设置为`true`：

```
# Stream chat completion responses incrementally
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables

curl -X POST $OPENAI_BASE_URL/chat/completions \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer $OPENAI_API_KEY" \
   -d '{
    "model": "openai.gpt-oss-120b",
    "messages": [
        {"role": "user", "content": "Tell me a story"}
    ],
    "stream": true
}'
```

------