

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

# bedrock-mantle 端點上的回應 API
<a name="bedrock-mantle"></a>

Amazon Bedrock 會在 `bedrock-runtime`和 `bedrock-mantle`端點上提供OpenAI回應 API。API 可讓您將熟悉的 OpenAI SDK 和工具與 Amazon Bedrock 模型搭配使用，因此您可以使用最少的程式碼變更來遷移現有的應用程式，只需更新您的基本 URL 和 API 金鑰即可。 SDKs 對於新應用程式，我們建議使用 `bedrock-runtime`端點。

這兩個端點沒有相同的功能支援。上的請求`bedrock-runtime`一律為同步，無法使用伺服器端工具，且僅支援預設專案。如需完整比較，請參閱 [Amazon Bedrock 支援的端點](endpoints.md)，如需每個差異的詳細資訊，請參閱 [在 bedrock-runtime 端點上使用 Responses API](#bedrock-mantle-responses-runtime)。

**重要**  
搭配 Amazon Bedrock 使用 OpenAI SDK 時，您必須將其指向 Amazon Bedrock 端點，而不是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直接連線至 ，而不是 Amazon Bedrock。若要建立 Amazon Bedrock API 金鑰，請參閱 [API 金鑰](api-keys.md)。

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

每個端點都由自己的一組配額管理。對於 上的回應流量`bedrock-runtime`，模型的tokens-per-minute數和tokens-per-day數配額適用，並且它們與該端點上的其他推論 APIs 共用 — 請參閱 [bedrock-runtime 端點的配額](quotas-runtime.md)。若為 `bedrock-mantle`，請參閱[bedrock-mantle 端點的配額](quotas-mantle.md)。

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

在`bedrock-runtime`端點上，回應 API 可用於該端點可用的每個 AWS 區域 ，包括 AWS GovCloud (US) 區域。如需清單，請參閱[依端點的區域可用性](endpoints-region-availability.md)。哪些模型支援每個端點上的 API，會列在 中[依模型的端點可用性](models-endpoint-availability.md)。

`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 | 
| AWS GovCloud (US-West) | us-gov-west-1 | bedrock-mantle.us-gov-west-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-runtime.us-east-1.amazonaws.com/openai/v1`或 `https://bedrock-mantle.us-east-1.api.aws/v1`)
+ **許可** – 您需要的動作取決於端點。在 上`bedrock-mantle`，推論會授權 `bedrock-mantle:CreateInference`。在 上`bedrock-runtime`，它會`bedrock:InvokeModel`同時授權推論目標和您帳戶的預設專案，而管理儲存的回應則會授權該專案`bedrock:DeleteInvoke`上的 `bedrock:GetInvoke``bedrock:CancelInvoke`、 和 。如需政策範例，請參閱[執行模型推論的必要條件](inference-prereq.md)。

## 模型 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)。

**注意**  
並非所有模型都支援 Responses API。若要查看哪些模型支援回應 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 天，包括輸入和輸出。在此時段中，您可以透過在 `GET /v1/responses/{id}`、 或 `GET /openai/v1/responses/{id}`上使用 傳遞`previous_response_id`和擷取回應`bedrock-mantle`，來鏈結追蹤請求`bedrock-runtime`。30 天後，回應會自動刪除，且無法再擷取。
+ 當 `store`為 時`false`，Amazon Bedrock 不會保留來自請求或回應的任何資料。`previous_response_id` 參數無法用於繼續對話。

預設值是`true`符合 OpenAI Responses API 規格。不希望 Amazon Bedrock 保留對話資料的客戶應該在每個請求`false`上明確`store`地將 設定為 ，或將帳戶的資料保留模式設定為 `none`，這會拒絕明確的`store=true`直截了當。如需詳細資訊，請參閱[資料保留](data-retention.md)。

