

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

# 使用回應 API 進行推論
<a name="bedrock-mantle"></a>

Amazon Bedrock 透過`bedrock-mantle`端點提供OpenAI回應 API，採用 Mantle，這是適用於大規模機器學習模型服務的分散式推論引擎。此端點可讓您使用熟悉的 OpenAI SDK 和工具搭配 Amazon Bedrock 模型，讓您以最少的程式碼變更遷移現有的應用程式，只需更新您的基本 URL 和 API 金鑰即可。 SDKs 

**重要**  
搭配 Amazon Bedrock 使用 OpenAI SDK 時，您必須將其指向 Amazon Bedrock 端點，而不是OpenAI端點。設定下列環境變數：  

```
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直接連線至 ，而不是 Amazon Bedrock。若要建立 Amazon Bedrock API 金鑰，請參閱 [API 金鑰](api-keys.md)。

主要優點包括：
+ **非同步推論** – 透過 Responses API 支援長時間執行的推論工作負載
+ **具狀態對話管理** – 自動重建內容，無需在每個請求中手動傳遞對話歷史記錄
+ **簡化工具使用** – 簡化客服人員工作流程的整合
+ **彈性回應模式** – 支援串流和非串流回應
+ **輕鬆遷移** – 與現有的 OpenAI SDK 程式碼庫相容

## 支援的區域和端點
<a name="bedrock-mantle-supported"></a>

`bedrock-mantle` 端點可在下列 AWS 區域使用：


| 區域名稱 | 區域 | Endpoint | 
| --- | --- | --- | 
| 美國東部 (俄亥俄) | 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 | 
| Europe (Stockholm) | 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之前，請確定您有下列項目：
+ **身分驗證** – 您可以使用下列方法進行身分驗證：
  + Amazon Bedrock API 金鑰 ( OpenAI SDK 需要）
  + AWS 登入資料 (HTTP 請求支援）
+ **OpenAI SDK** （選用） – 如果使用以 SDK 為基礎的請求，請安裝 OpenAI Python SDK。
+ **環境變數** – 設定下列環境變數：
  + `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 可擷取可與 Responses 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。若要查看哪些模型支援 Responses API，請參閱 [API 相容性](models-api-compatibility.md)。

### Responses API 如何存放對話狀態
<a name="bedrock-mantle-responses-state"></a>

Responses API 可以使用預存狀態來啟用多迴轉對話，並讓您參考先前透過 `previous_response_id` 參數的迴轉。儲存預設為啟用，但可以透過 `store` 參數依請求停用。儲存的回應範圍依專案而定。一個專案的回應無法用作先前的回應或在第二個專案中讀取。如需專案的詳細資訊，請參閱 [專案 (OpenAI 相容）](projects.md)。
+ 當 `store`為 `true`（預設值） 時，Amazon Bedrock 會在請求的來源區域中保留回應 30 天，包括輸入和輸出。在此時段中，您可以透過使用 傳遞`previous_response_id`和擷取回應來鏈結追蹤請求`GET /v1/responses/{id}`。30 天後，回應會自動刪除，且無法再擷取。
+ 當 `store`為 時`false`，Amazon Bedrock 不會保留來自請求或回應的任何資料。`previous_response_id` 參數無法用於繼續對話。

預設值是`true`符合 OpenAI Responses API 規格。不希望 Amazon Bedrock 保留對話資料的客戶應該在每個請求`false`上明確`store`地將 設定為 。存放的資料會保留在請求的來源區域中、靜態加密，並限定為呼叫 AWS 帳戶的專案資源範圍。資料僅存放於為您的請求提供服務，不會用於或保留任何其他用途。

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

------