Les embeddings multimodaux dans AlloyDB pour PostgreSQL vous permettent de représenter du texte, des images et des vidéos dans un espace vectoriel partagé pour la recherche sémantique cross-modale et la génération augmentée par récupération (RAG). Vous pouvez générer des embeddings pour du texte et pour des images ou des segments vidéo dans Cloud Storage en appelant un modèle multimodal Gemini Enterprise Agent Platform compatible (par exemple, le modèle multimodalembedding@001) à partir de SQL. Pour obtenir la liste des modèles disponibles, consultez Modèles compatibles.
Pour en savoir plus sur les concepts d'IA générative et les embeddings vectoriels dans AlloyDB, consultez Que sont les embeddings ?.
Avant de commencer
Avant d'utiliser les embeddings multimodaux, procédez comme suit :
- Vérifiez que l'extension
google_ml_integrationest installée. - Vérifiez que l'option
google_ml_integration.enable_model_supportest définie suron. - Intégrez-le à Agent Platform.
- Accédez aux données dans Cloud Storage pour générer des embeddings multimodaux.
Intégrer Agent Platform et installer l'extension
- Configurer l'accès des utilisateurs aux modèles Agent Platform
- Vérifiez que la dernière version de
google_ml_integrationest installée.Pour vérifier la version installée, exécutez la commande suivante :
SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration'; extversion ------------ 1.5.2 (1 row)
Si l'extension n'est pas installée ou si la version installée est antérieure à la version 1.5.2, mettez à jour l'extension.
CREATE EXTENSION IF NOT EXISTS google_ml_integration; ALTER EXTENSION google_ml_integration UPDATE;
Si vous rencontrez des problèmes lors de l'exécution des commandes précédentes ou si l'extension n'est pas mise à jour vers la version 1.5.2 après l'exécution des commandes précédentes, contactez l'assistanceGoogle Cloud .
Pour utiliser la fonctionnalité du moteur de requêtes AlloyDB AI, définissez l'option
google_ml_integration.enable_ai_query_enginesuron.SQL
- Activez le moteur de requête IA pour la session en cours.
SET google_ml_integration.enable_ai_query_engine = on;
- Activez des fonctionnalités pour une base de données spécifique lors de plusieurs sessions.
ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_ai_query_engine = 'on';
- Activez le moteur de requête IA pour un utilisateur spécifique, pour toutes les sessions et bases de données.
ALTER ROLE postgres SET google_ml_integration.enable_ai_query_engine = 'on';
Console
Pour modifier la valeur de l'indicateur de base de données
google_ml_integration.enable_ai_query_engine, suivez les étapes de la section Configurer les indicateurs de base de données d'une instance.gcloud
Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.
Vous pouvez modifier la valeur de l'indicateur
google_ml_integration.enable_ai_query_engine. Pour en savoir plus, consultez Configurer les indicateurs de base de données d'une instance.gcloud alloydb instances update INSTANCE_ID \ --database-flags google_ml_integration.enable_ai_query_engine=on \ --region=REGION_ID \ --cluster=CLUSTER_ID \ --project=PROJECT_ID
- Activez le moteur de requête IA pour la session en cours.
Accéder aux données dans Cloud Storage pour générer des embeddings multimodaux
- Pour générer des embeddings multimodaux, consultez le contenu dans Cloud Storage à l'aide d'un URI
gs://. - Accédez au contenu Cloud Storage via l'agent de service Agent Platform de votre projet actuel. Par défaut, l'agent de service Agent Platform est déjà autorisé à accéder au bucket du même projet. Pour en savoir plus, consultez l'index des rôles et autorisations IAM.
Pour accéder aux données d'un bucket Cloud Storage dans un autre projet Google Cloud , exécutez la commande gcloud CLI suivante pour attribuer le rôle Lecteur des objets Storage (
roles/storage.objectViewer) à l'agent de service Agent Platform de votre projet AlloyDB.gcloud projects add-iam-policy-binding <ANOTHER_PROJECT_ID> \ --member="serviceAccount:service-<PROJECT_ID>@gcp-sa-aiplatform.iam.gserviceaccount.com" \ --role="roles/storage.objectViewer"Pour en savoir plus, consultez Définir et gérer des stratégies IAM sur des buckets.
Pour générer des embeddings multimodaux, sélectionnez l'un des schémas suivants.
Générer des embeddings multimodaux
Pour générer des embeddings textuels pour un point de terminaison de modèle multimodalembedding@001, exécutez l'instruction suivante :
SELECT
ai.text_embedding(
model_id => 'multimodalembedding@001',
content => 'TEXT');
Remplacez TEXT par le texte pour lequel générer l'embedding.
Pour générer des embeddings d'image pour un point de terminaison de modèle multimodalembedding@001 enregistré où le type MIME de l'image est image/jpeg par défaut, exécutez l'instruction suivante :
SELECT
ai.image_embedding(
model_id => 'multimodalembedding@001',
image => 'IMAGE_PATH_OR_TEXT',
mimetype => 'MIMETYPE');
Remplacez les éléments suivants :
IMAGE_PATH_OR_TEXTpar l'URI Cloud Storage de l'image, par exemplegs://my-bucket/embeddings/flowers.jpeg, ou la chaîne base64 de l'image.MIMETYPEpar le type MIME de l'image, par exempleimage/jpeg. Pour obtenir la liste complète des types MIME compatibles, consultez l'API Multimodal Embeddings.
Pour générer des embeddings vidéo pour un point de terminaison de modèle multimodalembedding@001 enregistré, exécutez l'instruction suivante :
SELECT
ai.video_embedding(
model_id => 'multimodalembedding@001',
video => 'VIDEO_URI');
Remplacez VIDEO_URI par l'URI Cloud Storage de la vidéo cible, par exemple gs://my-bucket/embeddings/supermarket-video.mp4, ou par la chaîne base64 de la vidéo.
Il s'agit de tableaux bidimensionnels auxquels vous pouvez accéder en utilisant une syntaxe de type my_array[0][5].
Pour en savoir plus, consultez Tableaux.