Verwendung der Converse-API
Eine Methode zum Aufrufen der Amazon-Nova-Verständnismodelle (Amazon Nova Micro, Lite, Pro und Premier) ist die Verwendung der Converse-API. Die zuvor besprochenen Komponenten werden unter Beibehaltung eines einheitlichen Schemas über alle Modellanbieter hinweg verwendet. Dieser Ansatz bietet eine praktische Möglichkeit, portablere Anwendungen zu implementieren, indem eine konsistente API genutzt wird, wodurch bestehende Anwendungen, die andere Modelle verwenden, einfacher auf die Nova-Modelle portiert werden können. Die Converse-API unterstützt die folgenden Modell-Features:
-
Converse: Einfache Multi-Turn-Konversationen mit gepufferten (im Gegensatz zu gestreamten) Antworten werden unterstützt
-
ConverseStream: Multi-Turn-Konversationen mit einer gestreamten Antwort für eine inkrementellere Generierung und eine interaktivere Atmosphäre
-
System-Prompts: Systemanweisungen wie Personas oder Antwortrichtlinien
-
Dokumenten-Chat: Interaktion und Abfragen von Dokumenten oder Dokumentensammlungen
-
Vision: Bild- und Videoeingänge
-
Verwendung des Tools: Funktionsaufruf zur Unterstützung verschiedener externer Tools
-
Verwendung von Streaming-Tools: Kombination von Tool-Nutzung und Echtzeit-Generierungs-Streaming
-
Integritätsschutz: verhindern unangemessene oder schädliche Inhalte
Wichtig
Der Timeout-Zeitraum für Inferenzaufrufe an Amazon Nova beträgt 60 Minuten. Standardmäßig wird bei AWS-SDK-Clients die Zeitüberschreitung nach 1 Minute erreicht. Wir empfehlen, dass Sie das Lese-Timeout Ihres AWS-SDK-Clients auf mindestens 60 Minuten erhöhen. Ändern Sie beispielsweise im SDK von AWS Python Botocore den Wert des Felds read_timeout in botocore.config
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} ) )
Sie können Amazon-Nova-Modelle mit der Converse-API wie jedes andere Modell verwenden. Stellen Sie die modelId auf eine der folgenden Optionen ein, um die Amazon-Nova-Modelle zu verwenden.
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 |
Die Converse-API unterstützt die folgenden Inferenzparameter, die als JSON-Objekt unter dem inferenceConfig-Attribut übergeben werden:
-
maxTokens– Die maximale Anzahl von Token, die in der generierten Antwort zulässig sind. -
stopSequences– Eine Liste von Stoppsequenzen. Eine Stoppsequenz ist eine Folge von Zeichen, die bewirkt, dass das Modell die Generierung der Antwort stoppt. -
temperature– Die Wahrscheinlichkeit, dass das Modell beim Generieren einer Antwortvariablen Optionen mit höherer Wahrscheinlichkeit auswählt. -
topP– Der Prozentsatz der wahrscheinlichsten Kandidaten, die das Modell für das nächste Token in Betracht zieht.
Der zusätzliche Parameter „topK“ kann über das additionalModelRequestFields Attribut übergeben werden, wie unten gezeigt.
Hier ist ein Beispiel für die Verwendung der Converse-API mit boto3, dem AWS-SDK für Python mit Amazon Nova Lite:
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"])
Weitere Informationen zur Converse-API und wie Sie sie nutzen können, finden Sie unter Führen einer Konversation mit den Converse-API-Operationen.