本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
调用您导入的模型
在您发送CreateModelImportJob请求后,模型导入任务可能需要几分钟才能导入您的模型。您可以在控制台中检查导入任务的状态,也可以通过调用GetModelImportJob操作并检查响应中的Status字段来检查导入任务的状态。如果模型的状态为完成,则导入作业已完成。
导入的模型在 Amazon Bedrock 中可用后,您可以通过发送InvokeModel或InvokeModelWithResponseStream请求对模型进行推理调用来使用具有按需吞吐量的模型。有关更多信息,请参阅 使用以下命令提交单个提示 InvokeModel。
要使用消息格式与导入的模型进行交互,可以调用 Converse 或ConverseStream操作。有关更多信息,请参阅 使用 Converse API。
Qwen2.5、 Qwen2-VL和GPT-OSS模型不支持 Converse API。 Qwen2.5-VL
增强的 API 支持:多种 API 格式
从 2025 年 11 月 17 日起,Amazon Bedrock 自定义模型导入支持全面 OpenAI-compatible 的 API 格式,为您集成和部署自定义模型提供了灵活性。2025 年 11 月 11 日之后进口的所有车型都将自动受益于这些增强功能,无需额外配置。
自定义模型导入现在支持三种 API 格式:
BedrockCompletion (文本)-兼容当前的 Bedrock 工作流程
OpenAICOmpletion(文本)-OpenAI 补全架构兼容性
OpenAIChatCompletion (文本和图像)-完全的对话架构兼容性
这些增强功能包括用于执行 JSON 架构和模式的结构化输出、通过多图像处理增强的视觉支持、用于获取模型置信度洞察的日志概率以及模型的工具调用功能。GPT-OSS
有关详细的 API 参考文档,请参阅 OpenAI 官方文档:
以下示例演示如何在导入的模型中使用四种支持的 API 格式中的每一种格式。
- BedrockCompletion
-
BedrockCompletion格式与当前的 Bedrock 工作流程兼容,并支持基于文本的推理请求。
请求示例:
import json
import boto3
client = boto3.client('bedrock-runtime', region_name='us-east-1')
payload = {
"prompt": "How is the rainbow formed?",
"max_gen_len": 100,
"temperature": 0.5
}
response = client.invoke_model(
modelId='your-model-arn',
body=json.dumps(payload),
accept='application/json',
contentType='application/json'
)
response_body = json.loads(response['body'].read())
示例响应:
{
"generation": " – A scientific explanation\nA rainbow is a beautiful natural phenomenon that occurs when sunlight passes through water droplets in the air. It is formed through a process called refraction, which is the bending of light as it passes from one medium to another.\nHere's a step-by-step explanation of how a rainbow is formed:\n1. Sunlight enters the Earth's atmosphere: The first step in forming a rainbow is for sunlight to enter the Earth's atmosphere. This sunlight is made up of a spectrum of",
"prompt_token_count": 7,
"generation_token_count": 100,
"stop_reason": "length",
"logprobs": null
}
BedrockCompletion 支持使用response_format参数json_object和json_schema类型的结构化输出。
- OpenAICompletion
-
OpenAICOmpletion 格式提供 OpenAI 补全架构兼容性。要使用此格式,请添加max_tokens参数而不是max_gen_len。
请求示例:
import json
import boto3
client = boto3.client('bedrock-runtime', region_name='us-east-1')
payload = {
"prompt": "How is the rainbow formed?",
"max_tokens": 100,
"temperature": 0.5
}
response = client.invoke_model(
modelId='your-model-arn',
body=json.dumps(payload),
accept='application/json',
contentType='application/json'
)
response_body = json.loads(response['body'].read())
示例响应:
{
"id": "cmpl-b09d5810bd64428f8a853be71c31f912",
"object": "text_completion",
"created": 1763166682,
"choices": [
{
"index": 0,
"text": " The formation of a rainbow is a complex process that involves the interaction of sunlight with water droplets in the air. Here's a simplified explanation: 1. Sunlight enters the Earth's atmosphere and is refracted, or bent, as it passes through the air. 2. When sunlight encounters a water droplet, such as a cloud, mist, or fog, it is refracted again and split into its individual colors, a process known as dispersion. 3. The refracted and",
"finish_reason": "length"
}
],
"usage": {
"prompt_tokens": 7,
"total_tokens": 107,
"completion_tokens": 100
}
}
OpenAICOmpletion 支持全结构化输出功能json,包括、regexchoice、和grammar使用参数的约束。structured_outputs
- OpenAIChatCompletion
-
OpenAIChatCompletion格式提供全面的对话架构兼容性,并支持文本和图像输入。
请求示例:
import json
import boto3
client = boto3.client('bedrock-runtime', region_name='us-east-1')
payload = {
"messages": [
{
"role": "user",
"content": "How is the rainbow formed?"
}
],
"max_tokens": 100,
"temperature": 0.5
}
response = client.invoke_model(
modelId='your-model-arn',
body=json.dumps(payload),
accept='application/json',
contentType='application/json'
)
response_body = json.loads(response['body'].read())
示例响应:
{
"id": "chatcmpl-1d84ce1d3d61418e8c6d1973f87173db",
"object": "chat.completion",
"created": 1763166683,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A rainbow is a beautiful natural phenomenon that occurs when sunlight passes through water droplets in the air. The process of forming a rainbow involves several steps:\n\n1. **Sunlight**: The first requirement for a rainbow is sunlight. The sun should be shining brightly, but not directly overhead.\n2. **Water droplets**: The second requirement is water droplets in the air..."
},
"finish_reason": "length"
}
],
"usage": {
"prompt_tokens": 41,
"completion_tokens": 100,
"total_tokens": 141
}
}
OpenAIChatCompletion 支持使用response_format和structured_outputs参数的结构化输出。要实现视觉功能,请在内容数组中包含具有 base64 编码图像数据的图像。
要使用 ChatCompletion 格式,聊天模板必须是其中的一部分tokenizer_config.json。自定义模型导入不会对请求应用任何默认聊天模板。
您需要模型 ARN 才能对新导入的模型进行推理调用。成功完成导入任务后,在导入的模型处于活动状态后,您可以在控制台中或通过发送ListImportedModels请求来获取导入模型的模型 ARN。
如果您使用 InvokeModel 或 InvokeModelWithStream 调用导入的模型,您的请求将在 5 分钟内送达,或者您可能会得到 ModelNotReadyException。要理解 ModelNotReadyException,请按照下一节中的步骤进行操作 ModelNotreadyException。
问:我应该使用哪种 API 格式?
答:为了最大限度地兼容各种 SDK,我们建议使用 OpenAICOmpletion 或 OpenAIChatCompletion 格式,因为它们提供的 OpenAI-compatible 架构受到不同工具和库的广泛支持。
问:亚马逊 Bedrock GPT-OSS 上的自定义模型导入是否支持 Converse API?
答:不是。GPT-OSS基于自定义模型的导入模型不支持 Converse API 或 ConverseStream API。使用GPT-OSS基于架构的自定义模型时 OpenAI-compatible ,必须将 InvokeModel API 与架构一起使用。
问:哪些型号支持工具调用?
答:GPT-OSS基于自定义模型支持工具调用功能。工具调用支持对复杂工作流程进行函数调用。
问:2025 年 11 月 11 日之前进口的车型呢?
答:2025 年 11 月 11 日之前导入的模型将继续与其现有的 API 格式和功能保持不变。
问: OpenAI-based 模特呢?generation_config.json
答:在导入 OpenAI-based 模型(例如)时,必须包括正确的generation_config.json文件GPT-OSS。您必须使用更新后的配置文件(2024 年 8 月 13 日更新),可从中获得https://huggingface.co/openai/gpt-oss-20b/blob/main/generation_config.json。更新后的配置包括三个序列结束标记 ID ([200002, 199999, 200012]),而旧版本仅包含两个标记 ([200002, 199999])。使用过时的generation_config.json文件将在模型调用期间导致运行时错误。此文件对于模型的正确行为至关重要,必须包含在 OpenAI-based 模型导入中。
处理 ModelNotReadyException
Amazon Bedrock 自定义模型导入通过移除未激活的模型来优化硬件使用。如果您尝试调用已移除的模型,则会得到 ModelNotReadyException。在移除模型并且您首次调用模型之后,“自定义模型导入”将开始恢复模型。恢复时间取决于按需实例集大小和模型大小。
如果 InvokeModel 或 InvokeModelWithStream 请求返回 ModelNotReadyException,请按照以下步骤处理异常。
-
配置重试次数。
默认情况下,该请求会自动重试,并采用指数回退。您可以配置最大重试次数。
以下示例代码显示了如何配置重试次数。将${region-name}${model-arn}、和10替换为您的区域、型号 ARN 和最大尝试次数。
import json
import boto3
from botocore.config import Config
REGION_NAME = ${region-name}
MODEL_ID= '${model-arn}'
config = Config(
retries={
'total_max_attempts': 10, //customizable
'mode': 'standard'
}
)
message = "Hello"
session = boto3.session.Session()
br_runtime = session.client(service_name = 'bedrock-runtime',
region_name=REGION_NAME,
config=config)
try:
invoke_response = br_runtime.invoke_model(modelId=MODEL_ID,
body=json.dumps({'prompt': message}),
accept="application/json",
contentType="application/json")
invoke_response["body"] = json.loads(invoke_response["body"].read().decode("utf-8"))
print(json.dumps(invoke_response, indent=4))
except Exception as e:
print(e)
print(e.__repr__())
-
在重试尝试期间监控响应代码
每次重试尝试都会启动模型恢复过程。恢复时间取决于按需实例集的可用性和模型大小。在恢复过程进行过程中监控响应代码。
如果重试持续失败,请继续后续操作。
-
检验模型是否成功导入
您可以通过在控制台中检查导入任务的状态或调用GetModelImportJob操作来验证模型是否已成功导入。查看响应中的 Status 字段。如果模型的状态为完成,则导入作业已成功。
-
联系人 支持 以供进一步调查
使用以下方式开票。 支持 要了解更多信息,请参阅创建支持案例。
在支持请求中包含相关详细信息,例如模型 ID 和时间戳。