本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
调用您导入的模型
在您发送CreateModelImportJob请求后,模型导入任务可能需要几分钟才能导入您的模型。您可以在控制台中检查导入任务的状态,也可以通过调用GetModelImportJob操作并检查响应中的Status字段来检查导入任务的状态。如果模型的状态为完成,则导入作业已完成。
导入的模型在 Amazon Bedrock 中可用后,您可以通过向模型发送InvokeModel或InvokeModelWithResponseStream请求来使用具有按需吞吐量的模型。有关更多信息,请参阅 使用以下命令提交单个提示 InvokeModel。
要使用消息格式与导入的模型接口,可以调用 C onverse 或 operation s ConverseStream。有关更多信息,请参阅 使用 Converse API。
Qwen2.5、qwen2-vl、qwen2.5-vl 和模型不支持 Converse API。GPT-OSS
增强的 API 支持:多种 API 格式
从 2025 年 11 月 17 日起,Amazon Bedrock 自定义模型导入支持全面的 OpenAI 兼容的 API 格式,从而可以灵活地集成和部署自定义模型。2025 年 11 月 11 日之后进口的所有型号都将自动受益于这些增强功能,无需额外配置。
自定义模型导入现在支持三种 API 格式:
BedrockCompletion (文本)-与当前 Bedrock 工作流程兼容
打开AICompletion (文本)-OpenAI 完成架构兼容性
Ope AIChat n Completion(文本和图像)-完全兼容对话架构
这些增强的功能包括用于强制执行 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
-
开放AICompletion格式提供 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
}
}
Open AICompletion 支持完整的结构化输出功能json,包括regexchoice、、和使用structured_outputs参数的grammar约束。
- OpenAIChatCompletion
-
Ope@@ AIChatn Completion 格式提供了完全的对话架构兼容性,并支持文本和图像输入。
请求示例:
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
}
}
开放AIChat补全支持同时使用response_format和structured_outputs参数的结构化输出。要获得视觉功能,请在内容数组中加入带有 base64 编码图像数据的图像。
要使用 ChatCompletion 格式,聊天模板必须是其中的一部分tokenizer_config.json。“自定义模型导入” 不会将任何默认聊天模板应用于请求。
您需要模型 ARN 才能对新导入的模型进行推理调用。成功完成导入任务后,在导入的模型处于活动状态后,您可以在控制台中或通过发送请求来获取导入模型的模型 ARN。ListImportedModels
如果您使用 InvokeModel 或 InvokeModelWithStream 调用导入的模型,您的请求将在 5 分钟内送达,或者您可能会得到 ModelNotReadyException。要理解 ModelNotReadyException,请按照下一节中的步骤进行处理 ModelNotreadyException。
问:我应该使用哪种 API 格式?
答:为了最大限度地兼容各种格式 SDKs,我们建议使用开放AICompletion 或开放AIChat完成格式,因为它们提供了与 OpenAI 兼容的架构,在不同的工具和库中得到广泛支持。
问:Amazon GPT-OSS 上的 Bedrock 自定义模型导入是否支持 Converse API?
答:不是。 GPT-OSS基于自定义模型的导入模型不支持 Converse API 或 ConverseStream API。使用GPT-OSS基于 OpenA InvokeModelI 的自定义模型时,必须将 API 与兼容 OpenAI 的架构一起使用。
问:哪些型号支持工具调用?
答:GPT-OSS基于自定义模型支持工具调用功能。工具调用支持复杂工作流程的函数调用。
问:2025年11月11日之前进口的车型呢?
答:2025 年 11 月 11 日之前导入的模型继续使用其现有的 API 格式和功能。
问:基于 OpenAI generation_config.json 的模型呢?
答:在导入基于 OpenAI 的模型时,请务必包含正确的generation_config.json文件,例如。GPT-OSS您必须使用更新后的配置文件(2024 年 8 月 13 日更新),网址为 https://huggingface。 co/openai/gpt-oss-20b/blob/main/generation_config.json。更新的配置包括三个 end-of-sequence标记 IDs ([200002, 199999, 200012]),而较旧的版本仅包含两个标记 ([200002, 199999])。使用过时的generation_config.json文件会在模型调用期间导致运行时错误。此文件对于正确的模型行为至关重要,并且必须包含在基于 OpenAI 的模型导入中。
处理 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 和时间戳。