Crea un SuperPrompt per la conversione del linguaggio naturale in SQL per OpenAI.

Crea uno strumento super efficiente per la conversione del linguaggio naturale in SQL per OpenAI.

Una delle cose che è cambiata di più nei mesi recenti, da quando c’è stata l’esplosione di ChatGPT, è l’emergere di modelli di lingua massicci e grandi in grado di imparare ad eseguire compiti con solo due o tre esempi. Utilizzeremo questa capacità per creare un prompt che consente ai modelli di OpenAI di generare comandi SQL da linguaggio naturale.

Questo articolo fa parte di un corso gratuito sui modelli di lingua massicci disponibile su GitHub.

Immagine generata dall'autore usando Dall-E2.

In questo articolo vedremo come creare un prompt in modo che i modelli GPT di OpenAI possano svolgere compiti NL2SQL. Cioè, tradurre richieste dell’utente in linguaggio naturale in comandi SQL che recupereranno i dati richiesti.

Per fare ciò, inizieremo da un articolo dell’Università dell’Ohio: ‘How to Prompt LLMs for Text-to-SQL: A Study in Zero-shot, Single-domain, and Cross-domain Settings.‘ Modificheremo ciò che abbiamo già visto nel secondo articolo del corso sui modelli di lingua massicci.

Struttura del Prompt.

Il prompt sarà composto da quattro sezioni:

  • Struttura della tabella con esempi del suo contenuto.
  • Istruzioni per guidare il modello sulla generazione di SQL.
  • Esempi corretti di SQL, noti come campioni con poche istruzioni.
  • Domanda dell’utente.

Il prompt che creeremo è infatti il più completo, includendo diversi esempi con riferimenti incrociati tra tabelle.

Non è sempre necessario fornire esempi SQL al Modello; se la tabella è semplice e abbiamo fornito informazioni sufficienti, il modello sarà in grado di generare SQL corretto solo dalla struttura del database.

Tuttavia, questi esempi ci permettono anche di influenzare lo stile e il formato in cui vogliamo che venga restituito il SQL.

La Struttura delle Tabelle:

create table employees(        ID_Usr INT primary key,        name VARCHAR);    /*3 esempi di righe    select * from employees limit 3;    ID_Usr    name    1344      George…