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
- Richiedi l'accesso per utilizzare gli operatori SQL con il linguaggio naturale e attendi di ricevere la conferma dell'attivazione prima di seguire le istruzioni riportate in questa pagina.
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
Registrare un endpoint del modello con la gestione degli endpoint del modello
Classificare e assegnare un punteggio ai risultati di ricerca per le RAG