本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 OpenAI 批处理 API 批量提交提示
您可以将 OpenAI 创建批处理 API 与 Amazon Bedrock OpenAI 模型结合使用,来运行批量推理作业。
您可通过以下方式调用 OpenAI 创建批处理 API:
选择一个主题以了解更多信息:
支持 OpenAI 批处理 API 的模型和区域
您可以对 Amazon Bedrock 和支持这些OpenAI模型的 AWS 地区支持的所有型号使用OpenAI创建批处理 API。有关支持的模型和区域的更多信息,请参阅 Amazon Bedrock 中支持的根基模型。
使用 OpenAI 批处理 API 的先决条件
要查看使用 OpenAI 批处理 API 操作的先决条件,请选择与您的首选方法对应的选项卡,然后按照以下步骤操作:
- OpenAI SDK
-
-
身份验证 – OpenAI SDK 仅支持使用 Amazon Bedrock API 密钥进行身份验证。生成 Amazon Bedrock API 密钥以对您的请求进行身份验证。要了解有关 Amazon Bedrock API 密钥以及如何生成密钥的信息,请参阅 “构建” 一章中的 API 密钥部分。
-
终端节点 — 找到与要在 Amazon Bedrock 运行时终端节点和配额中使用的 AWS 区域相对应的终端节点。如果您使用 S AWS DK,则在设置客户端时可能只需要指定区域代码,而无需指定整个端点。
-
模型访问权限 – 请求访问支持此功能的 Amazon Bedrock 模型。有关更多信息,请参阅使用 SDK 和 CLI 管理模型访问权限。
-
安装 OpenAI SDK – 有关更多信息,请参阅 OpenAI 文档中的库。
-
上传到 S3 的批处理 JSONL 文件 – 按照 OpenAI 文档中准备批处理文件中的步骤,采用恰当的格式准备批处理文件。然后,将其上传到 Amazon S3 存储桶。
-
IAM 权限 – 确保您拥有具适当权限的以下 IAM 身份:
- HTTP request
-
-
身份验证 — 您可以使用您的 AWS 证书或 Amazon Bedrock API 密钥进行身份验证。
设置您的 AWS 凭证或生成 Amazon Bedrock API 密钥来验证您的请求。
-
终端节点 — 找到与要在 Amazon Bedrock 运行时终端节点和配额中使用的 AWS 区域相对应的终端节点。如果您使用 S AWS DK,则在设置客户端时可能只需要指定区域代码,而无需指定整个端点。
-
模型访问权限 – 请求访问支持此功能的 Amazon Bedrock 模型。有关更多信息,请参阅使用 SDK 和 CLI 管理模型访问权限。
-
上传到 S3 的批处理 JSONL 文件 – 按照 OpenAI 文档中准备批处理文件中的步骤,采用恰当的格式准备批处理文件。然后,将其上传到 Amazon S3 存储桶。
-
IAM 权限 – 确保您拥有具适当权限的以下 IAM 身份:
创建 OpenAI 批处理作业
有关 OpenAI 创建批处理 API 的详细信息,请参阅 OpenAI 文档中的以下资源:
构造请求
在构造批量推理请求时,请注意以下特定于 Amazon Bedrock 的字段和值:
查找生成的结果
创建的响应中包含批处理 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 创建批处理作业,请执行以下操作:
-
导入 OpenAI SDK 并使用以下字段设置客户端:
-
base_url – 将 Amazon Bedrock 运行时端点添加为 /openai/v1 的前缀,格式如下:
https://${bedrock-runtime-endpoint}/openai/v1
-
api_key – 指定 Amazon Bedrock API 密钥。
-
default_headers – 如果需要包含任何标头,可将其作为键值对包含在此对象中。也可在进行特定 API 调用时在 extra_headers 中指定标头。
-
在客户端上使用 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。
以下示例在 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
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 请求创建聊天补全作业,请执行以下操作:
-
使用 POST 方法,并通过将 Amazon Bedrock 运行时端点添加为 /openai/v1/batches 的前缀来指定 URL,格式如下:
https://${bedrock-runtime-endpoint}/openai/v1/batches
-
在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 中调用创建聊天补全 API,并包含一段元数据:
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 检索批处理作业,请执行以下操作:
-
导入 OpenAI SDK 并使用以下字段设置客户端:
-
base_url – 将 Amazon Bedrock 运行时端点添加为 /openai/v1 的前缀,格式如下:
https://${bedrock-runtime-endpoint}/openai/v1
-
api_key – 指定 Amazon Bedrock API 密钥。
-
default_headers – 如果需要包含任何标头,可将其作为键值对包含在此对象中。也可在进行特定 API 调用时在 extra_headers 中指定标头。
-
在客户端上使用 batches.retrieve() 方法,并指定要检索其信息的批处理作业的 ID。
在运行以下示例之前,请先替换以下字段中的占位符:
该示例在 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 请求检索批处理作业,请执行以下操作:
-
使用 GET 方法,并通过将 Amazon Bedrock 运行时端点添加为 /openai/v1/batches/${batch_id} 的前缀来指定 URL,格式如下:
https://${bedrock-runtime-endpoint}/openai/v1/batches/batch_abc123
-
在Authorization标题中指定您的 AWS 证书或 Amazon Bedrock API 密钥。
在运行以下示例之前,请先替换以下字段中的占位符:
以下示例在 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 列出批处理作业,请执行以下操作:
-
导入 OpenAI SDK 并使用以下字段设置客户端:
-
base_url – 将 Amazon Bedrock 运行时端点添加为 /openai/v1 的前缀,格式如下:
https://${bedrock-runtime-endpoint}/openai/v1
-
api_key – 指定 Amazon Bedrock API 密钥。
-
default_headers – 如果需要包含任何标头,可将其作为键值对包含在此对象中。也可在进行特定 API 调用时在 extra_headers 中指定标头。
-
在客户端上使用 batches.list() 方法。您可以包括任何可选参数。
在运行以下示例之前,请先替换以下字段中的占位符:
以下示例在 us-west-2 中调用 OpenAI 列出批处理作业 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.retrieve(batch_id="batch_abc123") # Replace with actual ID
print(job)
- HTTP request
-
要通过直接 HTTP 请求列出批处理作业,请执行以下操作:
-
使用 GET 方法,并通过将 Amazon Bedrock 运行时端点添加为 /openai/v1/batches 的前缀来指定 URL,格式如下:
https://${bedrock-runtime-endpoint}/openai/v1/batches
您可以包括任何可选的查询参数。
-
在Authorization标题中指定您的 AWS 证书或 Amazon Bedrock API 密钥。
在运行以下示例之前,请先替换以下字段中的占位符:
以下示例在 us-west-2 中调用 OpenAI 列出批处理 API,并指定返回的结果上限为 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 取消批处理作业,请执行以下操作:
-
导入 OpenAI SDK 并使用以下字段设置客户端:
-
base_url – 将 Amazon Bedrock 运行时端点添加为 /openai/v1 的前缀,格式如下:
https://${bedrock-runtime-endpoint}/openai/v1
-
api_key – 指定 Amazon Bedrock API 密钥。
-
default_headers – 如果需要包含任何标头,可将其作为键值对包含在此对象中。也可在进行特定 API 调用时在 extra_headers 中指定标头。
-
在客户端上使用 batches.cancel() 方法,并指定要检索其信息的批处理作业的 ID。
在运行以下示例之前,请先替换以下字段中的占位符:
该示例在 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 请求取消批处理作业,请执行以下操作:
-
使用 POST 方法,并通过将 Amazon Bedrock 运行时端点添加为 /openai/v1/batches/${batch_id}/cancel 的前缀来指定 URL,格式如下:
https://${bedrock-runtime-endpoint}/openai/v1/batches/batch_abc123/cancel
-
在Authorization标题中指定您的 AWS 证书或 Amazon Bedrock API 密钥。
在运行以下示例之前,请先替换以下字段中的占位符:
以下示例在 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'