使用批次 API 提交一OpenAI批提示 - Amazon Bedrock

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

使用批次 API 提交一OpenAI批提示

您可以使用建立批次 OpenAI API 搭配 Amazon Bedrock 模型來執行批次推論任務。 OpenAI

您可以透過下列方式呼叫OpenAI建立批次 API:

  • 使用 Amazon Bedrock 執行期端點提出 HTTP 請求。

  • 搭配 Amazon Bedrock 執行期端點使用 OpenAI SDK 請求。

選取主題以進一步了解:

OpenAI 批次 API 支援的模型和區域

您可以使用OpenAI建立批次 API 搭配 Amazon Bedrock 和支援這些OpenAI模型的 AWS 區域中支援的所有模型。如需支援的模型和區域的詳細資訊,請參閱 Amazon Bedrock 中支援的基礎模型

使用OpenAI批次 API 的先決條件

若要查看使用OpenAI批次 API 操作的先決條件,請選擇您偏好方法的索引標籤,然後遵循下列步驟:

OpenAI SDK
HTTP request

建立OpenAI批次任務

如需OpenAI建立批次 API 的詳細資訊,請參閱 OpenAI 文件中的下列資源:

  • 建立批次 – 詳細說明請求和回應。

  • 請求輸出物件 – 詳細說明從批次任務產生的輸出欄位。解譯 S3 儲存貯體中的結果時,請參閱本文件。

形成請求

形成批次推論請求時,請注意下列 Amazon Bedrock 特定欄位和值:

請求標頭
請求內文參數:
  • 端點 – 必須是 v1/chat/completions

  • input_file_id – 指定批次 JSONL 檔案的 S3 URI。

尋找產生的結果

建立回應包含批次 ID。批次推論任務的結果和錯誤記錄會寫入包含輸入檔案的 S3 資料夾。結果將位於與批次 ID 同名的資料夾中,如下列資料夾結構所示:

---- {batch_input_folder} |---- {batch_input}.jsonl |---- {batch_id} |---- {batch_input}.jsonl.out |---- {batch_input}.jsonl.err

若要查看使用不同方法OpenAI建立批次 API 的範例,請選擇您偏好方法的索引標籤,然後遵循下列步驟:

OpenAI SDK (Python)

若要使用 OpenAI SDK 建立批次任務,請執行下列動作:

  1. 匯入 OpenAI SDK 並使用下列欄位設定用戶端:

    • base_url – 將 Amazon Bedrock 執行期端點字首為 /openai/v1,格式如下:

      https://${bedrock-runtime-endpoint}/openai/v1
    • api_key – 指定 Amazon Bedrock API 金鑰。

    • default_headers – 如果您需要包含任何標頭,您可以將它們作為索引鍵/值對包含在此物件中。或者,您可以在進行特定 API 呼叫extra_headers時,在 中指定標頭。

  2. 搭配用戶端使用 batches.create() 方法。

在執行下列範例之前,請取代下列欄位中的預留位置:

  • api_key – 使用實際 API 金鑰取代 $AWS_BEARER_TOKEN_BEDROCK

  • X-Amzn-BedrockRoleArn – 將 arn:aws:iam::123456789012:role/BatchServiceRole 取代為您設定的實際批次推論服務角色。

  • input_file_id – 將 s3://amzn-s3-demo-bucket/openai-input.jsonl 取代為您上傳批次 JSONL 檔案的實際 S3 URI。

此範例會在 中呼叫OpenAI建立批次任務 API,us-west-2並包含一段中繼資料。

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK", # Replace with actual API key default_headers={ "X-Amzn-Bedrock-RoleArn": "arn:aws:iam::123456789012:role/BatchServiceRole" # Replace with actual service role ARN } ) job = client.batches.create( input_file_id="s3://amzn-s3-demo-bucket/openai-input.jsonl", # Replace with actual S3 URI endpoint="/v1/chat/completions", completion_window="24h", metadata={ "description": "test input" }, extra_headers={ "X-Amzn-Bedrock-ModelId": "openai.gpt-oss-20b-1:0", } ) print(job)
HTTP request

若要使用直接 HTTP 請求建立聊天完成,請執行下列動作:

  1. 使用 POST 方法,並將 Amazon Bedrock 執行期端點字首指定為 的 URL/openai/v1/batches,格式如下:

    https://${bedrock-runtime-endpoint}/openai/v1/batches
  2. Authorization標頭中指定您的 AWS 登入資料或 Amazon Bedrock API 金鑰。

