View a markdown version of this page

Configurazione dello strumento - 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à.

Configurazione dello strumento

Amazon Nova 2 Sonic supporta l'uso di strumenti (noto anche come chiamata di funzione), che consente al modello di richiedere informazioni o azioni esterne durante le conversazioni, come chiamate API, interrogazioni di database o funzioni di codice personalizzate. Ciò consente all'assistente vocale di eseguire azioni, recuperare informazioni e integrarsi con servizi esterni in base alle richieste degli utenti.

Nova 2 Sonic offre una chiamata asincrona degli strumenti, che consente all'intelligenza artificiale di continuare a conversare in modo naturale mentre gli strumenti funzionano in background, creando un'esperienza utente più fluida e reattiva.

Di seguito sono riportati i passaggi semplificati sull'utilizzo degli strumenti:

  1. Definizione degli strumenti: specifica gli strumenti disponibili con i relativi parametri nell'evento PromptStart

  2. L'utente parla: l'utente fa una richiesta che richiede uno strumento (ad esempio, «Che tempo fa a Seattle?»)

  3. Invocazione dello strumento: Nova 2 Sonic riconosce la necessità e invia un evento toolUse

  4. Esegui strumento: l'applicazione esegue lo strumento e restituisce risultati

  5. Generazione di risposte: Nova 2 Sonic incorpora i risultati nella sua risposta vocale

Il diagramma seguente illustra come funziona l'uso degli strumenti:

Definizione degli strumenti

Gli strumenti vengono definiti utilizzando uno schema JSON che ne descrive lo scopo, i parametri e gli input previsti.

Di seguito sono riportati i componenti e le spiegazioni della definizione degli strumenti:

  • Nome: identificatore univoco dello strumento (usa snake_case)

  • Descrizione: spiegazione chiara di cosa fa lo strumento; aiuta l'intelligenza artificiale a decidere quando utilizzarlo

  • InputSchema: schema JSON che definisce i parametri accettati dallo strumento

  • Proprietà: parametri individuali con tipi e descrizioni

  • Obbligatorio: matrice di nomi di parametri che devono essere forniti

Ecco una semplice definizione dello strumento meteorologico

{ "toolSpec": { "name": "get_weather", "description": "Get current weather information for a specific location", "inputSchema": { "json": { "type": "object", "properties": { "location": { "type": "string", "description": "City name or zip code" }, "units": { "type": "string", "enum": ["celsius", "fahrenheit"], "description": "Temperature units" } }, "required": ["location"] } } } }

La configurazione dello strumento viene passata a Nova 2 Sonic nell'promptStartevento insieme alle impostazioni di output audio e di testo:

{ "event": { "promptStart": { "promptName": "<prompt-id>", "textOutputConfiguration": { "mediaType": "text/plain" }, "audioOutputConfiguration": { "mediaType": "audio/lpcm", "sampleRateHertz": 16000, "sampleSizeBits": 16, "channelCount": 1, "voiceId": "matthew", "encoding": "base64", "audioType": "SPEECH" }, "toolUseOutputConfiguration": { "mediaType": "application/json" }, "toolConfiguration": { "tools": [ { "toolSpec": { "name": "get_weather", "description": "Get current weather information for a specific location", "inputSchema": { "json": { "type": "object", "properties": { "location": { "type": "string", "description": "City name or zip code" }, "units": { "type": "string", "enum": ["celsius", "fahrenheit"], "description": "Temperature units" } }, "required": ["location"] } } } } ], "toolChoice": { "auto": {} } } } } }

Parametri di scelta dello strumento

Nova 2 Sonic supporta tre parametri di scelta degli utensili per controllare quando e quali strumenti vengono utilizzati. Specificate il parametro ToolChoice nella configurazione dello strumento:

  • Automatico (impostazione predefinita): il modello decide se sono necessari utensili e, se necessario, può richiamare più strumenti. Fornisce la massima flessibilità.

  • Qualsiasi: assicura che almeno uno degli strumenti disponibili venga richiamato all'inizio della risposta, con il modello che seleziona quello più appropriato. Utile quando si dispone di più basi di conoscenza o strumenti e si desidera garantire che ne venga utilizzato uno.

  • Strumento: forza uno strumento con nome specifico a essere chiamato esattamente una volta all'inizio della risposta. Ad esempio, se specificate uno strumento della knowledge base, il modello lo interrogherà prima di rispondere, indipendentemente dal fatto che lo ritenga necessario.

Esempi di scelta degli strumenti

Auto (impostazione predefinita)

"toolChoice": {     "auto": {} }

Qualsiasi:

"toolChoice": { "any": {} }

Strumento specifico:

"toolChoice": { "tool": { "name": "get_weather" } }

Ricezione ed elaborazione degli eventi relativi all'utilizzo dello strumento

Quando Amazon Nova 2 Sonic determina che è necessario uno strumento, invia un toolUse evento contenente:

  1. toolUseID: identificatore univoco per la chiamata di questo strumento

  2. ToolName: il nome dello strumento da eseguire

  3. Contenuto: stringa JSON contenente i parametri estratti dalla richiesta dell'utente

  4. sessionID: identificatore della sessione corrente

  5. Ruolo: impostato su «TOOL» per gli eventi di utilizzo dello strumento

Esempio di evento di utilizzo dello strumento

{ "event": { "toolUse": { "completionId": "<completion-id>", "content": "{\"location\": \"Seattle\", \"units\": \"fahrenheit\"}", "contentId": "<content-id>", "promptName": "<prompt-id>", "role": "TOOL", "sessionId": "<session-id>", "toolName": "get_weather", "toolUseId": "<tool-use-id>" } } }

Fasi di elaborazione

  1. Ricevi l'evento ToolUse da Nova 2 Sonic

  2. Estrai il nome e i parametri dello strumento dall'evento

  3. Eseguite la logica dello strumento (chiamata API, interrogazione del database e così via)

  4. Restituisci il risultato utilizzando un evento ToolResult

Evento di esempio ToolResult

{ "event": { "toolResult": { "promptName": "<prompt-id>", "contentName": "<content-id>", "content": "{\"temperature\": 72, \"condition\": \"sunny\", \"humidity\": 45}" } } }

Best practice

  • Descrizioni chiare: scrivete descrizioni dettagliate degli strumenti per aiutare Nova 2 Sonic a capire quando utilizzare ogni strumento.

  • Convalida i parametri: convalida sempre i parametri dello strumento prima dell'esecuzione per evitare errori. Definite i parametri dello strumento utilizzando lo schema JSON appropriato con tipi di dati strutturati (come enumerazioni, numeri o valori booleani) anziché stringhe aperte, ove possibile.

  • Gestione degli errori: restituisce messaggi di errore significativi negli eventi ToolResult quando gli strumenti falliscono.

  • Esecuzione asincrona: sfrutta la chiamata asincrona agli strumenti per mantenere il flusso di conversazione.

  • Denominazione degli strumenti: utilizza nomi descrittivi e orientati all'azione (come get_weather, search_database, send_email).