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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Batch API 提交OpenAI一批提示

您可以使用使用 Amazon Bedrock OpenAI 模型OpenAI创建批处理 API 来运行批量推理作业。

您可以通过以下方式调用OpenAI创建批处理 API:

  • 使用 Amazon Bedrock 运行时终端节点发出 HTTP 请求。

  • 将 S OpenAI DK 请求与 Amazon Bedrock 运行时终端节点一起使用。

选择一个主题以了解更多信息:

OpenAI批处理 API 支持的型号和区域

您可以对 Amazon Bedrock 和支持这些OpenAI模型的 AWS 地区支持的所有型号使用OpenAI创建批处理 API。有关支持的机型和地区的更多信息,请参阅Amazon Bedrock 中支持的根基模型

使用OpenAI批处理 API 的先决条件

要查看使用OpenAI批处理 API 操作的先决条件,请选择首选方法的选项卡,然后按照以下步骤操作:

OpenAI SDK
HTTP request

创建OpenAI批处理作业

有关OpenAI创建批处理 API 的详细信息,请参阅OpenAI文档中的以下资源:

  • 创建批处理-详细说明请求和响应。

  • 请求输出对象-详细说明批处理作业生成的输出的字段。解释 S3 存储桶中的结果时,请参阅此文档。

表单申请

在形成批量推理请求时,请注意以下特定于 Amazon Bedrock 的字段和值:

Request headers(请求标头)
请求正文参数:
  • 端点-必须是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

要查看使用不同方法的 C OpenAI reate 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时在中指定标头。

  2. 在客户端上使用 batches.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。

该示例在中调用了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 密钥。

在运行以下示例之前,请先替换以下字段中的占位符:

  • 授权-$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。

以下示例在中调用创建聊天完成 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 — 替换$AWS_BEARER_TOKEN_BEDROCK为实际的 API 密钥。

  • batch_id — 替换为实际的 $AWS_BEARER_TOKEN_BEDROCK API 密钥。

该示例在 ID 为的批处理作业中us-west-2调用OpenAI检索批处理作业 API batch_abc123

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 密钥。

在运行以下示例之前,请先替换以下字段中的占位符:

  • 授权-$AWS_BEARER_TOKEN_BEDROCK 替换为实际的 API 密钥。

  • batch_abc123 — 在路径中,将此值替换为批处理作业的实际 ID。

以下示例在 ID 为的批处理作业中us-west-2调用OpenAI检索批处理 API batch_abc123

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 — 替换$AWS_BEARER_TOKEN_BEDROCK为实际的 API 密钥。

该示例在中调用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 密钥。

在运行以下示例之前,请先替换以下字段中的占位符:

  • 授权-$AWS_BEARER_TOKEN_BEDROCK 替换为实际的 API 密钥。

以下示例调用了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。

要查看使用不同方法的 C OpenAI ancel 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时在中指定标头。

  2. 在客户端上使用 batches.cancel () 方法,并指定要检索其信息的批次的 ID。

在运行以下示例之前,请替换以下字段中的占位符:

  • api_key — 替换$AWS_BEARER_TOKEN_BEDROCK为实际的 API 密钥。

  • batch_id — 替换为实际的 $AWS_BEARER_TOKEN_BEDROCK API 密钥。

该示例在 ID 为的批处理作业us-west-2上调用 “OpenAI取消批处理作业 API” batch_abc123

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 密钥。

在运行以下示例之前,请先替换以下字段中的占位符:

  • 授权-$AWS_BEARER_TOKEN_BEDROCK 替换为实际的 API 密钥。

  • batch_abc123 — 在路径中,将此值替换为批处理作业的实际 ID。

以下示例在 ID 为的批处理作业中us-west-2调用OpenAI取消批处理 API batch_abc123

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