在執行下列範例之前,請先取代下列欄位中的預留位置:

  • 授權 – 使用實際 API 金鑰取代 $AWS_BEARER_TOKEN_BEDROCK

  • X-Amzn-BedrockRoleArn – 將 arn:aws:iam::123456789012:role/BatchServiceRole 取代為您設定的實際批次推論服務角色。

  • input_file_id – 將 s3://amzn-s3-demo-bucket/openai-input.jsonl 取代為您上傳批次 JSONL 檔案的實際 S3 URI。

下列範例會在 中呼叫建立聊天完成 API,us-west-2並包含一個中繼資料:

curl -X POST 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches' \ -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK' \ -H 'Content-Type: application/json' \ -H 'X-Amzn-Bedrock-ModelId: openai.gpt-oss-20b-1:0' \ -H 'X-Amzn-Bedrock-RoleArn: arn:aws:iam::123456789012:role/BatchServiceRole' \ -d '{ "input_file_id": "s3://amzn-s3-demo-bucket/openai-input.jsonl", "endpoint": "/v1/chat/completions", "completion_window": "24h", "metadata": {"description": "test input"} }'

擷取OpenAI批次任務

如需OpenAI擷取批次 API 請求和回應的詳細資訊,請參閱擷取批次

當您提出請求時,您可以指定要取得資訊的批次任務 ID。回應會傳回批次任務的相關資訊,包括您可以在 S3 儲存貯體中查詢的輸出和錯誤檔案名稱。

若要查看使用不同方法OpenAI擷取批次 API 的範例,請選擇您偏好方法的索引標籤,然後遵循下列步驟:

OpenAI SDK (Python)

若要使用 OpenAI SDK 擷取批次任務,請執行下列動作:

  1. 匯入 OpenAI SDK 並使用下列欄位設定用戶端:

    • base_url – 將 Amazon Bedrock 執行期端點字首為 /openai/v1,格式如下:

      https://${bedrock-runtime-endpoint}/openai/v1
    • api_key – 指定 Amazon Bedrock API 金鑰。

    • default_headers – 如果您需要包含任何標頭,您可以將它們作為索引鍵/值對包含在此物件中。或者,您可以在進行特定 API 呼叫extra_headers時,在 中指定標頭。

  2. 搭配用戶端使用 batches.retrieve() 方法,並指定要擷取資訊的批次 ID。

在執行下列範例之前,請取代下列欄位中的預留位置:

  • api_key – 使用實際 API 金鑰取代 $AWS_BEARER_TOKEN_BEDROCK

  • batch_id – 使用實際 API 金鑰取代 $AWS_BEARER_TOKEN_BEDROCK

此範例會在 ID 為 batch_abc123 的批次任務us-west-2上呼叫 中的OpenAI擷取批次任務 API。

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key ) job = client.batches.retrieve(batch_id="batch_abc123") # Replace with actual ID print(job)
HTTP request

若要使用直接 HTTP 請求擷取批次任務,請執行下列動作:

  1. 使用 GET 方法,並將 Amazon Bedrock 執行期端點字首指定為 的 URL/openai/v1/batches/${batch_id},格式如下:

    https://${bedrock-runtime-endpoint}/openai/v1/batches/batch_abc123
  2. Authorization標頭中指定您的 AWS 登入資料或 Amazon Bedrock API 金鑰。

在執行下列範例之前,請先取代下列欄位中的預留位置:

  • 授權 – 使用實際 API 金鑰取代 $AWS_BEARER_TOKEN_BEDROCK

  • batch_abc123 – 在 路徑中,將此值取代為批次任務的實際 ID。

下列範例會在 ID 為 batch_abc123 的批次任務us-west-2上呼叫 中的OpenAI擷取批次 API。

curl -X GET 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches/batch_abc123' \ -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK'

列出OpenAI批次任務

如需OpenAI列出批次 API 請求和回應的詳細資訊,請參閱列出批次。回應會傳回批次任務的相關資訊陣列。

當您提出請求時,您可以包含查詢參數來篩選結果。回應會傳回批次任務的相關資訊,包括您可以在 S3 儲存貯體中查詢的輸出和錯誤檔案名稱。

若要查看使用OpenAI列出批次 API 搭配不同方法的範例,請選擇您偏好方法的索引標籤,然後遵循下列步驟:

OpenAI SDK (Python)

