

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

# 调用您导入的模型
<a name="invoke-imported-model"></a>

在您发送[CreateModelImportJob](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_CreateModelImportJob.html)请求后，模型导入任务可能需要几分钟才能导入您的模型。您可以在控制台中检查导入任务的状态，也可以通过调用[GetModelImportJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelImportJob.html)操作并检查响应中的`Status`字段来检查导入任务的状态。如果模型的状态为**完成**，则导入作业已完成。

导入的模型在 Amazon Bedrock 中可用后，您可以通过向模型发送[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)或[InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)请求来使用具有按需吞吐量的模型。有关更多信息，请参阅 [使用以下命令提交单个提示 InvokeModel用 InvokeModel （已移动）提交单个提示](inference-invoke.md)。

要使用消息格式与导入的模型接口，可以调用 C [onverse 或 operation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) s [ConverseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStream.html)。有关更多信息，请参阅 [使用 Converse API使用匡威 API（已移动）](conversation-inference-call.md)。

**注意**  
 Qwen2.5、 Qwen2-VL、和GPT-OSS模型不支持 Converse API。 Qwen2.5-VL

## 增强的 API 支持：多种 API 格式
<a name="enhanced-api-support"></a>

从 2025 年 11 月 17 日起，Amazon Bedrock 自定义模型导入支持全面的 OpenAI-compatible API 格式，从而可以灵活地集成和部署自定义模型。2025 年 11 月 11 日之后进口的所有型号都将自动受益于这些增强功能，无需额外配置。

自定义模型导入现在支持三种 API 格式：
+ **BedrockCompletion （文本）**-与当前 Bedrock 工作流程兼容
+ **openaiCompletion（文本）-OpenAI 补**全架构兼容性
+ **OpenAIChatCompletion （文字和图片）**-完全兼容对话架构

这些增强的功能包括用于强制执行 JSON 架构和模式的结构化输出、通过多图像处理增强的视觉支持、模型置信度见解的日志概率以及模型的工具调用功能。GPT-OSS

如需详细的 API 参考文档，请参阅 OpenAI 官方文档：
+ 完成：[OpenAI 完成 API](https://platform.openai.com/docs/api-reference/completions)
+ ChatCompletion: [OpenAI 聊天 API](https://platform.openai.com/docs/api-reference/chat)

### API 格式示例
<a name="api-format-examples"></a>

以下示例演示如何对导入的模型使用四种支持的 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`，包括、`regex``choice`、和`grammar`使用参数的约束。`structured_outputs`

------
#### [ OpenAIChatCompletion ]

**OpenAIChatCompletion**format 提供完全的对话架构兼容性，并支持文本和图像输入。

请求示例：

```
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 才能对新导入的模型进行推理调用。成功完成导入任务后，在导入的模型处于活动状态后，您可以在控制台中或通过发送请求来获取导入模型的模型 ARN。[ListImportedModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListImportedModels.html)

如果您使用 `InvokeModel` 或 `InvokeModelWithStream` 调用导入的模型，您的请求将在 5 分钟内送达，或者您可能会得到 `ModelNotReadyException`。要理解 ModelNotReadyException，请按照下一节中的步骤进行处理 ModelNotreadyException。

## 常见问题
<a name="api-format-faq"></a>

**问：我应该使用哪种 API 格式？**

答：为了最大限度地兼容各种 SDK，我们建议使用 OpenaiCompletion 或 OpenAIChatCompletion 格式，因为它们提供的 OpenAI-compatible 架构在不同的工具和库中得到广泛支持。

**问：Amazon GPT-OSS 上的 Bedrock 自定义模型导入是否支持 Converse API？**

答：不是。 GPT-OSS基于自定义模型的导入模型不支持 Converse API 或 ConverseStream API。使用GPT-OSS基于 OpenAI-compatible 架构的自定义模型时，必须将 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)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](https://huggingface.co/openai/gpt-oss-20b/blob/main/generation_config.json)。更新的配置包括三个序列结束标记 ID (`[200002, 199999, 200012]`)，而旧版本仅包含两个标记 (`[200002, 199999]`)。使用过时的`generation_config.json`文件会在模型调用期间导致运行时错误。此文件对于正确的模型行为至关重要，并且必须包含在 OpenAI-based 模型导入中。

## 处理 ModelNotReadyException
<a name="handle-model-not-ready-exception"></a>

Amazon Bedrock 自定义模型导入通过移除未激活的模型来优化硬件使用。如果您尝试调用已移除的模型，则会得到 `ModelNotReadyException`。在移除模型并且您首次调用模型之后，“自定义模型导入”将开始恢复模型。恢复时间取决于按需实例集大小和模型大小。

如果 `InvokeModel` 或 `InvokeModelWithStream` 请求返回 `ModelNotReadyException`，请按照以下步骤处理异常。

1. 

**配置重试次数。**

   默认情况下，该请求会自动重试，并采用指数回退。您可以配置最大重试次数。

   以下示例代码显示了如何配置重试次数。将{{${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__())
   ```

1. 

**在重试尝试期间监控响应代码**

   每次重试尝试都会启动模型恢复过程。恢复时间取决于按需实例集的可用性和模型大小。在恢复过程进行过程中监控响应代码。

   如果重试持续失败，请继续后续操作。

1. 

**检验模型是否成功导入**

   您可以通过在控制台中检查导入任务的状态或调用[GetModelImportJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelImportJob.html)操作来验证模型是否已成功导入。查看响应中的 `Status` 字段。如果模型的状态为**完成**，则导入作业已成功。

1. 

**联系人 支持 供进一步调查**

   使用打开工单。 支持 有关更多信息，请参阅[创建支持案例](https://docs.aws.amazon.com//awssupport/latest/user/case-management.html)。

   在支持请求中包含相关详细信息，例如模型 ID 和时间戳。