Menu

Come scrivere un prompt: 6 parti con esempi

Un buon prompt è un breve incarico: un ruolo, un compito, il contesto che il modello non può indovinare, il materiale su cui lavorare, la forma della risposta e i limiti. Ogni parte evita un modo diverso in cui una risposta va storta.

Ogni prompt qui sotto è modificabile: cambialo, poi aprilo in ChatGPT, Claude o un'altra app di AI.

Un prompt è un incarico. Il modello legge solo quello che hai scritto, quindi ogni fatto di cui ha bisogno e ogni preferenza che hai devono essere sulla pagina. Quando una risposta arriva generica, la causa è quasi sempre qualcosa che il prompt ha tralasciato, non qualcosa che ha detto male.

La maggior parte dei prompt utili è costruita con le stesse sei parti. Il blocco qui sotto le ha tutte e sei. Disattiva le parti per vedere il prompt senza di loro, inserisci il tuo linguaggio, poi apri il risultato in ChatGPT o Claude e confronta.

Spiegare un messaggio di errore
Fill in
Parts
Sei un tutor di programmazione paziente per chi è al primo mese di programmazione.
Spiega cosa significa questo errore di Python e come correggerlo.
Sto seguendo un corso per principianti. Conosco variabili, stringhe, liste e cicli for. Non ho ancora studiato classi né eccezioni.
Il mio codice:age = 30 print("Age: " + age)L'errore:TypeError: can only concatenate str (not "int") to str
Rispondi in tre brevi parti con etichette in grassetto: cosa significa l'errore, perché il mio codice l'ha causato e il codice corretto.
Usa parole semplici e nessun concetto che non ho ancora studiato. Tieni l'intera risposta sotto le 120 parole.
Try it
Example replyReplies vary between models and runs.

Cosa significa: + può unire due stringhe o sommare due numeri, ma non può unire una stringa a un numero. Python non indovina quale delle due cose intendevi, quindi si ferma.

Perché il tuo codice l'ha causato: "Age: " è una stringa e age contiene il numero 30. La riga chiede a Python di incollarli insieme con +.

Il codice corretto: trasforma prima il numero in testo con str():

age = 30
print("Age: " + str(age))

Questo stampa Age: 30.

Le sei parti

Il ruolo dice al modello con quale voce e quale giudizio rispondere. "Un tutor paziente per principianti" e "un ingegnere senior che rivede codice di produzione" danno risposte molto diverse alla stessa domanda. Un ruolo è più utile quando implica un pubblico e uno standard; vedi role prompting per capire dove aiuta e dove no.

Il compito è la frase che dice cosa fare. Comincia con un verbo: spiega, riscrivi, confronta, elenca, correggi, riassumi. Se non riesci a scrivere il compito in una frase, probabilmente il prompt contiene due compiti, e uno dei due di solito riceve una risposta più scarna.

Il contesto è tutto ciò che il modello non può indovinare: chi sei, cosa sai già, a cosa serve il risultato e cosa hai già provato. Nell'esempio, "Non ho ancora studiato classi né eccezioni" è la riga che impedisce al modello di rispondere con try ed except.

L'input è il materiale su cui lavorare: il codice, l'email, la tabella, l'errore. Incollalo per intero. Un riassunto del tuo codice è una descrizione di ciò che pensi che faccia, e il bug di solito vive proprio nella differenza tra le due cose.

Il formato dice come deve essere la risposta: un elenco, una tabella, tre parti etichettate, un JSON, una sola riga. Senza, il modello sceglie una forma al posto tuo, e i modelli di chat tendono a sceglierne di lunghe. Output strutturato va oltre quando un programma deve leggere la risposta.

I vincoli sono i limiti: lunghezza, vocabolario, cose da evitare, cose che devono restare invariate. Un numero ("sotto le 120 parole") funziona meglio di un aggettivo ("breve"), perché "breve" significa cose diverse per lettori diversi, e il modello è uno di loro.

Vago o specifico

Ecco la stessa richiesta scritta in due modi. Passa da una scheda all'altra e confronta le risposte.

Scrivi una funzione che ordini una lista.
Try it
Example replyReplies vary between models and runs.

Ecco una semplice funzione di ordinamento in Python:

def sort_list(items):
    return sorted(items)

