Introduzione alla chiamata di funzioni OpenAI

Introduzione funzioni OpenAI

Niente più output di dati non strutturati; trasforma le completamenti di ChatGPT in JSON strutturato!

Carta del titolo creata dall'autore

Alcuni mesi fa, OpenAI ha rilasciato la loro API al pubblico generale, il che ha entusiasmato molti sviluppatori che volevano utilizzare gli output di ChatGPT in modo sistematico. Così entusiasmante come è stato, è stato anche un po’ un incubo dato che noi programmatori tendiamo a lavorare nel campo dei tipi di dati strutturati. Ci piacciono gli interi, i booleani e le liste. La stringa non strutturata può essere scomoda da gestire e, per ottenere risultati coerenti, al programmatore viene richiesto di affrontare il suo peggior incubo: sviluppare un’espressione regolare (Regex) per un parsing corretto. 🤢

Certo, l’ingegneria del prompt può aiutare abbastanza in questo caso, ma non è ancora perfetta. Ad esempio, se si vuole far analizzare a ChatGPT il sentiment di una recensione cinematografica per positività o negatività, si potrebbe strutturare un prompt che assomiglia a questo:

prompt = f'''Effettua un'analisi del sentiment sulla seguente recensione di un film:{MOVIE_REVIEW_TEXT}Restituisci la tua risposta come una singola parola: o "Positivo" o "Negativo".'''

Questo prompt funziona abbastanza bene, ma i risultati non sono esattamente coerenti. Ad esempio, ho visto ChatGPT produrre output che assomigliano ai seguenti esempi per quanto riguarda l’esempio del sentiment del film:

  • Positivo
  • positivo
  • Positivo.

Questo potrebbe non sembrare un grosso problema, ma nel mondo della programmazione, non sono uguali. Di nuovo, è possibile aggirare un esempio più semplice come questo con un po’ di Regex, ma oltre al fatto che la maggior parte delle persone (me compreso) è terribile nello scrivere espressioni regolari, ci sono semplicemente alcuni casi in cui perfino la Regex non riesce a interpretare correttamente le informazioni.

Come puoi immaginare, i programmatori speravano che OpenAI aggiungesse funzionalità per supportare output JSON strutturati, e OpenAI ha risposto con la chiamata di funzioni. La chiamata di funzioni è esattamente ciò che sembra: consente a ChatGPT di produrre argomenti che possono interagire con una funzione personalizzata in modo che venga utilizzato un tipo di dati strutturato. Sì, niente più ingegneria del prompt sofisticata e Regex per incrociare le dita e sperare di ottenere il risultato giusto. In questo…