Utilizzare il linguaggio naturale negli operatori SQL

Questa pagina descrive come utilizzare il linguaggio naturale negli operatori SQL utilizzando le funzioni di operatore fornite dal motore di query AI di AlloyDB. Puoi utilizzare gli operatori ai.if, Unisci con ai.if, ai.score e ai.generate per combinare il linguaggio naturale con le query SQL.

Per utilizzare le istruzioni riportate in questa pagina, devi conoscere AlloyDB per PostgreSQL e avere familiarità con i concetti di IA generativa.

AlloyDB riserva lo schema ai e tenta di crearlo quando installi l'estensione google_ml_integration. Se la creazione dello schema non va a buon fine, utilizza le funzioni con lo stesso nome nello schema google_ml.

Prima di iniziare

Utilizzare filtri e join nelle query

Per valutare se è soddisfatta una condizione indicata in linguaggio naturale, utilizza l'operatore ai.if/google_ml.if . La funzione restituisce un valore booleano true o false e restituisce NULL se l'output non viene rilevato chiaramente.

La seguente query di esempio mostra come trovare le recensioni dei ristoranti che menzionano il parcheggio.

    SELECT review AS talks_about_parking
    FROM user_reviews
    WHERE
      ai.if(
        prompt => 'the following review talks about parking at the restaurant. review: ' || review);

Esegui un'operazione di unione

Per eseguire un'operazione di join, utilizza l'operatore ai.if/google_ml.if con join. La seguente query di esempio trova il numero di recensioni che menzionano ogni elemento del menu del ristorante.

    SELECT item_name, COUNT(*)
    FROM menu_items JOIN user_reviews
      ON ai.if(
        prompt => 'Does the following user review talk about the menu item mentioned ? review: ' || user_reviews.review_text || ' menu item: ' || item_name)
    GROUP BY item_name;

Assegnare un punteggio ai risultati della query

Per ordinare un elenco di elementi in una query in base a criteri semantici espressi in linguaggio naturale, utilizza l'operatore ai.rank/google_ml.rank

La seguente query di esempio restituisce le 20 recensioni più positive dei ristoranti. Ordina la risposta in base ai criteri impostati nella chiamata della funzione ai.rank/google_ml.rank.

    SELECT review AS top20
    FROM user_reviews
    ORDER BY ai.rank('Score the following review according to these rules: score of 8 to 10 if the review says the food is excellent, 4 to 7 if the review says the food is and 1 to 3 if the review says the food is not good. Here is the review: ' || review)
    LIMIT 20;

Generare testo per gli operatori SQL con linguaggio naturale

Per generare testo in base ai prompt specificati in linguaggio naturale, utilizza la funzione ai.generate/google_ml.generate.

La seguente query genera un riepilogo di ogni recensione dell'utente in base ai criteri indicati nella chiamata della funzione ai.generate.

    SELECT
      ai.generate(
        prompt => 'Summarize the review in 20 words or less. Review: ' || review_text) AS review_summary
    FROM user_reviews;

Passaggi successivi