Il modello di embedding multimodale genera vettori a 1408 dimensioni in base all'input fornito, che può includere una combinazione di dati di immagini, testo e video. I vettori di incorporamento possono quindi essere utilizzati per attività successive come la classificazione delle immagini o la moderazione dei contenuti video.
Il vettore di embedding dell'immagine e il vettore di embedding del testo si trovano nello stesso spazio semantico con la stessa dimensionalità. Di conseguenza, questi vettori possono essere utilizzati in modo intercambiabile per casi d'uso come la ricerca di immagini per testo o di video per immagine.
Per i casi d'uso di embedding solo di testo, ti consigliamo di utilizzare l'API text-embeddings di Vertex AI. Ad esempio, l'API text-embeddings potrebbe essere più adatta per la ricerca semantica basata su testo, il clustering, l'analisi di documenti in formato lungo e altri casi d'uso di recupero di testo o question answering. Per ulteriori informazioni, vedi Ottenere incorporamenti di testo.
Modelli supportati
Puoi ottenere incorporamenti multimodali utilizzando il seguente modello:
multimodalembedding
Best practice
Quando utilizzi il modello di incorporamenti multimodali, considera i seguenti aspetti dell'input:
- Testo nelle immagini: il modello è in grado di distinguere il testo nelle immagini, in modo simile al riconoscimento ottico dei caratteri (OCR). Se devi distinguere tra una
descrizione dei contenuti dell'immagine e il testo all'interno di un'immagine, valuta la possibilità di
utilizzare l'ingegneria dei prompt per specificare i contenuti di destinazione.
Ad esempio, anziché solo "gatto", specifica "foto di un gatto" o
"il testo "gatto"", a seconda del caso d'uso.
il testo "gatto"
immagine di un gatto
Crediti immagine: Manja Vitolic su Unsplash. - Somiglianze di incorporamento: il prodotto scalare degli incorporamenti non è una probabilità calibrata. Il prodotto scalare è una metrica di similarità e potrebbe avere distribuzioni di punteggio diverse per casi d'uso diversi. Di conseguenza, evita di utilizzare una soglia di valore fissa per misurare la qualità. Utilizza invece approcci di ranking per il recupero o la funzione sigmoidea per la classificazione.
Utilizzo delle API
Limiti dell'API
Quando utilizzi il modello multimodalembedding
per gli incorporamenti di testo e immagini, si applicano i seguenti limiti:
Limite | Valore e descrizione |
---|---|
Dati di testo e immagini | |
Numero massimo di richieste API al minuto per progetto | 120-600 a seconda della regione |
Lunghezza massima del testo | 32 token (~32 parole) La lunghezza massima del testo è di 32 token (circa 32 parole). Se l'input supera i 32 token, il modello lo abbrevia internamente a questa lunghezza. |
Lingua | Inglese |
Formati immagine | BMP, GIF, JPG, PNG |
Dimensioni dell'immagine | Immagini con codifica base64: 20 MB (dopo la transcodifica in PNG) Immagini di Cloud Storage: 20 MB (formato file originale) La dimensione massima dell'immagine accettata è 20 MB. Per evitare un aumento della latenza di rete, utilizza immagini più piccole. Inoltre, il modello ridimensiona le immagini a una risoluzione di 512 x 512 pixel. Di conseguenza, non è necessario fornire immagini a risoluzione più elevata. |
Dati video | |
Audio supportato | N/A: il modello non prende in considerazione i contenuti audio durante la generazione degli incorporamenti video |
Formati video | AVI, FLV, MKV, MOV, MP4, MPEG, MPG, WEBM e WMV |
Durata massima del video (Cloud Storage) | Nessun limite. Tuttavia, è possibile analizzare solo 2 minuti di contenuti alla volta. |
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
Configura l'autenticazione per il tuo ambiente.
Select the tab for how you plan to use the samples on this page:
Java
Per utilizzare gli esempi di Java questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
After initializing the gcloud CLI, update it and install the required components:
gcloud components update gcloud components install beta
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione Google Cloud .
Node.js
Per utilizzare gli esempi di Node.js questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
After initializing the gcloud CLI, update it and install the required components:
gcloud components update gcloud components install beta
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione Google Cloud .
Python
Per utilizzare gli esempi di Python questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
After initializing the gcloud CLI, update it and install the required components:
gcloud components update gcloud components install beta
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione Google Cloud .
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
After initializing the gcloud CLI, update it and install the required components:
gcloud components update gcloud components install beta
Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
- Per utilizzare l'SDK Python, segui le istruzioni riportate in Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI SDK for Python.
- Facoltativo. Consulta i prezzi di questa funzionalità. I prezzi per gli incorporamenti dipendono dal tipo di dati che invii (ad esempio immagini o testo) e anche dalla modalità che utilizzi per determinati tipi di dati (ad esempio Video Plus, Video Standard o Video Essential).
Località
Una località è una regione che puoi specificare in una richiesta per controllare dove vengono archiviati i dati at-rest. Per un elenco delle regioni disponibili, consulta Località dell'AI generativa su Vertex AI.
Messaggi di errore
Errore di superamento della quota
google.api_core.exceptions.ResourceExhausted: 429 Quota exceeded for aiplatform.googleapis.com/online_prediction_requests_per_base_model with base model: multimodalembedding. Please submit a quota increase request.
Se è la prima volta che ricevi questo errore, utilizza la console Google Cloud per richiedere una modifica della quota per il tuo progetto. Utilizza i seguenti filtri prima di richiedere l'aggiustamento:
Service ID: aiplatform.googleapis.com
metric: aiplatform.googleapis.com/online_prediction_requests_per_base_model
base_model:multimodalembedding
Se hai già inviato una richiesta di aggiustamento della quota, attendi prima di inviarne un'altra. Se devi aumentare ulteriormente la quota, ripeti la richiesta di aggiustamento della quota con la giustificazione per un aggiustamento della quota sostenuto.
Specifica gli incorporamenti a dimensioni inferiori
Per impostazione predefinita, una richiesta di incorporamento restituisce un vettore float di 1408 per un tipo di dati. Puoi anche specificare embedding a dimensioni inferiori (vettori float a 128, 256 o 512 dimensioni) per i dati di testo e immagine. Questa opzione ti consente di ottimizzare la latenza e lo spazio di archiviazione o la qualità in base a come prevedi di utilizzare gli incorporamenti. Gli incorporamenti a dimensioni inferiori riducono le esigenze di spazio di archiviazione e la latenza per le successive attività di incorporamento (come la ricerca o i suggerimenti), mentre gli incorporamenti a dimensioni superiori offrono una maggiore precisione per le stesse attività.
REST
È possibile accedere alla dimensione bassa aggiungendo il campo
parameters.dimension
. Il parametro accetta uno dei seguenti valori:128
,256
,512
o1408
. La risposta include l'incorporamento di quella dimensione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione del tuo progetto. Ad esempio,
us-central1
,europe-west2
oasia-northeast3
. Per un elenco delle regioni disponibili, consulta Località dell'AI generativa su Vertex AI. - PROJECT_ID: il tuo Google Cloud ID progetto.
- IMAGE_URI: l'URI Cloud Storage dell'immagine di destinazione per cui ottenere gli incorporamenti.
Ad esempio,
gs://my-bucket/embeddings/supermarket-img.png
.Puoi anche fornire l'immagine come stringa di byte con codifica base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- TEXT: Il testo di destinazione per cui ottenere gli incorporamenti. Ad esempio,
a cat
. - EMBEDDING_DIMENSION: il numero di dimensioni dell'incorporamento. Valori più bassi offrono una latenza ridotta
quando utilizzi questi incorporamenti per attività successive, mentre valori più alti offrono una maggiore
precisione. Valori disponibili:
128
,256
,512
e1408
(impostazione predefinita).
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Corpo JSON della richiesta:
{ "instances": [ { "image": { "gcsUri": "IMAGE_URI" }, "text": "TEXT" } ], "parameters": { "dimension": EMBEDDING_DIMENSION } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
, quindi esegui il comando seguente:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
, quindi esegui il comando seguente:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand ContentL'incorporamento restituito dal modello è un vettore float della dimensione specificata. I seguenti esempi di risposte sono abbreviati per motivi di spazio. Dimensioni 128:
{ "predictions": [ { "imageEmbedding": [ 0.0279239565, [...128 dimension vector...] 0.00403284049 ], "textEmbedding": [ 0.202921599, [...128 dimension vector...] -0.0365431122 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
256 dimensioni:
{ "predictions": [ { "imageEmbedding": [ 0.248620048, [...256 dimension vector...] -0.0646447465 ], "textEmbedding": [ 0.0757875815, [...256 dimension vector...] -0.02749932 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Dimensioni 512:
{ "predictions": [ { "imageEmbedding": [ -0.0523675755, [...512 dimension vector...] -0.0444030389 ], "textEmbedding": [ -0.0592851527, [...512 dimension vector...] 0.0350437127 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Go
Inviare una richiesta di incorporamento (immagine e testo)
Utilizza i seguenti esempi di codice per inviare una richiesta di incorporamento con dati di immagini e testo. Gli esempi mostrano come inviare una richiesta con entrambi i tipi di dati, ma puoi utilizzare il servizio anche con un singolo tipo di dati.
Ottenere incorporamenti di testo e immagini
REST
Per ulteriori informazioni sulle richieste del modello
multimodalembedding
, consulta il riferimento API del modellomultimodalembedding
.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione del tuo progetto. Ad esempio,
us-central1
,europe-west2
oasia-northeast3
. Per un elenco delle regioni disponibili, consulta Località dell'AI generativa su Vertex AI. - PROJECT_ID: il tuo Google Cloud ID progetto.
- TEXT: Il testo di destinazione per cui ottenere gli incorporamenti. Ad esempio,
a cat
. - B64_ENCODED_IMG: L'immagine di destinazione per cui ottenere gli incorporamenti. L'immagine deve essere specificata come stringa di byte con codifica base64.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Corpo JSON della richiesta:
{ "instances": [ { "text": "TEXT", "image": { "bytesBase64Encoded": "B64_ENCODED_IMG" } } ] }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
, quindi esegui il comando seguente:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
, quindi esegui il comando seguente:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand Content{ "predictions": [ { "textEmbedding": [ 0.010477379, -0.00399621, 0.00576670747, [...] -0.00823613815, -0.0169572588, -0.00472954148 ], "imageEmbedding": [ 0.00262696808, -0.00198890246, 0.0152047109, -0.0103145819, [...] 0.0324628279, 0.0284924973, 0.011650892, -0.00452344026 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Node.js.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Java.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Go.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Inviare una richiesta di incorporamento (video, immagine o testo)
Quando invii una richiesta di incorporamento, puoi specificare solo un video di input oppure una combinazione di dati video, immagine e testo.
Modalità di incorporamento dei video
Esistono tre modalità che puoi utilizzare con i video incorporati: Essenziale, Standard o Plus. La modalità corrisponde alla densità degli incorporamenti generati, che può essere specificata dalla configurazione
interval_sec
nella richiesta. Per ogni intervallo video con lunghezzainterval_sec
, viene generato un incorporamento. La durata minima dell'intervallo tra i video è di 4 secondi. Intervalli di durata superiore a 120 secondi potrebbero influire negativamente sulla qualità degli incorporamenti generati.Il prezzo per l'incorporamento dei video dipende dalla modalità utilizzata. Per ulteriori informazioni, consulta la sezione Prezzi.
La seguente tabella riassume le tre modalità che puoi utilizzare per i video incorporati:
Modalità Numero massimo di incorporamenti al minuto Intervallo di incorporamento video (valore minimo) Essential 4 15
Corrisponde a:intervalSec
>= 15Standard 8 8
Corrisponde a: 8 <=intervalSec
< 15Plus 15 4
Corrisponde a: 4 <=intervalSec
< 8Best practice per gli incorporamenti video
Quando invii richieste di incorporamento di video, tieni presente quanto segue:
Per generare un singolo embedding per i primi due minuti di un video di input di qualsiasi durata, utilizza la seguente impostazione
videoSegmentConfig
:request.json
:// other request body content "videoSegmentConfig": { "intervalSec": 120 } // other request body content
Per generare l'incorporamento di un video con una durata superiore a due minuti, puoi inviare più richieste che specificano l'ora di inizio e di fine in
videoSegmentConfig
:request1.json
:// other request body content "videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120 } // other request body content
request2.json
:// other request body content "videoSegmentConfig": { "startOffsetSec": 120, "endOffsetSec": 240 } // other request body content
Ottenere gli incorporamenti dei video
Utilizza il seguente esempio per ottenere gli incorporamenti solo per i contenuti video.
REST
Per ulteriori informazioni sulle richieste del modello
multimodalembedding
, consulta il riferimento API del modellomultimodalembedding
.L'esempio seguente utilizza un video archiviato in Cloud Storage. Puoi anche utilizzare il campo
video.bytesBase64Encoded
per fornire una rappresentazione di stringa codificata in Base64 del video.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione del tuo progetto. Ad esempio,
us-central1
,europe-west2
oasia-northeast3
. Per un elenco delle regioni disponibili, consulta Località dell'AI generativa su Vertex AI. - PROJECT_ID: il tuo Google Cloud ID progetto.
- VIDEO_URI: l'URI Cloud Storage del video di destinazione per cui ottenere i contenuti incorporati.
Ad esempio,
gs://my-bucket/embeddings/supermarket-video.mp4
.Puoi anche fornire il video come stringa di byte codificata in base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Facoltativo. I segmenti video specifici (in secondi) per cui vengono generati gli incorporamenti.Ad esempio:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
L'utilizzo di questa configurazione specifica i dati video da 10 a 60 secondi e genera incorporamenti per i seguenti intervalli video di 10 secondi: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Questo intervallo video (
"intervalSec": 10
) rientra nella modalità di incorporamento video standard e all'utente viene addebitata la tariffa della modalità Standard.Se ometti
videoSegmentConfig
, il servizio utilizza i seguenti valori predefiniti:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Questo intervallo video ("intervalSec": 16
) rientra nella modalità di incorporamento video essenziale e all'utente viene addebitata la tariffa della modalità essenziale.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Corpo JSON della richiesta:
{ "instances": [ { "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
, quindi esegui il comando seguente:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
, quindi esegui il comando seguente:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand ContentRisposta (video di 7 secondi, nessun
videoSegmentConfig
specificato):{ "predictions": [ { "videoEmbeddings": [ { "endOffsetSec": 7, "embedding": [ -0.0045467657, 0.0258095954, 0.0146885719, 0.00945400633, [...] -0.0023291884, -0.00493789, 0.00975185353, 0.0168156829 ], "startOffsetSec": 0 } ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Risposta (video di 59 secondi, con la seguente configurazione del segmento video:
"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 60, "intervalSec": 10 }
):{ "predictions": [ { "videoEmbeddings": [ { "endOffsetSec": 10, "startOffsetSec": 0, "embedding": [ -0.00683252793, 0.0390476175, [...] 0.00657121744, 0.013023301 ] }, { "startOffsetSec": 10, "endOffsetSec": 20, "embedding": [ -0.0104404651, 0.0357737206, [...] 0.00509833824, 0.0131902946 ] }, { "startOffsetSec": 20, "embedding": [ -0.0113538112, 0.0305239167, [...] -0.00195809244, 0.00941874553 ], "endOffsetSec": 30 }, { "embedding": [ -0.00299320649, 0.0322436653, [...] -0.00993082579, 0.00968887936 ], "startOffsetSec": 30, "endOffsetSec": 40 }, { "endOffsetSec": 50, "startOffsetSec": 40, "embedding": [ -0.00591270532, 0.0368893594, [...] -0.00219071587, 0.0042470959 ] }, { "embedding": [ -0.00458270218, 0.0368121453, [...] -0.00317760976, 0.00595594104 ], "endOffsetSec": 59, "startOffsetSec": 50 } ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Go.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Ottenere incorporamenti di immagini, testo e video
Utilizza il seguente esempio per ottenere gli incorporamenti per i contenuti video, di testo e delle immagini.
REST
Per ulteriori informazioni sulle richieste del modello
multimodalembedding
, consulta il riferimento API del modellomultimodalembedding
.L'esempio seguente utilizza dati di immagine, testo e video. Puoi utilizzare qualsiasi combinazione di questi tipi di dati nel corpo della richiesta.
Inoltre, questo esempio utilizza un video archiviato in Cloud Storage. Puoi anche utilizzare il campo
video.bytesBase64Encoded
per fornire una rappresentazione di stringa codificata in Base64 del video.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione del tuo progetto. Ad esempio,
us-central1
,europe-west2
oasia-northeast3
. Per un elenco delle regioni disponibili, consulta Località dell'AI generativa su Vertex AI. - PROJECT_ID: il tuo Google Cloud ID progetto.
- TEXT: Il testo di destinazione per cui ottenere gli incorporamenti. Ad esempio,
a cat
. - IMAGE_URI: l'URI Cloud Storage dell'immagine di destinazione per cui ottenere gli incorporamenti.
Ad esempio,
gs://my-bucket/embeddings/supermarket-img.png
.Puoi anche fornire l'immagine come stringa di byte con codifica base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- VIDEO_URI: l'URI Cloud Storage del video di destinazione per cui ottenere i contenuti incorporati.
Ad esempio,
gs://my-bucket/embeddings/supermarket-video.mp4
.Puoi anche fornire il video come stringa di byte codificata in base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Facoltativo. I segmenti video specifici (in secondi) per cui vengono generati gli incorporamenti.Ad esempio:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
L'utilizzo di questa configurazione specifica i dati video da 10 a 60 secondi e genera incorporamenti per i seguenti intervalli video di 10 secondi: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Questo intervallo video (
"intervalSec": 10
) rientra nella modalità di incorporamento video standard e all'utente viene addebitata la tariffa della modalità Standard.Se ometti
videoSegmentConfig
, il servizio utilizza i seguenti valori predefiniti:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Questo intervallo video ("intervalSec": 16
) rientra nella modalità di incorporamento video essenziale e all'utente viene addebitata la tariffa della modalità essenziale.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Corpo JSON della richiesta:
{ "instances": [ { "text": "TEXT", "image": { "gcsUri": "IMAGE_URI" }, "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
, quindi esegui il comando seguente:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
, quindi esegui il comando seguente:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand Content{ "predictions": [ { "textEmbedding": [ 0.0105433334, -0.00302835181, 0.00656806398, 0.00603460241, [...] 0.00445805816, 0.0139605571, -0.00170318608, -0.00490092579 ], "videoEmbeddings": [ { "startOffsetSec": 0, "endOffsetSec": 7, "embedding": [ -0.00673126569, 0.0248149596, 0.0128901172, 0.0107588246, [...] -0.00180952181, -0.0054573305, 0.0117037306, 0.0169312079 ] } ], "imageEmbedding": [ -0.00728622358, 0.031021487, -0.00206603738, 0.0273937676, [...] -0.00204976718, 0.00321615417, 0.0121978866, 0.0193375275 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Go.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Passaggi successivi
- Leggi il post del blog "Che cos'è la ricerca multimodale: le "LLM con visione" cambiano le attività".
- Per informazioni sui casi d'uso solo di testo (ricerca semantica basata su testo, clustering, analisi di documenti in formato lungo e altri casi d'uso di recupero di testo o domande e risposte), consulta Ottenere embedding di testo.
- Visualizza tutte le offerte di IA generativa di immagini di Vertex AI nella panoramica di Imagen su Vertex AI.
- Esplora altri modelli preaddestrati in Model Garden.
- Scopri di più sulle best practice per l'IA responsabile e sui filtri di sicurezza in Vertex AI.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-09 UTC.
-