

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
<a name="using-converse-api"></a>

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.

**Topics**
+ [Struttura delle richieste](#converse-api-request-structure)
+ [Utilizzo delle istruzioni di sistema](#converse-api-system-prompt)
+ [Parametri di inferenza](#converse-api-inference-params)
+ [Usare il ragionamento](#converse-api-reasoning)

## Struttura delle richieste
<a name="converse-api-request-structure"></a>
+ **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
<a name="converse-api-system-prompt"></a>

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
<a name="converse-api-inference-params"></a>

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
<a name="converse-api-reasoning"></a>

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`: `low``medium`, o`high`. 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.