

# Converse API の使用
<a name="using-converse-api"></a>

**注記**  
このドキュメントは Amazon Nova バージョン 1 を対象としています。Amazon Nova 2 で Converse API を使用する方法については、「[Converse API の使用](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-converse-api.html)」を参照してください。

Amazon Nova の理解モデル (Amazon Nova Micro、Lite、Pro、Premier) を呼び出す 1 つの方法は、Converse API を使用することです。前述のコンポーネントは、モデルプロバイダー全体で一貫したスキーマを維持しながら使用されます。この手法は一貫した API を活用してポータブルなアプリケーションを実装する便利な方法をもたらし、他のモデルを使用する既存のアプリケーションを Nova モデルに移植しやすくします。Converse API は次のモデル機能をサポートしています。
+ **Converse:** バッファされた (ストリーミングとは違い) レスポンスを使用した基本的なマルチターン会話がサポートされる
+ **ConverseStream:** より多くの増分生成やインタラクティブな感覚を実現するための、ストリーミングされたレスポンスによるマルチターン会話
+ **システムプロンプト:** ペルソナやレスポンスガイドラインなどのシステム指示
+ **ドキュメントチャット:** ドキュメントまたはドキュメントのコレクションを操作してクエリする
+ **ビジョン:** 画像および動画の入力
+ **ツールの使用:** 関数呼び出しによるさまざまな外部ツールのサポート
+ **ストリーミングツールの使用:** ツールの使用およびリアルタイムの生成ストリーミングを組み合わせる
+ **ガードレール:** 不適切または有害なコンテンツを防止する

**重要**  
Amazon Nova への推論呼び出しのタイムアウト期間は 60 分です。デフォルトでは、AWS SDK クライアントは 1 分後にタイムアウトします。AWS SDK クライアントの読み取りタイムアウト期間を少なくとも 60 分に増やすことをお勧めします。例えば、AWS Python botocore SDK では、[botocore.config](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#) の `read_timeout`フィールドの値を少なくとも 3600 に変更します。  

```
client = boto3.client(
    "bedrock-runtime",
    region_name="us-east-1",
    config=Config(
        connect_timeout=3600,  # 60 minutes
        read_timeout=3600,     # 60 minutes
        retries={'max_attempts': 1}
    )
)
```

Amazon Nova モデルは、他のモデルと同様に Converse API に使用できます。modelId を次のいずれかに設定して、Amazon Nova モデルを使用します。


| Amazon Nova Micro | Amazon Nova Lite | Amazon Nova Pro | Amazon Nova Premier | 
| --- |--- |--- |--- |
| amazon.nova-micro-v1:0 | amazon.nova-lite-v1:0 | amazon.nova-pro-v1:0 | amazon.nova-premier-v1:0 | 

Converse API は、`inferenceConfig` 属性で JSON オブジェクトとして渡される次の推論パラメータをサポートします。
+ `maxTokens` – レスポンスで許可するトークンの最大数。
+ `stopSequences` – 停止シーケンスのリスト。停止シーケンスは、モデルがレスポンスの生成を停止する一連の文字です。
+ `temperature` – モデルがレスポンスの生成中に確率の高いオプションを選択する可能性。
+ `topP` — モデルが次のトークンに対して考慮する最も可能性の高い候補のパーセンテージ。

以下に示されるように、追加のパラメータ「topK」は `additionalModelRequestFields` 属性を介して渡すことができます。

boto3 で Converse API、Amazon Nova Lite で AWS SDK for Python を使用する方法の例を紹介します。

```
import boto3
import json

client = boto3.client("bedrock-runtime")

system = [{ "text": "You are a helpful assistant" }]

messages = [
    {"role": "user", "content": [{"text": "Write a short story about dragons"}]},
]

inf_params = {"maxTokens": 300, "topP": 0.1, "temperature": 0.3}

additionalModelRequestFields = {
    "inferenceConfig": {
         "topK": 20
    }
}

model_response = client.converse(
    modelId="us.amazon.nova-lite-v1:0", 
    messages=messages, 
    system=system, 
    inferenceConfig=inf_params,
    additionalModelRequestFields=additionalModelRequestFields
)

print("\n[Full Response]")
print(json.dumps(model_response, indent=2))

print("\n[Response Content Text]")
print(model_response["output"]["message"]["content"][0]["text"])
```

Converse API およびその活用方法の詳細については、「[https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html)」を参照してください。