Gli embedding multimodali in AlloyDB per PostgreSQL ti consentono di rappresentare testo, immagini e video in uno spazio vettoriale condiviso per la ricerca semantica cross-modale e la retrieval-augmented generation (RAG). Puoi generare embedding per testo e
per segmenti di immagini o video in Cloud Storage chiamando un modello multimodale
Gemini Enterprise Agent Platform supportato, ad esempio il
modello multimodalembedding@001, da SQL. Per un elenco dei modelli disponibili, consulta
Modelli supportati.
Per scoprire di più sui concetti di AI generativa e sui vector embedding in AlloyDB, consulta Che cosa sono gli embedding.
Prima di iniziare
Prima di utilizzare gli embedding multimodali, completa i seguenti passaggi:
- Verifica che l'estensione
google_ml_integrationsia installata. - Verifica che il flag
google_ml_integration.enable_model_supportsia impostato suon. - Integra con Agent Platform.
- Accedere ai dati in Cloud Storage per generare incorporamenti multimodali.
Integrare Agent Platform e installare l'estensione
- Configura l'accesso utente ai modelli Agent Platform.
- Verifica che sia installata l'ultima versione di
google_ml_integration.Per controllare la versione installata, esegui questo comando:
SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration'; extversion ------------ 1.5.2 (1 row)
Se l'estensione non è installata o se la versione installata è precedente alla 1.5.2, aggiornala.
CREATE EXTENSION IF NOT EXISTS google_ml_integration; ALTER EXTENSION google_ml_integration UPDATE;
Se riscontri problemi durante l'esecuzione dei comandi precedenti o se l'estensione non viene aggiornata alla versione 1.5.2 dopo l'esecuzione dei comandi precedenti, contatta l'Google Cloud assistenza.
Per utilizzare la funzionalità del motore di query AlloyDB AI, imposta il flag
google_ml_integration.enable_ai_query_enginesuon.SQL
- Attiva il motore di query AI per la sessione corrente.
SET google_ml_integration.enable_ai_query_engine = on;
- Attiva le funzionalità per un database specifico in più sessioni.
ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_ai_query_engine = 'on';
- Attiva il motore di query AI per un utente specifico in tutte le sessioni e i database.
ALTER ROLE postgres SET google_ml_integration.enable_ai_query_engine = 'on';
Console
Per modificare il valore del flag
google_ml_integration.enable_ai_query_engine, segui i passaggi descritti in Configura i flag di database di un'istanza.gcloud
Per utilizzare gcloud CLI, puoi installare e inizializzare Google Cloud CLI oppure puoi utilizzare Cloud Shell.
Puoi modificare il valore del flag
google_ml_integration.enable_ai_query_engine. Per saperne di più, consulta Configurare i flag di database di un'istanza.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
- Attiva il motore di query AI per la sessione corrente.
Accedere ai dati in Cloud Storage per generare incorporamenti multimodali
- Per generare embedding multimodali, fai riferimento ai contenuti in Cloud Storage utilizzando un URI
gs://. - Accedere ai contenuti di Cloud Storage tramite il service agent Agent Platform del progetto attuale. Per impostazione predefinita, il service agent della piattaforma dell'agente ha già l'autorizzazione per accedere al bucket nello stesso progetto. Per saperne di più, consulta l'indice di ruoli e autorizzazioni IAM.
Per accedere ai dati in un bucket Cloud Storage in un altro progetto Google Cloud , esegui il seguente comando gcloud CLI per concedere il ruolo Visualizzatore oggetti Storage (
roles/storage.objectViewer) al service agent della piattaforma Agent del tuo progetto 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"Per saperne di più, consulta Imposta e gestisci le policy IAM sui bucket.
Per generare embedding multimodali, seleziona uno dei seguenti schemi.
Generare embedding multimodali
Per generare embedding di testo per un endpoint del modello multimodalembedding@001, esegui la seguente istruzione:
SELECT
ai.text_embedding(
model_id => 'multimodalembedding@001',
content => 'TEXT');
Sostituisci TEXT con il testo per cui generare l'incorporamento.
Per generare embedding di immagini per un endpoint del modello multimodalembedding@001 registrato in cui il tipo MIME dell'immagine è image/jpeg predefinito, esegui la seguente istruzione:
SELECT
ai.image_embedding(
model_id => 'multimodalembedding@001',
image => 'IMAGE_PATH_OR_TEXT',
mimetype => 'MIMETYPE');
Sostituisci quanto segue:
IMAGE_PATH_OR_TEXTcon l'URI Cloud Storage dell'immagine, ad esempiogs://my-bucket/embeddings/flowers.jpeg, o la stringa base64 dell'immagine.MIMETYPEcon il tipo MIME dell'immagine, ad esempioimage/jpeg. Per l'elenco completo dei tipi MIME supportati, consulta l'API Multimodal Embeddings.
Per generare embedding video per un endpoint del modello multimodalembedding@001 registrato, esegui la seguente istruzione:
SELECT
ai.video_embedding(
model_id => 'multimodalembedding@001',
video => 'VIDEO_URI');
Sostituisci VIDEO_URI con l'URI Cloud Storage del video di destinazione, ad esempio gs://my-bucket/embeddings/supermarket-video.mp4, o la stringa base64 del video.
Si tratta di array bidimensionali a cui è possibile accedere con una sintassi simile a my_array[0][5].
Per saperne di più, consulta Array.