

# 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`: モデル出力を制御するパラメータ (温度、maxTokens、topP、topK、stopSequences、reasoningConfig)
+ `toolConfig`: 関数呼び出しのツール仕様とツールの選択