Cette page explique comment utiliser le langage naturel dans les opérateurs SQL à l'aide des fonctions d'opérateur fournies par le moteur de requêtes d'IA AlloyDB. Vous pouvez utiliser les opérateurs ai.if
, Join with ai.if
, ai.score
et ai.generate
pour combiner le langage naturel avec des requêtes SQL.
Pour suivre les instructions de cette page, vous devez connaître AlloyDB pour PostgreSQL et les concepts d'IA générative.
AlloyDB réserve le schéma ai
et tente de le créer lorsque vous installez l'extension google_ml_integration
. Si la création du schéma échoue, utilisez les fonctions du même nom dans le schéma google_ml
.
Avant de commencer
- Demandez l'accès à l'utilisation d'opérateurs SQL avec le langage naturel et attendez de recevoir la confirmation d'activation avant de suivre les instructions de cette page.
Utiliser des filtres et des jointures dans vos requêtes
Pour évaluer si une condition exprimée en langage naturel est remplie, utilisez l'opérateur ai.if
/google_ml.if
. La fonction renvoie une valeur booléenne "true" ou "false", et renvoie NULL si la sortie n'est pas clairement détectée.
L'exemple de requête suivant montre comment trouver les avis sur les restaurants qui mentionnent un parking.
SELECT review AS talks_about_parking
FROM user_reviews
WHERE
ai.if(
prompt => 'the following review talks about parking at the restaurant. review: ' || review);
Effectuer une opération de jointure
Pour effectuer une opération de jointure, utilisez l'opérateur ai.if
/google_ml.if
avec la jointure. L'exemple de requête suivant permet de trouver le nombre d'avis qui mentionnent chaque élément du menu du restaurant.
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;
Évaluer les résultats de vos requêtes
Pour trier une liste d'éléments dans une requête en fonction d'un critère sémantique exprimé en langage naturel, utilisez l'opérateur ai.rank/google_ml.rank
.
L'exemple de requête suivant permet d'obtenir les 20 commentaires les plus positifs sur un restaurant. Il trie la réponse en fonction des critères définis dans l'appel de fonction 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;
Générer du texte pour les opérateurs SQL avec le langage naturel
Pour générer du texte à partir d'invites spécifiées en langage naturel, utilisez la fonction ai.generate
/google_ml.generate
.
La requête suivante génère un résumé de chaque avis utilisateur en fonction des critères indiqués dans l'appel de fonction ai.generate
.
SELECT
ai.generate(
prompt => 'Summarize the review in 20 words or less. Review: ' || review_text) AS review_summary
FROM user_reviews;
Étape suivante
Enregistrer un point de terminaison de modèle avec la gestion des points de terminaison de modèle
Classer et évaluer les résultats de recherche pour la génération augmentée de récupération