Explorer les opérateurs sémantiques
L’extension azure_ai inclut un petit ensemble d’opérateurs sémantiques qui vous permettent d’utiliser des modèles IA génératifs directement dans SQL. Ces opérateurs vous aident à générer du texte, évaluer des instructions, extraire des informations structurées et classer des documents. Chaque opérateur appelle un modèle que vous avez configuré dans la azure_ai.settings table.
Les opérateurs sémantiques sont les suivants :
-
azure_ai.generate: génère du texte et peut retourner un JSON structuré lorsqu’un schéma est fourni. -
azure_ai.is_true: évalue une déclaration et indique si elle est susceptible d’être vraie. -
azure_ai.extract: extrait des champs ou des valeurs spécifiques du texte non structuré. -
azure_ai.rank: retourne une liste de documents classés par pertinence pour une requête donnée.
L’opérateur generate
azure_ai.generate envoie une invite à un modèle et retourne le texte généré. Si vous fournissez un schéma JSON, le modèle tente de retourner des données structurées conformes à ce schéma. Cette méthode est utile lorsque vous avez besoin d’une sortie consommée par la logique SQL suivante.
Exemple :
SELECT azure_ai.generate(
prompt => 'Summarize the following review: ' || review_text
)
FROM product_reviews;
Si un schéma est fourni, le résultat est retourné en tant que jsonb.
L’opérateur is_true
azure_ai.is_true évalue une instruction et retourne true, falseou NULL si le modèle ne peut pas déterminer la réponse. Cet opérateur est utile lorsque vous devez vérifier si un morceau de texte satisfait à une condition ou fait référence à un concept spécifique.
Exemple :
SELECT azure_ai.is_true(
'This review describes the product as durable: ' || review_text
) AS durability_claim
FROM product_reviews;
L’opérateur extract
azure_ai.extract identifie des champs spécifiques à l’intérieur d’un document. Vous spécifiez un tableau d’étiquettes et le modèle retourne un jsonb objet contenant les valeurs extraites. Cet opérateur est bien adapté à l’extraction de détails structurés à partir d’un texte plus long.
Exemple :
SELECT azure_ai.extract(
'The headphones have clear sound but the battery life is short.',
ARRAY['sound_quality', 'battery_life']
);
Le résultat est un document JSON contenant les champs demandés.
L’opérateur rank
azure_ai.rank retourne des documents classés par pertinence pour une requête. Vous fournissez le texte de la requête et un tableau de documents. L’opérateur retourne un ensemble de lignes qui inclut chaque document, son classement et un score. Cet ensemble de lignes est utile lorsque vous souhaitez que le modèle vous aide à déterminer quels éléments sont les plus pertinents pour la recherche d’un utilisateur.
Exemple :
SELECT *
FROM azure_ai.rank(
'Lightweight travel headphones',
ARRAY[
'These foldable headphones are easy to pack.',
'Battery life is average.',
'Sound quality is very detailed.'
]
);
L’opérateur retourne une ligne par document avec des informations de classement.
Paramétrage
Tous les opérateurs sémantiques s’appuient sur la configuration du modèle stockée dans azure_ai.settings. Avant d’appeler les opérateurs, vérifiez que vous définissez le point de terminaison et la clé du modèle que vous envisagez d’utiliser.
Exemple :
SELECT azure_ai.set_setting('azure_openai.endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_openai.api_key', '{api_key}');
Une fois les paramètres en place, les opérateurs sémantiques peuvent être utilisés dans les requêtes, vues ou procédures stockées SQL standard.
Takeaways
Les opérateurs sémantiques de l’extension azure_ai fournissent des fonctionnalités puissantes pour intégrer l’IA générative directement dans vos flux de travail SQL. En utilisant ces opérateurs, vous pouvez améliorer vos applications avec la génération de texte, l’évaluation de vérité, l’extraction d’informations et le classement des documents, dans le contexte familier d’une base de données PostgreSQL.