Puoi chiamarla così: sort_list([3, 1, 2]), che restituisce [1, 2, 3].

Il prompt vago ha ottenuto una risposta corretta a una domanda che nessuno aveva fatto. Ha dovuto indovinare il linguaggio, i dati, l'ordine e se si poteva modificare l'input, e ogni volta ha scelto il caso più comune. Il prompt specifico ha risposto in anticipo a tutte e quattro le cose, quindi non restava niente da indovinare.

Abitudini che migliorano i prompt

  • Di' il compito all'inizio, e di nuovo dopo un materiale lungo. In un prompt breve, comincia dal compito, così il contesto che segue si legge con uno scopo. Quando incolli un documento lungo, metti prima il documento e alla fine la domanda, ripetendo lì i vincoli principali, così l'istruzione sta accanto al punto in cui il modello inizia a scrivere.
  • Di' cosa fare, non solo cosa evitare. "Scrivi in un linguaggio semplice per un dodicenne" dà al modello un obiettivo. "Non essere troppo tecnico" esclude solo una direzione e lascia aperto il resto.
  • Separa le istruzioni dal materiale. Quando incolli un'email o un file, segna dove inizia e dove finisce, così il modello non scambia una frase al suo interno per un'istruzione. Delimitatori e tag XML illustra le opzioni.
  • Mostra un esempio dell'output quando il formato è insolito. Un esempio mostra la forma più in fretta di quanto un paragrafo la descriva. Questo è il few-shot prompting.
  • Lavora sul prompt, non nella chat. Se la prima risposta è sbagliata, trova il contesto o il vincolo mancante, correggi il prompt ed eseguilo di nuovo. Una lunga catena di correzioni funziona, ma ti lascia con un risultato e senza un prompt da riusare.

Una checklist prima di inviare

  1. Riesco a enunciare il compito in una frase che inizia con un verbo?
  2. Un estraneo saprebbe per chi è la risposta e cosa so già?
  3. Ho incollato il materiale vero, non una sua descrizione?
  4. Ho detto quanto deve essere lunga la risposta e che forma deve avere?
  5. C'è qualcosa che la risposta non deve cambiare o non deve usare?

Cinque sì non garantiscono una risposta perfetta, ma un no è il motivo più probabile di una risposta scadente.

Domande frequenti

Cosa rende buono un prompt per l'IA?

Un buon prompt enuncia il compito in una frase chiara, dà il contesto che il modello non può indovinare (chi sei, cosa sai già, a cosa serve il risultato), include il materiale su cui lavorare e dice come deve essere la risposta: lunghezza, struttura e tono. La maggior parte dei prompt deboli cade sul contesto e sul formato, non sulla formulazione.

Quanto deve essere lungo un prompt?

Quanto serve al lavoro e non di più. Una domanda di una riga va bene per una risposta di una riga. Un compito con un pubblico, un input e una forma di output precisi di solito richiede da quattro a otto frasi. La lunghezza che ripete tre volte la stessa istruzione non aiuta; quella che aggiunge il contesto mancante sì.

Devo essere gentile con ChatGPT o Claude?

Le formule di cortesia non aiutano né danneggiano più di tanto. Quello che cambia la risposta sono le informazioni: l'obiettivo, il pubblico, i vincoli e un esempio dell'output che vuoi. Scrivi come se stessi dando un incarico a un collega capace che non ha mai visto il tuo progetto.

Esiste un modello per scrivere prompt?

Un ordine affidabile è ruolo, compito, contesto, input, formato, vincoli. Non tutti i prompt hanno bisogno di tutte e sei le parti. Comincia dal compito, aggiungi il contesto che il modello non può indovinare, poi aggiungi formato e vincoli quando la prima risposta arriva troppo lunga, troppo vaga o nella forma sbagliata. Vedi template di prompt per versioni riutilizzabili con spazi da compilare.

Perché lo stesso prompt dà risposte diverse ogni volta?

I modelli di chat scelgono ogni parola successiva campionando da una distribuzione di probabilità, quindi due esecuzioni possono essere diverse. Un prompt più specifico restringe lo spazio delle buone risposte, e questo rende le esecuzioni più simili. L'impostazione della temperatura controlla quanta casualità usa il campionamento.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA