Converse API の使用 - Amazon Nova

Converse API の使用

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.configread_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 およびその活用方法の詳細については、「Converse API オペレーションで会話を実行する」を参照してください。