若要使用 OpenAI SDK 列出批次任務,請執行下列動作:

  1. 匯入 OpenAI SDK 並使用下列欄位設定用戶端:

    • base_url – 將 Amazon Bedrock 執行期端點字首為 /openai/v1,格式如下:

      https://${bedrock-runtime-endpoint}/openai/v1
    • api_key – 指定 Amazon Bedrock API 金鑰。

    • default_headers – 如果您需要包含任何標頭,您可以將它們作為索引鍵/值對包含在此物件中。或者,您可以在進行特定 API 呼叫extra_headers時,在 中指定標頭。

  2. 搭配用戶端使用 batches.list() 方法。您可以包含任何選用參數。

在執行下列範例之前,請取代下列欄位中的預留位置:

  • api_key – 使用實際 API 金鑰取代 $AWS_BEARER_TOKEN_BEDROCK

此範例會在 中呼叫OpenAI列出批次任務 API,us-west-2並指定傳回 2 個結果的限制。

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key ) job = client.batches.retrieve(batch_id="batch_abc123") # Replace with actual ID print(job)
HTTP request

若要列出具有直接 HTTP 請求的批次任務,請執行下列動作:

  1. 使用 GET 方法,並將 Amazon Bedrock 執行期端點字首指定為 的 URL/openai/v1/batches,格式如下:

    https://${bedrock-runtime-endpoint}/openai/v1/batches

    您可以包含任何選用的查詢參數。

  2. Authorization標頭中指定您的 AWS 登入資料或 Amazon Bedrock API 金鑰。

在執行下列範例之前,請先取代下列欄位中的預留位置:

  • 授權 – 使用實際 API 金鑰取代 $AWS_BEARER_TOKEN_BEDROCK

下列範例會呼叫 中的OpenAI清單批次 API,us-west-2並指定 2 個結果要傳回的限制。

curl -X GET 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches/batch_abc123' \ -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK'

取消OpenAI批次任務

如需OpenAI取消批次 API 請求和回應的詳細資訊,請參閱取消批次。回應會傳回已取消批次任務的相關資訊。

當您提出請求時,您可以指定要取消的批次任務 ID。

若要查看搭配不同方法使用OpenAI取消批次 API 的範例,請選擇您偏好方法的索引標籤,然後遵循下列步驟:

OpenAI SDK (Python)

若要使用 OpenAI SDK 取消批次任務,請執行下列動作:

  1. 匯入 OpenAI SDK 並使用下列欄位設定用戶端:

    • base_url – 將 Amazon Bedrock 執行期端點字首為 /openai/v1,格式如下:

      https://${bedrock-runtime-endpoint}/openai/v1
    • api_key – 指定 Amazon Bedrock API 金鑰。

    • default_headers – 如果您需要包含任何標頭,您可以將它們作為索引鍵/值對包含在此物件中。或者,您可以在進行特定 API 呼叫extra_headers時,在 中指定標頭。

  2. 搭配用戶端使用 batches.cancel() 方法,並指定要擷取資訊的批次 ID。

在執行下列範例之前,請取代下列欄位中的預留位置:

  • api_key – 使用實際 API 金鑰取代 $AWS_BEARER_TOKEN_BEDROCK

  • batch_id – 使用實際 API 金鑰取代 $AWS_BEARER_TOKEN_BEDROCK

此範例會在 ID 為 batch_abc123 的批次us-west-2任務上呼叫 中的OpenAI取消批次任務 API。

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key ) job = client.batches.cancel(batch_id="batch_abc123") # Replace with actual ID print(job)
HTTP request

若要使用直接 HTTP 請求取消批次任務,請執行下列動作:

  1. 使用 POST 方法,並將 Amazon Bedrock 執行期端點字首指定為 的 URL/openai/v1/batches/${batch_id}/cancel,格式如下:

    https://${bedrock-runtime-endpoint}/openai/v1/batches/batch_abc123/cancel
  2. Authorization標頭中指定您的 AWS 登入資料或 Amazon Bedrock API 金鑰。

在執行下列範例之前,請先取代下列欄位中的預留位置:

  • 授權 – 使用實際 API 金鑰取代 $AWS_BEARER_TOKEN_BEDROCK

  • batch_abc123 – 在 路徑中,將此值取代為批次任務的實際 ID。

下列範例會在 ID 為 batch_abc123 的批次任務us-west-2上呼叫 中的OpenAI取消批次 API。

curl -X GET 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches/batch_abc123/cancel' \ -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK'