使用 OpenAI APIs產生回應 - Amazon Bedrock

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

使用 OpenAI APIs產生回應

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

主要優點包括:

  • 非同步推論 – 透過 Responses API 支援長時間執行的推論工作負載

  • 具狀態對話管理 – 自動重建內容,無需在每個請求中手動傳遞對話歷史記錄

  • 簡化工具使用 – 簡化客服人員工作流程的整合

  • 彈性回應模式 – 支援串流和非串流回應

  • 輕鬆遷移 – 與現有的 OpenAI SDK 程式碼庫相容

支援的區域和端點

Amazon Bedrock 可在下列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-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

先決條件

使用 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

模型 API 可讓您在採用 Mantle 技術的 Amazon Bedrock 中探索可用的模型。使用此 API 擷取可與回應 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回應文件

基本請求

若要建立回應,請選擇您偏好方法的索引標籤,然後遵循下列步驟:

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/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

聊天完成 API 會產生對話回應。如需完整的 API 詳細資訊,請參閱OpenAI聊天完成文件

建立聊天完成

若要建立聊天完成,請選擇您偏好方法的索引標籤,然後遵循下列步驟:

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!"} ] }'

啟用串流

若要逐步接收回應,請選擇您偏好方法的索引標籤,然後遵循下列步驟:

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