

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# OpenAI Batch API を使用してプロンプトのバッチを送信する
<a name="inference-openai-batch"></a>

Amazon Bedrock OpenAI モデルで [OpenAI Create batch API](https://platform.openai.com/docs/api-reference/batch) を使用してバッチ推論ジョブを実行できます。

以下の方法で OpenAI Create batch API を呼び出すことができます。
+ Amazon Bedrock ランタイムエンドポイントを使用して HTTP リクエストを行う。
+ Amazon Bedrock ランタイムエンドポイントで OpenAI SDK リクエストを使用する。

詳細情報については、トピックを選択してください。

**Topics**
+ [OpenAI batch API でサポートされているモデルとリージョン](#inference-openai-batch-supported)
+ [OpenAI batch API を使用するための前提条件](#inference-openai-batch-prereq)
+ [OpenAI バッチジョブを作成する](#inference-openai-batch-create)
+ [OpenAI バッチジョブを取得する](#inference-openai-batch-retrieve)
+ [OpenAI バッチジョブの一覧表示](#inference-openai-batch-list)
+ [OpenAI バッチジョブをキャンセルする](#inference-openai-batch-cancel)

## OpenAI batch API でサポートされているモデルとリージョン
<a name="inference-openai-batch-supported"></a>

OpenAI Create batch API は、Amazon Bedrock およびこれらのOpenAIモデルをサポートする AWS リージョンでサポートされているすべてのモデルで使用できます。サポートされているモデルとリージョンの詳細については、「[Amazon Bedrock でサポートされている基盤モデル](models-supported.md)」を参照してください。

## OpenAI batch API を使用するための前提条件
<a name="inference-openai-batch-prereq"></a>

OpenAI batch API オペレーションを使用するための前提条件を確認するには、任意の方法のタブを選択し、ステップに従います。

------
#### [ OpenAI SDK ]
+ **認証** – OpenAI SDK は Amazon Bedrock API キーを使用した認証のみをサポートします。Amazon Bedrock API キーを生成してリクエストを認証します。Amazon Bedrock API キーとその生成方法については、「ビルド」章の「API キー」セクションを参照してください。
+ **エンドポイント** – Amazon Bedrock ランタイムエンドポイントとクォータで使用する AWS リージョンに対応するエンドポイントを見つけます。 [https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt) AWS SDK を使用する場合は、クライアントの設定時にエンドポイント全体ではなく、リージョンコードを指定するだけで済みます。
+ **モデルアクセス** – この機能をサポートする Amazon Bedrock モデルへのアクセスをリクエストします。詳細については、「[SDK と CLI を使用してモデルアクセスを管理する](model-access.md#model-access-modify)」を参照してください。
+ **OpenAI SDK のインストール** – 詳細については、「OpenAI ドキュメント」の「[ライブラリ](https://platform.openai.com/docs/libraries)」を参照してください。
+ **S3 にアップロードされたバッチ JSONL ファイル** – 「OpenAI ドキュメント」の「[バッチファイルの準備](https://platform.openai.com/docs/guides/batch#1-prepare-your-batch-file)」の手順に従って、バッチファイルを正しい形式で準備します。これを Amazon S3 バケットにアップロードします。
+ **IAM アクセス許可** – 適切なアクセス許可を持つ次の IAM ID があることを確認します。
  + 認証で使用する IAM ID では、バッチ推論関連の API オペレーションを実行できます。詳細については、「[IAM アイデンティティがバッチ推論ジョブを送信および管理するために必要なアクセス許可](batch-inference-permissions.md)」を参照してください。
  + 使用するバッチ推論サービスロールは、ID を引き受け、使用する OpenAI モデルを呼び出し、S3 のバッチ JSONL ファイルにアクセスできます。詳細については、「[サービスロール](security-iam-sr.md)」を参照してください。

------
#### [ HTTP request ]
+ **認証** – AWS 認証情報または Amazon Bedrock API キーを使用して認証できます。

   AWS 認証情報を設定するか、Amazon Bedrock API キーを生成してリクエストを認証します。
  +  AWS 認証情報の設定については、[AWS 「セキュリティ認証情報を使用したプログラムによるアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html)」を参照してください。
  + Amazon Bedrock API キーとその生成方法については、「ビルド」章の「API キー」セクションを参照してください。
+ **エンドポイント** – Amazon Bedrock ランタイムエンドポイントとクォータで使用する AWS リージョンに対応するエンドポイントを見つけます。 [https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt) AWS SDK を使用する場合は、クライアントの設定時にエンドポイント全体ではなく、リージョンコードを指定するだけで済みます。
+ **モデルアクセス** – この機能をサポートする Amazon Bedrock モデルへのアクセスをリクエストします。詳細については、「[SDK と CLI を使用してモデルアクセスを管理する](model-access.md#model-access-modify)」を参照してください。
+ **S3 にアップロードされたバッチ JSONL ファイル** – 「OpenAI ドキュメント」の「[バッチファイルの準備](https://platform.openai.com/docs/guides/batch#1-prepare-your-batch-file)」の手順に従って、バッチファイルを正しい形式で準備します。これを Amazon S3 バケットにアップロードします。
+ **IAM アクセス許可** – 適切なアクセス許可を持つ次の IAM ID があることを確認します。
  + 認証で使用する IAM ID では、バッチ推論関連の API オペレーションを実行できます。詳細については、「[IAM アイデンティティがバッチ推論ジョブを送信および管理するために必要なアクセス許可](batch-inference-permissions.md)」を参照してください。
  + 使用するバッチ推論サービスロールは、ID を引き受け、使用する OpenAI モデルを呼び出し、S3 のバッチ JSONL ファイルにアクセスできます。詳細については、「[サービスロール](security-iam-sr.md)」を参照してください。

------

## OpenAI バッチジョブを作成する
<a name="inference-openai-batch-create"></a>

OpenAI Create batch API の詳細については、「OpenAI ドキュメント」の以下のリソースを参照してください。
+ [バッチの作成](https://platform.openai.com/docs/api-reference/batch/create) – リクエストとレスポンスの両方の詳細を表示します。
+ [リクエスト出力オブジェクト](https://platform.openai.com/docs/api-reference/batch/request-output) – バッチジョブから生成された出力のフィールドの詳細を表示します。S3 バケットで結果を解釈する場合は、このドキュメントを参照してください。

**リクエストを形成する**  
バッチ推論リクエストを形成するときは、次の Amazon Bedrock 固有のフィールドと値に注意してください。

**リクエストヘッダー**
+ X-Amzn-Bedrock-RoleArn (必須) – バッチ推論サービスロールの Amazon リソースネーム (ARN)。詳細については、[バッチ推論向けのサービスロールを作成する](batch-iam-sr.md)を参照してください。
+ X-Amzn-Bedrock-ModelId (必須) – 推論で使用する基盤モデルの ID。詳細については、「[Amazon Bedrock でサポートされている基盤モデル](models-supported.md)」を参照してください。
+ X-Amzn-Bedrock-OutputEncryptionKeyId (オプション) – 出力 S3 ファイルの暗号化に使用する KMS キーの ID。詳細については、[AWS KMS 「 (SSE-KMS) を使用したサーバー側の暗号化の指定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)」を参照してください。
+ X-Amzn-Bedrock-Tags (オプション) – 出力にアタッチするタグを示すキーと値のディクショナリ。詳細については、「[Amazon Bedrock リソースにタグ付け](tagging.md)」を参照してください。

**リクエスト本文パラメータ**
+ endpoint – `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 Create batch 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` でヘッダーを指定することもできます。

1. クライアントで [batches.create()](https://platform.openai.com/docs/api-reference/batch/create) 方法を使用します。

次の例を実行する前に、次のフィールドのプレースホルダーを置き換えます。
+ api\_key – {{$AWS\_BEARER\_TOKEN\_BEDROCK}} を実際の API キーに置き換えます。
+ X-Amzn-BedrockRoleArn – {{arn:aws:iam::123456789012:role/BatchServiceRole}} を、設定した実際のバッチ推論サービスロールに置き換えます。
+ input\_file\_id – {{s3://amzn-s3-demo-bucket/openai-input.jsonl}} を、バッチ JSONL ファイルをアップロードした実際の S3 URI に置き換えます。

この例では、`us-west-2` で OpenAI Create batch job API を呼び出し、メタデータを 1 つ含めます。

```
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 ランタイムエンドポイントのプレフィックスを `/openai/v1/batches` に付け加えて URL を指定します。

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

1. `Authorization` ヘッダーで AWS 認証情報または Amazon Bedrock API キーを指定します。

次の例を実行する前に、まず次のフィールドのプレースホルダーを置き換えます。
+ 認証 – {{$AWS\_BEARER\_TOKEN\_BEDROCK}} を実際の API キーに置き換えます。
+ X-Amzn-BedrockRoleArn – {{arn:aws:iam::123456789012:role/BatchServiceRole}} を、設定した実際のバッチ推論サービスロールに置き換えます。
+ input\_file\_id – {{s3://amzn-s3-demo-bucket/openai-input.jsonl}} を、バッチ JSONL ファイルをアップロードした実際の S3 URI に置き換えます。

次の例では、`us-west-2` で Create chat completion API を呼び出し、メタデータを 1 つ含めます。

```
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 バッチジョブを取得する
<a name="inference-openai-batch-retrieve"></a>

OpenAI Retrieve batch API リクエストとレスポンスの詳細については、「[Retrieve batch](https://platform.openai.com/docs/api-reference/batch/retrieve)」を参照してください。

リクエストを行うときは、情報を取得するバッチジョブの ID を指定します。レスポンスは、S3 バケットで検索できる出力ファイル名やエラーファイル名など、バッチジョブに関する情報を返します。

さまざまな方法の OpenAI Retrieve batch 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` でヘッダーを指定することもできます。

1. クライアントで [batches.retrieve()](https://platform.openai.com/docs/api-reference/batch/create) 方法を使用し、情報を取得するバッチの ID を指定します。

次の例を実行する前に、次のフィールドのプレースホルダーを置き換えます。
+ api\_key – {{$AWS\_BEARER\_TOKEN\_BEDROCK}} を実際の API キーに置き換えます。
+ batch\_id – {{$AWS\_BEARER\_TOKEN\_BEDROCK}} を実際の API キーに置き換えます。

この例では、ID が {{batch\_abc123}} であるバッチジョブで、`us-west-2` の OpenAI Retrieve batch job 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 ランタイムエンドポイントのプレフィックスを `/openai/v1/batches/{{${batch_id}}}` に設付け加えて URL を指定します。

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

1. `Authorization` ヘッダーで AWS 認証情報または Amazon Bedrock API キーを指定します。

次の例を実行する前に、まず次のフィールドのプレースホルダーを置き換えます。
+ 認証 – {{$AWS\_BEARER\_TOKEN\_BEDROCK}} を実際の API キーに置き換えます。
+ batch\_abc123 – パスで、この値をバッチジョブの実際の ID に置き換えます。

この例では、ID が {{batch\_abc123}} であるバッチジョブで、`us-west-2` の OpenAI Retrieve batch 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 バッチジョブの一覧表示
<a name="inference-openai-batch-list"></a>

OpenAI List batches API リクエストとレスポンスの詳細については、「[List batches](https://platform.openai.com/docs/api-reference/batch/list)」を参照してください。レスポンスは、バッチジョブに関する情報の配列を返します。

リクエストを行うときに、クエリパラメータを含めて結果をフィルタリングできます。レスポンスは、S3 バケットで検索できる出力ファイル名やエラーファイル名など、バッチジョブに関する情報を返します。

さまざまな方法で OpenAI List batches 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` でヘッダーを指定することもできます。

1. クライアントで [batches.list()](https://platform.openai.com/docs/api-reference/batch/list) 方法を使用します。オプションのパラメータを任意に含めることができます。

次の例を実行する前に、次のフィールドのプレースホルダーを置き換えます。
+ api\_key – {{$AWS\_BEARER\_TOKEN\_BEDROCK}} を実際の API キーに置き換えます。

この例では、`us-west-2` で OpenAI List batch jobs API を呼び出し、返す結果の上限を 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.list(limit=2)

print(job)
```

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

直接 HTTP リクエストを使用してバッチジョブを一覧表示するには、次の手順を実行します。

1. GET 方法を使用し、次の形式で Amazon Bedrock ランタイムエンドポイントのプレフィックスを `/openai/v1/batches` に設付け加えて URL を指定します。

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

   オプションのクエリパラメータを任意に含めることができます。

1. `Authorization` ヘッダーで AWS 認証情報または Amazon Bedrock API キーを指定します。

次の例を実行する前に、まず次のフィールドのプレースホルダーを置き換えます。
+ 認証 – {{$AWS\_BEARER\_TOKEN\_BEDROCK}} を実際の API キーに置き換えます。

次の例では、`us-west-2` で OpenAI List batches API を呼び出し、返す結果の上限を 2 つ指定します。

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

------

## OpenAI バッチジョブをキャンセルする
<a name="inference-openai-batch-cancel"></a>

OpenAI Cancel batch API のリクエストとレスポンスの詳細については、「[Cancel batch](https://platform.openai.com/docs/api-reference/batch/cancel)」を参照してください。レスポンスは、キャンセルされたバッチジョブに関する情報を返します。

リクエストを行うときは、キャンセルするバッチジョブの ID を指定します。

さまざまな方法で OpenAI Cancel batch 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` でヘッダーを指定することもできます。

1. クライアントで [batches.cancel()](https://platform.openai.com/docs/api-reference/batch/cancel) 方法を使用し、情報を取得するバッチの ID を指定します。

次の例を実行する前に、次のフィールドのプレースホルダーを置き換えます。
+ api\_key – {{$AWS\_BEARER\_TOKEN\_BEDROCK}} を実際の API キーに置き換えます。
+ batch\_id – {{$AWS\_BEARER\_TOKEN\_BEDROCK}} を実際の API キーに置き換えます。

この例では、ID が {{batch\_abc123}} であるバッチジョブで、`us-west-2` の OpenAI Cancel batch job 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 ランタイムエンドポイントのプレフィックスを `/openai/v1/batches/{{${batch_id}}}/cancel` に付け加えて URL を指定します。

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

1. `Authorization` ヘッダーで AWS 認証情報または Amazon Bedrock API キーを指定します。

次の例を実行する前に、まず次のフィールドのプレースホルダーを置き換えます。
+ 認証 – {{$AWS\_BEARER\_TOKEN\_BEDROCK}} を実際の API キーに置き換えます。
+ batch\_abc123 – パスで、この値をバッチジョブの実際の ID に置き換えます。

この例では、ID が {{batch\_abc123}} であるバッチジョブで、`us-west-2` の OpenAI Cancel batch 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'
```

------