儲存的資料會靜態加密，並限定在呼叫 AWS 帳戶的專案資源範圍內。資料僅存放於為您的請求提供服務，不會用於或保留任何其他用途。在 上`bedrock-mantle`，它會保留 AWS 區域 在傳送請求的 中。在 上`bedrock-runtime`，可以在另一個 中處理使用[跨區域推論](cross-region-inference.md)的請求 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
}'
```

------

### 在 bedrock-runtime 端點上使用 Responses API
<a name="bedrock-mantle-responses-runtime"></a>

上的 Responses API `bedrock-runtime`使用與 相同的請求和回應格式`bedrock-mantle`，因此 OpenAI SDK 對任一種都有效。本節所述的基本 URL、模型 IDs、許可和少量行為有哪些變更。

**基本 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}` – 刪除儲存的回應。

**模型 IDs**

將跨區域推論設定檔命名為模型，而非基礎模型 ID。OpenAI GPT 模型使用商業區域中的 `us.`和 `global.` 設定檔，以及 AWS GovCloud (US) 區域中的 `us-gov.`設定檔，例如 `us.openai.gpt-5.6-sol`。區域內推論不適用於此端點上的這些模型。如需每個模型的設定檔 ID，請參閱 中的模型卡[模型一目了然](model-cards.md)，如需路由的運作方式，請參閱 [AWS 區域 使用跨區域推論跨 路由模型推論請求](cross-region-inference.md)。

**許可**

建立回應會像任何推論請求一樣授權推論目標上的兩個資源： `bedrock:InvokeModel`（或 `bedrock:InvokeModelWithResponseStream`)，以及您`bedrock:InvokeModel`帳戶的預設專案。擷取、取消和刪除已儲存的回應`bedrock:DeleteInvoke`，分別授權 `bedrock:CancelInvoke`、 `bedrock:GetInvoke`和 專案上的每個回應。個別回應 IDs 不是 IAM 資源。

兩個條件索引鍵可讓任一資源上的政策限制另一個資源。推論目標授權會攜帶 `bedrock:ProjectArn`，而專案授權會攜帶 `bedrock:ModelArn`，以您的請求名為 的推論設定檔或基礎模型為值，而不是跨區域設定檔路由的目標模型。如需政策範例，請參閱[執行模型推論的必要條件](inference-prereq.md)。

**行為差異**
+ **請求一律是同步的。** `background=true` 會因 400 錯誤而遭到拒絕。`store` 參數不受影響，並保持其預設值為 `true`，因此存放的多轉對話可正常運作。
+ **`model` 需要每個請求**，包括提供 的請求`previous_response_id`。這與 OpenAI Responses API 規格和 不同`bedrock-mantle`，其中可以省略模型，並從先前的回應繼承。模型是請求授權的一部分，因此必須在請求本身中命名。
+ **伺服器端工具使用和預先設定的工具無法使用**，包括 [Web 搜尋](web-search.md)。用戶端工具可在兩個端點上使用。
+ **僅支援預設專案。**`OpenAI-Project` 標頭僅接受作為`default`或作為您自己的預設專案 ARN；任何其他值都會被拒絕。請參閱 [專案 (OpenAI 相容）](projects.md)。
+ **不支援應用程式推論設定檔。**將一個 命名為其推論目標的請求會被拒絕，並顯示 400 錯誤。系統、地理和全域推論設定檔正常運作。
+ **[護欄](guardrails.md)不適用於回應 API。**若要將護欄套用至此端點上的 GPT 模型，請改為呼叫 [Converse API](conversation-inference.md)。
+ **儲存的回應屬於 AWS 區域 提供它的 。**擷取、取消或刪除它，以及繼續與 的對話`previous_response_id`，都由該區域處理。找不到的回應 ID — 因為它從未存在、屬於另一個帳戶或從未存放 — 在每個情況下都會傳回相同的 404 錯誤。

**監控和成本**

因為每個請求都是同步的，所以 CloudWatch 指標和模型調用日誌記錄適用於 Responses API，就像在此端點上的其他推論 APIs 一樣，包括串流請求。用量歸因於推論目標，就像 Converse 和 InvokeModel 一樣，預設專案永遠不會是帳單錨點。請參閱[追蹤 Amazon Bedrock 中的用量和成本](cost-management.md)。