Prompt Engineering – i Pattern

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

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