Explorer le schéma Azure OpenAI
En incorporant Azure OpenAI dans votre base de données PostgreSQL, vous pouvez créer des applications hautement évolutives basées sur l’IA. Cette intégration vous permet d’utiliser le langage SQL familier et la flexibilité de PostgreSQL pour créer des solutions intelligentes au sein de votre couche de base de données. Qu'il s'agisse du traitement du langage naturel, des systèmes de recommandation ou de la génération de contenu, Azure OpenAI donne à vos applications les moyens de se développer.
Le azure_openai schéma installé par l’extension azure_ai vous permet de vous connecter et d’interagir avec une instance azure OpenAI Service. Ce schéma permet une intégration transparente avec le service Azure OpenAI, ce qui vous permet de créer des applications IA génératives puissantes directement à partir de votre base de données PostgreSQL.
Créer des embeddings
Avec le azure_openai schéma, vous pouvez appeler la create_embeddings() fonction, qui génère des incorporations vectorielles à partir de la couche de base de données. Ces incorporations permettent de stocker, d’indexer et d’interroger efficacement des vecteurs à haute dimension. La fonction peut prendre deux formes :
azure_openai.create_embeddings(text,text,integer,boolean,integer,integer)azure_openai.create_embeddings(text,text[],integer,integer,boolean,integer,integer)
Le tableau suivant décrit les arguments attendus par la fonction :
| Raisonnement | Type | Par défaut | Descriptif |
|---|---|---|---|
| nom_de_déploiement | text |
Nom du déploiement du modèle d’incorporation dans Azure OpenAI Studio. Ce nom fait généralement référence à un déploiement du text-embeddings-ada-002 modèle. |
|
| saisie | text ou text[] |
Texte d’entrée (ou tableau de texte d’entrée) pour lequel des incorporations vectorielles sont créées. | |
| taille de lot | integer |
100 |
S’applique uniquement lorsque l’argument input est un tableau de text valeurs. batch_size spécifie le nombre d’enregistrements du tableau à traiter simultanément. |
| timeout_ms | integer |
NULL::integer |
Délai d’expiration en millisecondes après lequel l’opération est arrêtée. |
| throw_on_error | boolean |
true |
Indicateur indiquant si la fonction doit, en cas d’erreur, lever une exception entraînant une restauration des transactions d’enveloppement. |
| max_attempts | integer |
1 |
Nombre de nouvelles tentatives d’appel à Azure OpenAI Service en cas d’échec. |
| retry_delay_ms | integer |
1000 |
Durée d’attente, en millisecondes, avant une nouvelle tentative d’appel du point de terminaison de service Azure OpenAI. |
Configurer une connexion à Azure OpenAI
Avant d’utiliser les azure_openai fonctions, configurez l’extension avec votre point de terminaison et votre clé de service Azure OpenAI. La commande suivante représente les requêtes que vous utiliseriez pour définir le point de terminaison et la clé nécessaires pour vous connecter à votre instance Azure OpenAI :
SELECT azure_ai.set_setting('azure_openai.endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_openai.subscription_key', '{api-key}');
Vous pouvez ensuite utiliser la get_setting() fonction pour vérifier les paramètres écrits dans la azure_ai.settings table de configuration :
SELECT azure_ai.get_setting('azure_openai.endpoint');
SELECT azure_ai.get_setting('azure_openai.subscription_key');
Activer la prise en charge des vecteurs avec l’extension vectorielle
La azure_openai.create_embeddings() fonction dans l’extension azure_ai vous permet de générer des incorporations pour le texte d’entrée. Pour permettre aux vecteurs générés d’être stockés avec le reste de vos données dans la base de données, vous devez également installer l’extension vector en suivant les instructions de la documentation activer la prise en charge des vecteurs dans votre base de données.
Vous pouvez installer l’extension vector à l’aide de la commande CREATE EXTENSION .
CREATE EXTENSION IF NOT EXISTS vector;
Générer et stocker des vecteurs
Dans l’application de recommandation de propriétés de location basée sur l’IA que vous développez pour Margie's Travel, vous devez ajouter une nouvelle colonne à la table cible en utilisant le type de données vector pour stocker les embeddings dans cette table après l'ajout de la prise en charge des vecteurs dans la base de données. Les vecteurs sont activés sur la listings table pour autoriser les fonctionnalités de recherche sémantique lors de l’exécution de requêtes pour rechercher des propriétés disponibles. Le text-embedding-ada-002 modèle produit des vecteurs avec 1 536 dimensions. Vous devez donc spécifier 1536 la taille du vecteur.
ALTER TABLE listings
ADD COLUMN description_vector vector(1536);
La table listings est maintenant prête à stocker des incorporations. À l’aide de la fonction azure_openai.create_embeddings(), vous créez des vecteurs pour le champ description et vous les insérez dans la colonne description_vector nouvellement créée dans la table listings.
UPDATE listings
SET description_vector = azure_openai.create_embeddings('{your-deployment-name}', description);
Chaque incorporation est un vecteur de nombres à virgule flottante, de sorte que la distance entre deux incorporations dans l’espace vectoriel est corrélée avec la similarité sémantique entre deux entrées au format d’origine.