

# 使用 Invoke API
<a name="using-invoke-api"></a>

 Invoke API 可直接调用 Amazon Nova 模型，并能更精细地控制请求与响应格式。不同于对模型专属细节进行抽象封装的 Converse API，Invoke API 允许直接使用模型原生的请求与响应结构。

**注意**  
Invoke API 支持与 Converse API 相同的功能，但文档输入模式除外，该能力为 Converse API 独有。

## 请求结构
<a name="invoke-api-request"></a>

Invoke API 请求需要模型 ID 和 JSON 请求正文：

```
import boto3
import json

bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')

request_body = {
    'messages': [
        {
            'role': 'user',
            'content': [{'text': 'What is machine learning?'}]
        }
    ],
    'inferenceConfig': {
        'maxTokens': 512,
        'temperature': 0.7
    }
}

response = bedrock.invoke_model(
    modelId='us.amazon.nova-2-lite-v1:0',
    body=json.dumps(request_body)
)

response_body = json.loads(response['body'].read())
content_list = response_body["output"]["message"]["content"]
# Extract the first text block
text_block = next((item for item in content_list if "text" in item), None)
if text_block is not None:
    print(text_block["text"])
```

## 请求参数
<a name="invoke-api-parameters"></a>

Invoke API 支持以下关键参数：
+ `messages`：对话消息数组，包含角色和内容
+ `system`：可选系统提示词，用于提供上下文信息和操作指令
+ `inferenceConfig`：控制模型输出的参数（temperature、maxTokens、topP、topK、stopSequences、reasoningConfig）
+ `toolConfig`：函数调用相关配置，包含工具规范与工具选择策略