Le basi del prompting
Per interrogare un LLM, scrivi un'istruzione completa come se stessi dando indicazioni a un collega che non conosce né il tuo progetto né le tue abitudini: il compito preciso, il contesto utile, i dati da trattare chiaramente separati e il formato di risposta atteso. Puoi inviarla tramite un'interfaccia di chat, dalla riga di comando o tramite l'API. Il modello non indovina né l'intenzione né la forma: tutto ciò che non è scritto verrà improvvisato.
Questa guida risponde innanzitutto alla domanda del titolo, poi illustra nel dettaglio la struttura di un prompt, gli errori che fanno perdere più tempo, le tecniche che funzionano su quasi tutti i modelli e ciò che cambia con un modello locale di piccole dimensioni. I principi si basano sulla documentazione ufficiale di prompt engineering di Anthropic e su quella di Ollama.
#Come interrogare un LLM: tre modi, una regola
Un modello linguistico continua un testo. Ciò che produce dipende quindi quasi interamente da ciò che gli dai. La documentazione di Anthropic formula una regola d'oro utile per qualsiasi modello: mostra il tuo prompt a un collega che non conosce il compito e chiedigli di eseguirlo; se non sa come procedere, anche il modello sarà nella stessa situazione. Raccomanda di chiedere esplicitamente ciò che si vuole, compreso il livello di impegno, anziché aspettarsi che il modello lo deduca da un'istruzione vaga. Questa regola vale tanto per un modello da 8 miliardi di parametri sul tuo computer quanto per un modello di punta. I parametri, la quantizzazione o il modello scelto contano, ma un prompt vago compromette qualsiasi modello.
#Tre modi per inviare una domanda a un modello locale
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
- Interfaccia di chat
- Open WebUI, LM Studio, Jan: scrivi, il modello risponde e la cronologia viene conservata. Il modo più semplice per iniziare.
- Linea di comando
- ollama run suivi du nom du modèle ouvre une session interactive dans le terminal. Pratique pour des essais rapides.
- API
- Un programma invia una richiesta HTTP al server locale e riceve la risposta in formato JSON. È la modalità usata dagli script e dalle automazioni.
Il messaggio con ruolo system definisce il quadro permanente, mentre il messaggio con ruolo user contiene la richiesta. La guida sui prompt di sistema spiega nel dettaglio cosa inserirvi. Qualunque sia la strada scelta, la qualità della risposta dipende dal contenuto del messaggio.
#Anatomia di un buon prompt: ruolo, compito, contesto, formato
Molte guide individuano quattro elementi: il ruolo, il compito, il contesto e il formato. Non è una norma, ma un espediente mnemonico che riprende le raccomandazioni della documentazione: essere precisi, fornire il contesto, strutturare, stabilire il formato e, se necessario, un ruolo. La documentazione di Anthropic osserva che un ruolo espresso in una sola frase nel messaggio di sistema orienta già il tono e il comportamento.
- Ruolo
- Una frase che assegna un ruolo al modello: «Sei un rigoroso correttore di testi in francese». Il ruolo determina il registro, non l'intelligenza.
- Compito
- Il verbo d'azione, il più preciso possibile: «Riassumi in cinque punti elenco basati sui fatti, senza aggettivi» è meglio di «Riassumi».
- Contesto
- I dati da elaborare e il motivo della richiesta. Spiegare il perché di un vincolo aiuta il modello a generalizzarlo correttamente.
- Formato
- Lunghezza, struttura, lingua, tono. Senza queste precisazioni, il modello sceglie da solo.
I tag che delimitano il contratto nell'esempio sopra non sono decorativi: la documentazione indica che i tag XML aiutano il modello a distinguere senza ambiguità le istruzioni, il contesto, gli esempi e gli input variabili. Scegli nomi coerenti e descrittivi e usa lo stesso delimitatore da un prompt all'altro.
#Gli errori che fanno perdere più tempo
| Errore | Sintomo | Correzione |
|---|---|---|
| Istruzioni in parole chiave (« riassunto contratto rischi ») | Il modello non capisce se è una domanda o un comando | Scrivere una frase completa con un verbo |
| Dati mescolati alle istruzioni | Il modello elabora parte delle tue istruzioni come contenuto | Racchiudere i dati tra tag |
| Aspettative implicite | Lunghezza, lingua o tono inaspettati | Scrivere la lunghezza, la lingua e il tono |
| Solo divieti («non usare Markdown») | Il modello lo fa comunque | Formulare ciò che si vuole: «rispondi in paragrafi discorsivi» |
| Prompt lungo senza struttura | Istruzioni ignorate | Numerare i passi, separare i blocchi |
| Vincolo senza motivazione | Applicazione maldestra | Spiegare perché: « il testo sarà letto ad alta voce » |
Nella penultima riga, la documentazione di Anthropic raccomanda di dire al modello cosa deve fare anziché cosa non deve fare e propone come esempio di sostituire «non usare Markdown» con una descrizione della forma desiderata: paragrafi di prosa scorrevole. Nell'ultima, raccomanda di spiegare il motivo di un'istruzione: il modello ne ricava una regola generale anziché un divieto letterale.
#Le tecniche che funzionano su quasi tutti i modelli
#Fornire esempi
Gli esempi, secondo la documentazione di Anthropic, sono uno dei metodi più affidabili per orientare il formato, il tono e la struttura. Da tre a cinque esempi danno generalmente i migliori risultati, a condizione che siano pertinenti, vari (inclusi i casi limite) e delimitati da tag per non essere interpretati come istruzioni. È particolarmente efficace per classificare, estrarre o riformattare.
#Chiedere di ragionare
Su un problema logico, un calcolo o del codice, chiedere al modello di elencare i passaggi prima di arrivare alla conclusione migliora spesso il risultato, a costo di una risposta più lunga. Alcuni modelli locali lo fanno da soli: la documentazione di Ollama spiega che i modelli di ragionamento restituiscono un campo 'thinking' separato dalla risposta finale, che puoi leggere, mostrare o nascondere. Per gli altri, una frase basta: « Spiega il tuo ragionamento passo dopo passo, poi fornisci la risposta finale ».
#Posizionare un documento lungo
La documentazione di Anthropic consiglia, per input superiori a 20.000 token, di posizionare i documenti lunghi all'inizio del prompt, prima della domanda, e di scrivere la domanda alla fine: secondo i suoi test, ciò può migliorare la qualità delle risposte fino al 30%, soprattutto con input che contengono più documenti. Questo risultato deriva da test sui modelli Claude: verificalo sul tuo modello locale con i tuoi testi.
#Far verificare la risposta
Chiedi al modello di citare, per ogni affermazione, il passaggio del testo fornito che la giustifica, oppure di scrivere «non verificato» se non ne trova uno. Questa istruzione non elimina le allucinazioni, ma rende gli errori individuabili. La guida sulle allucinazioni ne illustra in dettaglio i limiti.
#Un caso concreto: da una consegna vaga a un prompt utilizzabile
Prendi una richiesta tipica: incolli un resoconto di riunione e scrivi «fai un riassunto». Il modello non sa a chi è destinato il riassunto, quante righe ti aspetti, se deve elencare decisioni o attività e in quale lingua rispondere. Produce un testo generico di lunghezza arbitraria, che correggerai a mano.
| Elemento | Versione vaga | Versione più precisa |
|---|---|---|
| Compito | Fai un riassunto | Riassumi questo rapporto in cinque punti elenco |
| Destinatario | Non specificato | Per un direttore che non era presente |
| Contenuto atteso | Non specificato | Decisioni prese, poi azioni con responsabile e data |
| Formato | Libero | Elenco a punti, una frase per punto, massimo 20 parole |
| Garde-fou | Nessuno | Se manca una data o un responsabile, scrivere «non specificato» invece di inventare l'informazione mancante |
L'ultima riga è la più utile con un modello locale: dare al modello un modo esplicito per rispondere quando manca un'informazione riduce le invenzioni. Ogni aggiunta richiede solo una frase e, nel complesso, trasforma un risultato da rielaborare in un risultato utilizzabile. Ripeti la prova su tre resoconti diversi prima di fissare il tuo prompt: un prompt che funziona solo su un esempio è un prompt fragile. Conserva poi la tua versione migliore in un file di testo: riutilizzata così com'è, ti farà risparmiare più tempo di qualsiasi accorgimento di formulazione e ti permetterà di confrontare due modelli con la stessa istruzione.
#Imporre un formato di output
Quando la risposta deve essere letta da un programma, una semplice frase come « rispondi in JSON » non basta sempre. Ollama offre output strutturati: passi uno schema JSON nel campo format della richiesta e la risposta è vincolata a rispettarlo. La documentazione raccomanda di fornire anche lo schema nel prompt per ancorare la risposta, di abbassare la temperatura (ad esempio a 0) per risultati più deterministici e di definire lo schema con Pydantic o Zod per riutilizzarlo nella validazione. Gli output strutturati funzionano anche tramite l'API compatibile con OpenAI con response_format. Non sono disponibili per i modelli cloud di Ollama.
#Iterare senza ripartire da zero
Una risposta imperfetta si corregge meglio con un'istruzione mirata che con un nuovo prompt. Di' cosa non va e cosa ti aspetti: «rifai in tre punti elenco di massimo dodici parole ciascuno», «tono più diretto, senza formule di cortesia», «aggiungi i tre rischi più concreti». Se il risultato peggiora man mano che la conversazione prosegue, spesso è perché la cronologia ha riempito la finestra di contesto: ricomincia con un riassunto.
#Ciò che cambia con un modello locale
- Istruzioni più esplicite
- Un modello di piccole dimensioni riesce meno bene a ricostruire ciò che lasci implicito. Scrivi tutto, anche ciò che ti sembra ovvio.
- Contesto troncato per impostazione predefinita
- Con meno di 24 GiB di VRAM, Ollama parte da un contesto di circa 4.000 token: un testo lungo incollato può essere troncato. Aumenta la finestra di contesto prima di attribuire il problema al prompt.
- Modelli di ragionamento
- Pensano prima di rispondere: la risposta arriva più tardi e consuma token di riflessione.
- Francese più fragile
- I piccoli modelli commettono più errori di concordanza. Aggiungi un'istruzione di revisione o scegli un modello più grande.
- Temperatura
- Un'impostazione bassa (da 0 a 0,3) va bene per l'estrazione e il JSON, un'impostazione più alta per la redazione. Vedi la guida sui parametri.
#Promemoria prima di inviare un prompt
- Una frase, un verbo
- L'attività è formulata come un'istruzione completa, con un verbo d'azione preciso.
- Dati separati
- Il testo da elaborare è racchiuso tra tag, mai mescolato alle istruzioni.
- Formato scritto
- Lunghezza, struttura, lingua e tono sono indicati.
- Esito esplicito
- Il modello sa cosa rispondere quando manca l'informazione.
- Uno o due esempi
- Per un'estrazione o una classificazione, un esempio vale dieci spiegazioni.
- Finestra verificata
- Il prompt e la risposta attesa rientrano nel contesto allocato.
Come interrogare un LLM in modo efficace?+
Un prompt più lungo dà risposte migliori?+
Serve dire « sei un esperto » nel prompt?+
Come ottenere una risposta in JSON affidabile con un modello locale?+
Perché il mio modello locale ignora una parte del mio prompt?+
Qual è la differenza tra prompt di sistema e prompt utente?+
#Per approfondire
- Padroneggiare i system prompt
- Temperatura, top-p, top-k: i parametri
- Comprendere la finestra di contesto
- Function calling e output JSON con Ollama
- Allucinazioni: come limitarle
- La tua prima conversazione locale
- Fonte: Anthropic, buone pratiche di prompt engineering
- Fonte: Ollama, output strutturato
- Fonte: Ollama, modelli di ragionamento
- Fonte: Ollama, lunghezza del contesto
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.