View a markdown version of this page

Utilizzo dell’API Converse - Amazon Nova

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo dell’API Converse

L'API Converse fornisce un'interfaccia unificata per interagire con i modelli Amazon Nova. Riduce i dettagli specifici del modello e fornisce un modo coerente per gestire conversazioni a più turni, richieste di sistema e risposte in streaming su tutti i modelli Amazon Nova.

Struttura delle richieste

  • Conversazioni a turni multipli: mantieni il contesto tra più scambi

  • Istruzioni di sistema: istruzioni di sistema come personaggi o linee guida di risposta

  • Chat documentale: interagisci e interroga documenti o raccolte di documenti

  • Visione: elabora e analizza immagini e video

  • Utilizzo degli strumenti: consente ai modelli di utilizzare strumenti esterni e APIs

  • Guardrails: applica il filtraggio dei contenuti e i controlli di sicurezza

  • Ragionamento: pensiero esteso per la risoluzione di problemi complessi

Una richiesta API Converse di base include l'ID del modello e un elenco di messaggi:

import boto3 bedrock = boto3.client('bedrock-runtime', region_name='us-east-1') response = bedrock.converse( modelId='us.amazon.nova-2-lite-v1:0', messages=[ { 'role': 'user', 'content': [{'text': 'What is machine learning?'}] } ] ) content_list = response["output"]["message"]["content"] # Extract the first text block text = next((item["text"] for item in content_list if "text" in item), None) if text is not None: print(text)

Utilizzo delle istruzioni di sistema

I prompt di sistema forniscono contesto e istruzioni al modello:

import boto3 bedrock = boto3.client('bedrock-runtime', region_name='us-east-1') response = bedrock.converse( modelId='us.amazon.nova-2-lite-v1:0', system=[ {'text': 'You are a helpful AI assistant specializing in cloud computing.'} ], messages=[ { 'role': 'user', 'content': [{'text': 'Explain serverless computing.'}] } ] ) # Print the response text content_list = response["output"]["message"]["content"] text = next((item["text"] for item in content_list if "text" in item), None) if text is not None: print(text)

Parametri di inferenza

Controlla l'output del modello utilizzando i parametri di inferenza. Di seguito sono riportati i parametri di inferenza disponibili.

  • maxTokens (intero): numero massimo di token da generare (fino a 65.000). Se non specificato, il modello utilizza un valore predefinito dinamico basato sul contesto della richiesta.

  • temperature (float): controlla la casualità (0,0-1,0, impostazione predefinita 0,7). I valori più bassi rendono l'output più deterministico

  • topP (float): soglia di campionamento del nucleo (0-1, impostazione predefinita 0,9). I valori più bassi rendono l'output più mirato

  • stopSequences (array): sequenze di caratteri che interrompono la generazione quando vengono incontrate

Esempio:

import boto3 bedrock = boto3.client('bedrock-runtime', region_name='us-east-1') response = bedrock.converse( modelId='us.amazon.nova-2-lite-v1:0', messages=[ { 'role': 'user', 'content': [{'text': 'Write a short story.'}] } ], inferenceConfig={ 'maxTokens': 512, 'temperature': 0.7, 'topP': 0.9, 'stopSequences': ['END'] } ) content_list = response["output"]["message"]["content"] text = next((item["text"] for item in content_list if "text" in item), None) if text is not None: print(text)

Usare il ragionamento

Nova 2 Lite supporta il pensiero esteso per la risoluzione di problemi complessi. Abilita il ragionamento con. reasoningConfig

Per impostazione predefinita, il ragionamento è disabilitato per ottimizzare la velocità e i costi delle query semplici. Quando hai bisogno di andare oltre queste semplici attività, puoi abilitare il ragionamento. Nova 2 offre un controllo flessibile sulla profondità del ragionamento attraverso tre livelli di sforzo:

Sforzo basso () maxReasoningEffort: "low"

IDEALE PER: ATTIVITÀ CON MAGGIORE COMPLESSITÀ CHE RICHIEDONO UN PENSIERO STRUTTURATO. Ad esempio, è possibile utilizzarlo per suggerimenti di revisione e miglioramento del codice laddove il modello debba considerare attentamente la qualità del codice esistente, attività di analisi che richiedono un'attenta considerazione di più fattori o scenari di risoluzione dei problemi che traggono vantaggio da un approccio metodico. Lo sforzo ridotto è ideale per attività complesse in cui il ragionamento di base migliora la precisione senza richiedere una pianificazione approfondita in più fasi.

Sforzo medio () maxReasoningEffort: "medium"

IDEALE PER: ATTIVITÀ IN PIÙ FASI E FLUSSI DI LAVORO DI CODIFICA. Ad esempio, è possibile utilizzarlo per lo sviluppo e il debug di software in cui il modello deve comprendere la struttura del codice esistente prima di implementare le modifiche, la generazione di codice che richiede il coordinamento tra più file o componenti, calcoli in più fasi con interdipendenze o attività di pianificazione con più vincoli. Lo sforzo medio è ottimale per i flussi di lavoro agentici che coordinano più strumenti e richiedono che il modello mantenga il contesto in diverse operazioni sequenziali.

Sforzo elevato () maxReasoningEffort: "high"

IDEALE PER: RAGIONAMENTO MATEMATICO E RISOLUZIONE AVANZATA DEI PROBLEMI. Ad esempio, è possibile utilizzarlo per problemi e dimostrazioni matematiche avanzati che richiedono step-by-step verifiche rigorose, analisi scientifiche e attività di ricerca che richiedono indagini approfondite, progettazione di sistemi complessi con considerazioni architettoniche su più dimensioni o scenari decisionali critici con implicazioni significative. Un impegno elevato garantisce la massima precisione per le attività che richiedono un ragionamento sofisticato, un'attenta valutazione delle alternative e una convalida approfondita delle conclusioni.

Gli esempi seguenti mostrano diversi livelli di sforzo di ragionamento:

Low effort
import boto3 bedrock = boto3.client('bedrock-runtime', region_name='us-east-1') response = bedrock.converse( modelId='us.amazon.nova-2-lite-v1:0', system=[{"text": "You are a highly capable personal assistant"}], messages=[{ "role": "user", "content": [{"text": "Provide a meal plan for a gluten free family of 4."}] }], inferenceConfig={ "temperature": 0.7, "topP": 0.9, "maxTokens": 10000 }, additionalModelRequestFields={ "reasoningConfig": { "type": "enabled", "maxReasoningEffort": "low" } } )

Parametri di ragionamento:

Di seguito sono riportati i parametri di ragionamento

  • type: enabled o disabled (impostazione predefinita:disabled)

  • maxReasoningEffort: lowmedium, ohigh. Questo è necessario quando il ragionamento è abilitato.

Nota

Temperature, TopP e TopK non possono essere utilizzati con maxReasoningEffort set to. high Ciò causerà un errore.

La risposta include il contenuto del ragionamento:

{ "output": { "message": { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "[REDACTED]" } } }, { "text": "Based on the premises, we can conclude..." } ] } }, "stopReason": "end_turn" }
Nota

Con Amazon Nova 2, i contenuti di ragionamento vengono visualizzati come[REDACTED]. I token di ragionamento ti verranno comunque addebitati perché contribuiscono a migliorare la qualità dell'output. Includiamo ora questo campo nella struttura delle risposte per preservare la possibilità di esporre il contenuto del ragionamento in futuro. Stiamo lavorando attivamente con i clienti per determinare l'approccio migliore per far emergere il processo di ragionamento del modello.