Padronizzare l’Ingegneria dei Prompt per Sfruttare il Potenziale di ChatGPT
Standardize Prompt Engineering to Harness ChatGPT Potential.
Esplora le migliori pratiche e migliora i tuoi prompts per ottenere risultati migliori
L’ingegneria dei prompts è diventata rapidamente parte delle nostre vite, proprio come una brezza, grazie a ChatGPT e ad altri grandi modelli di linguaggio. Sebbene non sia un campo completamente nuovo, al momento sta vivendo grande popolarità. Detto ciò, penso che sia il momento perfetto per migliorare le tue competenze e diventare più bravo nell’ingegneria dei prompts.
Se ti stai chiedendo di cosa si tratta l’ingegneria dei prompts, chiediamolo a ChatGPT!
Secondo i dati di Google Trends, “ingegneria dei prompts” ha raggiunto il picco di interesse di ricerca nei mesi scorsi. Gli utenti che hanno cercato “ingegneria dei prompts” erano interessati a argomenti di follow-up come “corso”, “apprendimento” e “stipendio” 🤑. C’è un’impennata nel numero di query per “corsi di ingegneria dei prompts”.
- Oltre i Numeri Il Ruolo Cruciale delle Soft Skills nell’Analisi dei Dati
- Esplorazione delle tendenze e modelli di conflitto Analisi dei dati ACLED di Manipur
- Accelerare il tempo per ottenere informazioni aziendali con la connessione diretta di Amazon SageMaker Data Wrangler a Snowflake

Indipendentemente dal fatto che tu stia utilizzando l’ingegneria dei prompts per semplici query quotidiane, per trovare ispirazioni per ricette o per pianificare il tuo prossimo viaggio utilizzando l’interfaccia utente web (ad esempio ChatGPT UI), o se sei coinvolto nello sviluppo di applicazioni che accedono alle API di grandi modelli di linguaggio (ad esempio ChatGPT API), migliorare le tue abilità di scrittura di prompts migliorerà significativamente la qualità delle risposte che ottieni. Capire l’ingegneria dei prompts fornisce anche utili informazioni sulle modalità di funzionamento dei grandi modelli di linguaggio e sulle loro capacità e limitazioni.
In questo articolo, approfondirò le conoscenze acquisite e fornirò alcuni esempi per mostrare i concetti chiave. Iniziamo! 💬 🤖
Iniziare con l’ingegneria dei prompts
L’ingegneria dei prompts svolge un ruolo importante nel trarre il massimo vantaggio dai grandi modelli di linguaggio (LLM). Quando i prompts sono scritti bene, le risposte sono più accurate, pertinenti e utili.
Ecco alcune linee guida di buon senso nella scrittura di prompts:
- 🔖 Sii chiaro e specifico: Comunica chiaramente cosa ti aspetti dal modello e fornisci istruzioni specifiche.
- 🔖 Includi contenuti essenziali e stile di output desiderato: Includi tutte le informazioni necessarie e specifica il formato o lo stile in cui desideri che sia la risposta.
- 🔖 Fornisci esempi ogni volta che possibile: Includere esempi può aiutare il modello a comprendere la struttura della risposta desiderata.
Ci sono anche alcune importanti considerazioni da tenere a mente:
- 📍 Le risposte possono contenere errori
- 📍 Le risposte allo stesso prompt possono variare
- 📍 La conoscenza del modello si basa sul momento in cui sono stati raccolti i dati di formazione (ad esempio, la data di interruzione della conoscenza di ChatGPT è settembre 2021)
Cinque pattern di prompt super potenti
Adesso parleremo di cinque pattern di prompt molto importanti che puoi seguire durante l’interazione con LLMs.
1. Pattern di persona
Utilizzando il pattern di persona, puoi chiedere a ChatGPT di agire come una specifica persona e svolgere un compito specifico.

Puoi anche invertire questo modello e chiedere a ChatGPT di assumere che tu sia Persona X. Ad esempio: “Crea un piano di apprendimento della lingua tedesca per me e assumi che io abbia una laurea in Linguistica”.
2. Modello di affinamento della domanda
Utilizzando il modello di affinamento della domanda, puoi richiedere a ChatGPT di generare domande di follow-up e utilizzare le risposte per quelle domande per rispondere con precisione alla domanda iniziale.

