Il Prompt Engineering, progettazione dei comandi, è un insieme di tecniche e pattern per dialogare al meglio con l’intelligenza artificiale generativa.
L’IA generativa è in grado di aiutare nello svolgimento di molte attività, ma per ottenere i risultati voluti bisogna saper formulare le proprie richieste, i propri comandi.
Nel mio corso Prompt Engineering – usare al meglio l’IA generativa insegno le tecniche più efficaci per dialogare con sistemi come ChatGPT e strumenti analoghi.
Queste tecniche si basano essenzialmente su una serie di “pattern” emersi durante gli ultimi anni, che ci permettono di esprimere le nostre richieste per guidare l’IA generativa a formulare risposte appropriate e a svolgere i compiti che ci interessano.
Quello che segue è un Catalogo dei pattern di prompt engineering che a oggi si sono dimostrati particolarmente efficaci per dialogare con i Large Language Model (LLM).
Qui di seguito sono riportati per ogni pattern lo scopo e la formulazione di base. Nel corso Prompt Engineering – usare al meglio l’IA generativa ogni pattern viene analizzato e applicato in casi concreti, con esempi ed esercitazioni.
Attenzione: l’intelligenza artificiale generativa è in continua evoluzione, sia in termini di strumenti che di caratteristiche. In modo analogo, anche questo Catalogo dei pattern di prompt engineering è in continua evoluzione.
Catalogo dei Pattern di Prompt Engineering
- Persona
- Question Refinement (Perfezionamento della domanda)
- Cognitive Verifier (Verificatore di conoscenza)
- Audience Persona (Persona a cui rivolgersi)
- Alternative Approaches (Approcci alternativi)
- Flipped Interaction (Interazione al contrario)
- Few Shot Example (Esempi da seguire)
- Chain of Thought – Reflection (Filo logico – riflessione)
- Game Play (Creazione di un gioco)
- Template
- Context Manager (Gestore del contesto)
- Recipe (Ricetta)
- Meta Language Creation (Creazione metalinguaggio)
- ReAct
- Fact Check List (Controllo dei fatti)
- Output Automater (Automazione dell’output)
- Visualization Generator (Generatore di visualizzazioni)
- Requirements Simulator (Simulatore di requisiti)
- Specification Disambiguation (Disambiguazione delle specifiche)
- Change Request Simulation (Simulazione richiesta di cambiamento)
Persona
Scopo: chiedere al LLM di assumere un ruolo (es. età, sesso, professione, nazionalità)
Formulazione di base: Agisci come Persona X
Question Refinement (Perfezionamento della domanda)
Scopo: chiedere al LLM di aiutarci a formulare meglio le domande
Formulazione di base: Nell’ambito X, suggerisci una versione migliore della domanda da utilizzare
Cognitive Verifier (Verificatore di conoscenza)
Scopo: chiedere al LLM di trovare domande correlate alla nostra, quindi di usare le risposte parziali per l’esito finale
Formulazione di base: Quando ti viene posta una domanda, genera una serie di domande aggiuntive che potrebbero aiutare a rispondere in modo più accurato alla domanda
Audience Persona (Persona a cui rivolgersi)
Scopo: chiedere al LLM di rivolgersi a interlocutori con un ruolo particolare
Formulazione di base: Fornisci risultati che la persona X possa comprendere
Alternative Approaches (Approcci alternativi)
Scopo: chiedere al LLM di suggerire approcci alternativi
Formulazione di base: Nell’ambito X, se esistono modi alternativi per ottenere la stessa cosa, elenca gli approcci alternativi migliori
Flipped Interaction (Interazione al contrario)
Scopo: chiedere al LLM di invertire i ruoli formulando le domande all’utente
Formulazione di base: Vorrei che mi facessi delle domande per raggiungere l’obiettivo X
Few Shot Example (Esempi da seguire)
Scopo: chiedere al LLM di basare le proprie risposte su esempi forniti dall’utente
Formulazione di base: Ti fornisco alcuni esempi con Input e Output, dammi l’output per il prossimo Input
Chain of Thought – Reflection (Filo logico – riflessione)
Scopo: chiedere al LLM di fornire il ragionamento su cui basa le risposte
Formulazione di base: Quando generi una risposta, spiega il ragionamento che l’ha prodotta
Game Play (Creazione di un gioco)
Scopo: chiedere al LLM di creare un gioco per ottenere un obiettivo
Formulazione di base: Creami un gioco a proposito di X
Template
Scopo: chiedere al LLM di formattare l’output in un modo specifico
Formulazione di base: Produci la tua risposta nella forma di questa template
Context Manager (Gestore del contesto)
Scopo: chiedere al LLM di considerare (o di non considerare) aspetti specifici di contesto
Formulazione di base: Nell’ambito X, considera Y, ignora Z
Recipe (Ricetta)
Scopo: chiedere al LLM di definire step intermedi per ottenere un risultato
Formulazione di base: Forniscimi la sequenza di passi necessari per ottenere l’obiettivo X
Meta Language Creation (Creazione metalinguaggio)
Scopo: fornire al LLM il significato di espressioni che useremo nel dialogo
Formulazione di base: Quando ti dico X intendo Y
ReAct
Scopo: indurre il LLM a usare altri strumenti per ottenere un risultato (reasoning & acting)
Formulazione di base: Formula i passi necessari per ottenere il risultato X e usa gli strumenti adeguati per ogni passo
Fact Check List (Controllo dei fatti)
Scopo: chiedere al LLM di specificare un elenco di “fatti” verificabili su cui basa le sue risposte
Formulazione di base: Elenca una serie di fatti verificabili su cui basi la tua risposta
Output Automater (Automazione dell’output)
Scopo: chiedere al LLM di generare uno script automatizzato
Formulazione di base: Quando produci un output che ha almeno un passaggio da eseguire, produci un modulo eseguibile che automatizzerà questi passaggi
Visualization Generator (Generatore di visualizzazioni)
Scopo: chiedere al LLM di visualizzare immagini
Formulazione di base: Visualizza un’immagine con queste caratteristiche
Requirements Simulator (Simulatore di requisiti)
Scopo: chiedere al LLM di valutare l’adeguatezza di un insieme di requisiti per un sistema
Formulazione di base: Dati questi requisiti, valuta se questo comportamento del sistema è accettabile
Specification Disambiguation (Disambiguazione delle specifiche)
Scopo: chiedere al LLM di evidenziare ambiguità nelle specifiche di requisiti
Formulazione di base: Date queste specifiche di requisiti, valuta se sono presenti ambiguità o effetti non desiderati
Change Request Simulation (Simulazione richiesta di cambiamento)
Scopo: chiedere al LLM di valutare l’impatto di una richiesta di cambiamento
Formulazione di base: Date queste caratteristiche del sistema, che impatto avrebbe un cambiamento di questo tipo