Prompt / Istruzioni
I prompt indicano generalmente al LLM cosa fare dopo. Ad esempio, chiedere all’utente informazioni specifiche come nome, numero di assicurazione, indirizzo/contatti, ecc.
I prompt possono essere statici o dinamici.
Prompt statici / testo semplice
Esempio:
Saluta il chiamante e chiedi il suo nome.Nei prompt statici puoi accedere a tutte le variabili dello state usando {{variableName}}.
Esempio: Le seguenti informazioni sono memorizzate nello state:
{
companyName: "claiverly GmbH"
}Prompt che usa queste informazioni:
Saluta il chiamante con la seguente frase: "Benvenuto in {{companyName}}".Prompt dinamici / programmatici
A volte è necessario includere nel prompt informazioni dinamiche provenienti da una fonte esterna o dallo state e non statiche.
Esempio: La tua applicazione ha bisogno della data e dell’ora correnti. Gli LLM sono addestrati fino a un certo momento nel tempo e sono basati sul testo, quindi non conoscono la data e l’ora attuali. Se l’applicazione dipende da informazioni temporali, ad es. per la pianificazione di appuntamenti, il LLM può essere informato della data e dell’ora correnti.
Esempio di come fornire la data e l’ora correnti al LLM:
function prompt(params) {
return ({ "prompt": "Today is " + new Date().toLocaleString() });
}Esempio di come includere la temperatura attuale a Berlin Alexanderplatz tramite una richiesta webhook nel prompt:
function prompt(params) {
const temperature = webhook("https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t=temperature_2m", {}, {method: "get"});
return ({ "prompt": `The temperature in Berlin is right now: ${JSON.stringify(temperature)}`});
}Come scrivere prompt efficaci
Un buon prompt descrive chiaramente obiettivo, limiti e comportamento atteso dell’assistente. Inizia dal risultato desiderato e aggiungi solo il contesto e le regole necessari. Il prompting è iterativo: prova una prima versione con conversazioni realistiche, controlla il risultato e modifica l’istruzione che ha causato il comportamento indesiderato.
Struttura il prompt
Dividi il prompt in sezioni brevi e con titoli chiari: Ruolo, Obiettivo, Contesto, Regole della conversazione, Strumenti, Limiti, Fallback ed Esempi. In un bot multi-stage, mantieni ogni stage concentrato su uno stato della conversazione e indica chiaramente quando passare allo stage successivo.
## Ruolo
Sei il receptionist cordiale di uno studio dentistico.
## Obiettivo
Aiuta i chiamanti a prenotare, modificare o annullare un appuntamento.
## Regole
- Saluta il chiamante e chiedi come puoi aiutare.
- Fai una sola domanda alla volta.
- Usa un linguaggio naturale adatto a una conversazione telefonica.
- Ripeti data e ora e chiedi conferma prima di prenotare.
## Limiti
- Non inventare mai disponibilità, prezzi o dati dei pazienti.
- Se manca un’informazione, dichiaralo e proponi un trasferimento.Descrivi con precisione il comportamento
Evita istruzioni vaghe come “sii utile”. Descrivi cosa deve fare l’assistente, quando e con quale risultato. Definisci esplicitamente i casi di dati mancanti, nessun risultato, errore di uno strumento, disaccordo del chiamante o richiesta fuori ambito.
Quando il chiamante vuole annullare un appuntamento:
1. Chiedi la data e il nome del chiamante.
2. Cerca l’appuntamento corrispondente.
3. Ripeti i dettagli dell’appuntamento.
4. Chiedi: “Devo annullare questo appuntamento?”
5. Chiama `cancel_appointment` solo dopo la conferma.Progetta per le conversazioni vocali
- Mantieni le risposte brevi e fai una domanda alla volta.
- Usa frasi brevi ed evita liste lunghe, URL e termini tecnici.
- Conferma nomi, date, orari, indirizzi e importi importanti.
- Specifica come leggere numeri, date e indirizzi email.
- Definisci come gestire interruzioni e risposte incerte.
- Indica lingua, tono, formalità e terminologia.
Parla in italiano formale. Usa l’orario a 24 ore. Dopo aver ricevuto un numero di telefono,
ripetilo cifra per cifra e chiedi conferma. Se non hai capito, fai una breve domanda invece di
indovinare.Rendi prevedibili le chiamate agli strumenti
Descrivi lo scopo e il momento di ogni strumento, i prerequisiti, le conferme necessarie e il comportamento dopo un successo o un errore. Prompt e descrizione dello strumento non devono contraddirsi. Per bot single- o multi-stage, specifica quando chiamare strumenti, cambiare stage, inviare messaggi, prenotare o trasferire la chiamata. Consulta strumenti e funzioni.
Usa contesto ed esempi
Inserisci i fatti rilevanti nel prompt oppure fornisci tramite state, knowledge base o prompt dinamico. Indica quale fonte usare e cosa fare se l’informazione manca. Non inserire mai segreti o credenziali nei prompt. Gli esempi devono essere brevi, realistici, vari e coerenti con le regole di produzione.
Evita i problemi comuni
- Rimuovi o correggi le istruzioni contraddittorie.
- Dividi responsabilità non correlate tra più stage o assistenti.
- Definisci fallback per dati mancanti, errori, silenzio e trasferimenti.
- Elimina le regole che non influenzano il risultato.
- Specifica lunghezza, formato, lingua e tono.
- Indica all’assistente di chiedere chiarimenti invece di indovinare.
Testa e migliora in modo sistematico
Definisci prima i criteri di successo. Testa casi normali, interruzioni, risposte ambigue, dati mancanti, errori degli strumenti e trasferimenti. Esamina trascrizioni e chiamate di funzione e modifica una sola parte alla volta. La documentazione sul debugging spiega come controllare state, stack, funzioni e webhook.