Utilizzando questo metodo, possiamo ottenere informazioni su quali fattori ChatGPT considera quando compone una risposta. Possiamo anche fornire ulteriore contesto oltre a quello incluso nella richiesta iniziale.
3. Modello di template
Possiamo fornire un template e istruire ChatGPT a generare una risposta seguendo il template. Per dimostrare, fornirò diversi paragrafi dalla pagina Wikipedia sui Large Language Model. Utilizzando quei paragrafi, ChatGPT genererà cinque domande e risposte seguendo il modello.

4. Zero-shot prompting
Come sappiamo, i LLM possono seguire le istruzioni e sono in grado di apprendere i modelli dal prompt e seguirli nella risposta. Ecco un esempio di attività per il zero-shot learning, in cui possiamo insegnare come classificare classi che il modello non ha incontrato prima. Prendiamo un esempio dal dataset delle recensioni dei clienti di Disneyland e chiediamo al modello di determinare il sentimento di una recensione specifica.
Come puoi vedere, la risposta è “positiva”.
5. Chain-of-thought prompting
Piuttosto che fornire solo la risposta finale, specialmente per i problemi matematici, la catena di pensiero mira a fornire spiegazioni passo passo.
Nell’esempio seguente, ho posto una domanda trabocchetto a ChatGPT, e inizialmente ha commesso un errore nella sua risposta. Tuttavia, quando ho chiesto a ChatGPT di fornire la sua piena ragionamento che porta alla risposta, è stato in grado di fornire la soluzione corretta.
Questo approccio è anche un ottimo esempio di comprensione del modo in cui i grandi modelli di linguaggio generano il testo prevedendo ciascuna parola successiva.
Come puoi vedere, la risposta è errata. Dovrebbero essere 9 gummies e non 8. Ora risolveremo questo migliorando il nostro prompt e assicurandoci che ChatGPT segua un modello in cui possa fare più valutazioni.
Come puoi vedere, quando ChatGPT ha bisogno di scrivere una spiegazione ragionata, trova la risposta corretta.
Con le risposte aperte, vediamo solo la destinazione; con la catena di pensieri, comprendiamo il viaggio. 🤓
Utilizzo dell’API ChatGPT per la creazione di applicazioni dati
1. Riassumere il testo ed estrarre informazioni
Riassumere le informazioni può essere una tecnica che risparmia tempo, specialmente quando si devono estrarre punti chiave o dettagli specifici. Con l’API ChatGPT, possiamo sfruttare le sue capacità per generare riassunti per grandi volumi di testo.
Prendendo l’esempio del dataset delle recensioni di Disneyland, composto da 42.000 recensioni, possiamo semplificare il processo di valutazione utilizzando i riassunti. Anche se lo dimostrerò con una sola recensione, l’approccio può essere facilmente scalato per gestire quantità di testo più grandi.
Per utilizzare l’API ChatGPT, dovrai effettuare il login nel tuo account OpenAI e generare la tua chiave API navigando nella sezione “Visualizza chiavi API” dall’angolo in alto a destra. Una volta creata la tua chiave API, dovrai conservarla in un posto sicuro e non visualizzarla.
# Installa openai pip install openaiimport osimport openai# Conserva in sicurezza la tua chiave APIOPENAI_API_KEY = "sk-XXXXXXXXXXXXXXXXXXXXXXXX"openai.api_key = OPENAI_API_KEY
Ora genereremo una funzione di supporto che prenderà il nostro prompt e restituirà una completamento per quel prompt.
# Funzione di supporto per restituire la completamento per un promptdef get_completion(prompt, model="gpt-3.5-turbo"): messages = [{"role": "user", "content": prompt}] response = openai.ChatCompletion.create( model=model, messages=messages, temperature=0, # grado di casualità della risposta ) return response.choices[0].message["content"]
# Inserisci una recensionereview = """Sono stato a Disney World, Disneyland Anaheim e Tokyo Disneyland ma penso che Disneyland Hong Kong sia veramente troppo piccolo per essere chiamato Disneyland. Ha poche attrazioni. I souvenir, il cibo e persino i biglietti d'ingresso sono leggermente più cari che negli altri Disneyland. In pratica, questo parco è buono solo per i bambini piccoli e le persone che non sono mai state a Disney. Le scelte alimentari erano accettabili, principalmente fast food e non troppo costose. L'acqua in bottiglia, tuttavia, era MOLTO costosa, ma hanno fontane d'acqua in giro per riempire le bottiglie vuote. La parata era abbastanza buona. Era affollato, ma il problema era che le persone erano così maleducate, spingevano e si tagliavano in fila per le attrazioni, i negozi di souvenir, i chioschi di cibo. Dimenticate di cercare di vedere uno degli spettacoli, è una lotta per prendere posto. Non capisco come Disney possa lasciare che ciò accada, era di gran lunga la proprietà Disney meno gestita bene."""
# Scrivi il prompt e genera la risposta utilizzando la funzione di supportoprompt = f""" Riassumi la recensione qui sotto in 30 parole. Review: ```{review}``` """response = get_completion(prompt)print(response)
Disneyland Hong Kong è troppo piccolo con poche attrazioni. Cibo e souvenir costosi. Buono per bambini piccoli e visitatori di prima volta. Affollato con persone maleducate e mal gestito.
Il riassunto è abbastanza buono e intorno alle 30 parole come richiesto nel prompt. Se vogliamo, possiamo anche concentrarci su un elemento specifico nei riassunti, ad esempio il prezzo e il valore.
prompt = f""" Riassumi la recensione qui sotto in 10 parole e concentrandoti sul prezzo e sul valore. Review: ```{review}''' """response = get_completion(prompt)print(response)
Disneyland costoso, piccolo e affollato con poche attrazioni.
Generando un riassunto mirato, abbiamo trasformato la nostra recensione iniziale in una dichiarazione più significativa e incisiva. 🍄
Ora, andiamo un passo oltre ed estraiamo informazioni rilevanti nel formato JSON per una più facile elaborazione e integrazione con altri sistemi. Definiremo un modello per le chiavi nel prompt.
prompt = f""" Identifica i seguenti elementi dalla recensione: - Sentimento (positivo o negativo) - Quale parco Disney è stato recensito - Il revisore esprime delusione? (vero o falso) - Il revisore esprime felicità? (vero o falso) Formatta la tua risposta come un oggetto JSON con "Sentimento", "Parco", "Rabbia" e "Felicità" come chiavi. Formatta il valore di Rabbia e Felicità come booleano. Mantieni le risposte brevi. Review: ```{review}``` """response = get_completion(prompt)print(response)
{ “Sentiment”: “negativo”, “Parco”: “Hong Kong Disneyland”, “Rabbia”: true, “Felicità”: false }
È abbastanza incredibile!
2. Tradurre il testo
Come potete immaginare, se possiamo creare riassunti, possiamo anche tradurre il testo in diverse lingue. Sviluppando l’esempio precedente, richiederemo ora che vengano generati riassunti in inglese, italiano e tedesco.
prompt = f""" Il tuo compito è riassumere la seguente recensione. Riassumi la recensione qui sotto in al massimo 10 parole. Stampa il riassunto in inglese, italiano e tedesco. Recensione: ```{review}``` """response = get_completion(prompt)print(response)
Riassunto: Inglese: Disneyland Hong Kong is small with few attractions and expensive. Italiano: Disneyland Hong Kong è piccolo con poche attrazioni e costoso. Tedesco: Disneyland Hong Kong ist klein mit wenigen Attraktionen und teuer.
3. Espandere il testo
L’espansione implica l’utilizzo di un pezzo di testo più piccolo e sfrutta le capacità di un grande modello di linguaggio per generare un pezzo di testo più esteso. Ad esempio, se inseriamo una recensione di un cliente, possiamo produrre una dettagliata email di risposta e affrontare le preoccupazioni sollevate. Possiamo fornire linee guida per il formato e il contenuto.
prompt = f""" Il tuo compito è scrivere una email di risposta al cliente. Dato l'email del cliente delimitata da ```. Genera una risposta per ringraziare il cliente per la sua recensione. Linee guida: - Se il sentimento è positivo o neutro, ringrazia il cliente per il loro feedback e si riferisca ai dettagli specifici che hanno menzionato. - Se il sentimento è negativo, scusa sinceramente per la loro scarsa esperienza, prendi la responsabilità e fornisci informazioni di contatto per il follow-up. - Esprimi apprezzamento per il loro tempo e la loro recensione. Si riferisca a punti specifici per costruire una relazione. - Per esperienze negative, scusa sinceramente e accetta la responsabilità. \ Offri informazioni di contatto del servizio clienti. - Cerca di avere un tono conciso ma riflessivo. - Concludi professionalmente come "agente di servizio clienti AI". Recensione del cliente: ```{review}``` """ response = get_completion(prompt)print(response)
Gentile cliente, Grazie per aver dedicato del tempo a condividere la tua esperienza presso Disneyland Hong Kong. Apprezziamo il tuo feedback e ci dispiace che la tua visita non abbia soddisfatto le tue aspettative. Ci scusiamo per eventuali inconvenienti causati dal numero limitato di giostre e attrazioni, nonché dai prezzi più elevati per souvenir, cibo e biglietti. Siamo consapevoli del fatto che questi fattori possono influire sulla tua esperienza complessiva nel parco. Siamo lieti di sapere che hai trovato accettabili le scelte alimentari e che il corteo ti sia piaciuto. Apprezziamo anche il tuo feedback riguardo alla folla e al comportamento maleducato di alcuni ospiti. Prendiamo seriamente queste preoccupazioni e lavoreremo per migliorare la gestione del parco al fine di garantire un’esperienza più piacevole per tutti gli ospiti. Se hai ulteriori preoccupazioni o desideri fornire ulteriori feedback, non esitare a contattare il nostro team di assistenza clienti al [inserire le informazioni di contatto]. Apprezziamo il tuo feedback e speriamo di avere l’opportunità di fornirti una migliore esperienza in futuro. Grazie ancora per la tua recensione. Cordiali saluti, Agente di servizio clienti AI
Ottimo lavoro, agente di servizio clienti AI! ✉️
Conclusione
In questo articolo, abbiamo esplorato le migliori pratiche dell’ingegneria delle prompt utilizzando sia l’interfaccia utente web che l’API. Abbiamo discusso diversi modelli di prompt efficaci, tra cui i modelli di persona, la raffinazione delle domande, i modelli, lo zero-shot e il prompting di catena di pensiero. Inoltre, abbiamo approfondito l’utilizzo dell’API ChatGPT generando la nostra chiave segreta ed esplorando le sue capacità nella sintesi del testo, nella traduzione e nell’espansione.
Spero che questo tutorial ti ispiri ad utilizzare i grandi modelli di linguaggio per aumentare la tua creatività e produttività. Sono sicuro che può aiutarti a generare idee, acquisire nuove conoscenze, risolvere problemi complessi – ed migliorare il tuo lavoro quotidiano a molti livelli. Le possibilità sono immense! 🤖✨
🍓 Se ti piace leggere articoli come questo e desideri supportare la mia scrittura, considera di diventare un membro di Nisoo ! I membri di Nisoo hanno accesso completo agli articoli di tutti gli scrittori e se usi il mio link di riferimento , supporterai direttamente la mia scrittura.
🍓 Se sei già un membro e sei interessato a leggere i miei articoli, puoi iscriverti per ricevere una notifica o seguirmi su Nisoo . Fammelo sapere se hai domande o suggerimenti.
Risorse aggiuntive che consiglio dopo questo articolo:
Prima di scrivere questo articolo, ho completato due corsi online incentrati sul padroneggiare l’ingegneria dei prompt. Il primo corso, ChatGPT Prompt Engineering per sviluppatori fornito da DeepLearning.AI è una grande risorsa, specialmente se sei uno sviluppatore e stai lavorando con le API. Il secondo corso, Prompt Engineering per ChatGPT offerto da Coursera, è davvero utile se stai scrivendo prompt sull’interfaccia utente web. La maggior parte delle conoscenze in questo articolo proviene da queste due preziose risorse, le raccomando vivamente se sei interessato!
Riferimenti
- Google trends per l’ingegneria dei prompt
- Dataset di recensioni dei clienti di Disneyland, Licenza: CC0: Public Domain
- Corso ChatGPT Prompt Engineering per sviluppatori fornito da DeepLearning.AI
- Prompt Engineering per ChatGPT offerto da Coursera
- Foto dell’intestazione di Léonard Cotte su Unsplash
- Tutte le altre immagini sono dell’autore