使用 Converse API - Amazon Nova

使用 Converse API

調用 Amazon Nova 理解模型 (Amazon Nova Micro、Lite、Pro 和 Premier) 的其中一種方法是透過 Converse API。在模型提供者之間維持一致的結構描述的同時,會使用先前討論的元件。此方法提供了一種便利的方式,透過利用一致的 API 實作更多可攜式應用程式,讓使用其他模型的現有應用程式能夠更輕鬆地移植到 Nova 模型。Converse API 支援下列模型功能:

  • 對話:支援使用緩衝 (而不是串流) 回應的基本多回合對話

  • 對話串流:具有串流回應的多回合對話,以實現更多增量生成和更多互動感

  • 系統提示詞:系統指示,例如角色或回應指導方針

  • 文件聊天:與文件或文件集合互動並查詢

  • 視覺:影像和影片輸入

  • 工具使用:函數呼叫以支援各種外部工具

  • 串流工具使用:結合工具使用和即時生成串流

  • 護欄機制:防止不當或有害的內容

重要

對 Amazon Nova 的推理呼叫逾時時間為 60 分鐘。根據預設,AWS SDK 用戶端會在 1 分鐘後逾時。建議您將 AWS SDK 用戶端的讀取逾時時間增加到至少 60 分鐘。例如,在 AWS Python botocore SDK 中,將 botocore.config 中的 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} ) )

您可以像任何其他模型一樣,搭配 Converse API 使用 Amazon Nova 模型。將 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 屬性傳遞,如下所示。

以下是如何搭配適用於 Python 的 AWS SDK boto3 與 Amazon Nova Lite 使用 Converse API 的範例:

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 作業執行對話