Il modello di incorporamenti multimodali genera vettori di dimensioni 1408* in base alla l'input fornito, che può includere una combinazione di elementi di immagine, testo e video e i dati di Google Cloud. I vettori di incorporamento possono quindi essere utilizzati per attività successive come l'immagine alla classificazione o 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 dimensione. Di conseguenza, questi vettori possono essere intercambiabile per casi d'uso come la ricerca di immagini tramite testo o di video tramite immagine.
Per i casi d'uso di embedding di solo testo, consigliamo di utilizzare l'API Text Embeddings di Vertex AI. Ad esempio, l'API text-embeddings migliore per la ricerca semantica basata su testo, il clustering, l'analisi di documenti nel formato lungo e altri casi d'uso di recupero di testo o di question-answering. Per ulteriori informazioni, consulta Ottenere incorporamenti di testo.
Modelli supportati
Puoi ottenere embedding multimodali utilizzando il seguente modello:
multimodalembedding
Best practice
Quando utilizzi il modello di embedding multimodale, tieni presenti i seguenti aspetti relativi all'input:
- Testo nelle immagini: il modello può distinguere il testo nelle immagini, in modo simile al riconoscimento ottico dei caratteri (OCR). Se devi distinguere tra
descrizione dei contenuti dell'immagine e del testo al suo interno, considera
utilizzando il prompt engineering per specificare i contenuti target.
Ad esempio, anziché solo "gatto", specifica "immagine di un gatto" o "il testo "gatto"", a seconda del caso d'uso.
il testo "gatto"
immagine di un gatto
Credito immagine: Manja Vitolic su Unsplash. - Somiglianze di incorporamento: il prodotto scalare degli incorporamenti non è un probabilità calibrata. Il prodotto scalare è una metrica di somiglianza e potrebbe avere distribuzioni dei punteggi diverse per diversi casi d'uso. Di conseguenza, evita utilizzando una soglia di valore fisso per misurare la qualità. Usa invece il ranking metodi per il recupero o usare la funzione sigmoidea per la classificazione.
Utilizzo delle API
Limiti dell'API
Quando utilizzi il modello multimodalembedding
per gli embedding 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 |
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, internamente il modello accorcia l'input a questa lunghezza. |
Lingua | Inglese |
Formati delle immagini | BMP, GIF, JPG, PNG |
Dimensioni dell'immagine | Immagini con codifica base64: 20 MB (se transcodificate in PNG) Immagini archiviate in Cloud Storage: 20 MB (formato file originale) La dimensione massima accettata per le immagini è 20 MB. Per evitare un aumento della latenza della rete, utilizza immagini più piccole. Inoltre, il modello ridimensiona le immagini in modo che abbiano una risoluzione di 512 x 512 pixel. Di conseguenza, non è necessario fornire immagini con risoluzione più alta. |
Dati video | |
Audio supportato | N/A: il modello non prende in considerazione i contenuti audio quando genera gli incorporamenti video |
Formati video | AVI, FLV, MKV, MOV, MP4, MPEG, MPG, WEBM e WMV |
Durata massima del video (Cloud Storage) | Nessun limite. Tuttavia, possono essere analizzati solo due 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 Java esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
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.
Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
Node.js
Per utilizzare gli Node.js esempi in questa pagina in una località dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
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.
Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
Python
Per utilizzare gli Python esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
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.
Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
- Per utilizzare l'SDK Python, segui le istruzioni all'indirizzo Installa l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI SDK for Python.
- Facoltativo. Esamina i prezzi di questa funzionalità. I prezzi degli incorporamenti dipendono dal tipo di dati inviati (ad es. immagini o testo) e dalla modalità utilizzata per determinati tipi di dati (ad es. Video Plus, Video Standard o Video Essential).
Località
Una località è una regione che puoi specificare in una richiesta controllare dove vengono archiviati i dati at-rest. Per un elenco delle aree geografiche disponibili, vedi l'IA generativa nelle località di Vertex AI.
Messaggi di errore
Errore di superamento 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 un aumento della quota per il tuo progetto. Utilizza la seguenti filtri prima di richiedere l'aumento:
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 aumento della quota, attendi prima di inviarne un'altra. Se devi aumentare ulteriormente la quota, ripeti l'operazione. con la tua giustificazione per una richiesta di quota sostenuta.
Specifica gli incorporamenti di dimensioni inferiori
Per impostazione predefinita, una richiesta di incorporamento restituisce un vettore in virgola mobile 1408 per un tipo di dati. Tu puoi anche specificare incorporamenti di dimensioni inferiori (128, 256 o 512 vettori in virgola mobile) per di testo e immagine. Questa opzione ti consente di eseguire l'ottimizzazione in base alla latenza e allo spazio di archiviazione o alla qualità in base a come prevedi di utilizzare gli embedding. Incorporamenti di dimensioni inferiori forniscono esigenze di archiviazione ridotte e minore latenza per le successive attività di incorporamento (come ricerca o suggerimento), mentre gli incorporamenti di dimensioni superiori offrono la precisione per le stesse attività.
REST
È possibile accedere a dimensioni ridotte aggiungendo il campo
parameters.dimension
. Il parametro accetta uno dei seguenti valori:128
,256
,512
o1408
. La risposta include l'incorporamento della dimensione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione del progetto. Ad esempio,
us-central1
,europe-west2
oasia-northeast3
. Per un elenco delle regioni disponibili, consulta Località dell'IA generativa su Vertex AI. - PROJECT_ID: il tuo ID progetto Google Cloud.
- IMAGE_URI: l'URI Cloud Storage del video di destinazione per cui ottenere gli embedding.
Ad esempio,
gs://my-bucket/embeddings/supermarket-img.png
.Puoi anche fornire l'immagine come una stringa di byte con codifica base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- TEXT: il testo target per cui ottenere gli embedding. Ad esempio,
a cat
. - EMBEDDING_DIMENSION: il numero di dimensioni di incorporamento. I valori più bassi offrono diminuiti
quando si utilizzano questi incorporamenti per le attività successive, mentre valori più alti offrono
la precisione. Valori disponibili:
128
,256
,512
e1408
(predefinito).
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 delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. ed esegui questo comando: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'embedding del modello restituisce un vettore di tipo float della dimensione specificata. Il seguente esempio le risposte sono abbreviate per indicare lo spazio. 128 dimensioni:
{ "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
Invia una richiesta di incorporamento (immagine e testo)
Utilizza i seguenti esempi di codice per inviare una richiesta di incorporamento con immagine e testo e i dati di Google Cloud. Gli esempi mostrano come inviare una richiesta con entrambi i tipi di dati, ma puoi utilizzare il servizio anche con un tipo di dati individuale.
Ottieni incorporamenti di testo e immagini
REST
Per ulteriori informazioni sulle richieste del modello
multimodalembedding
, consulta 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 una lista delle regioni disponibili, vedi L'IA generativa nelle località di Vertex AI. - PROJECT_ID: il tuo ID progetto Google Cloud.
- 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 specificato 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 delle seguenti 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
. ed esegui questo comando:$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 per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta API Java Vertex AI documentazione di riferimento.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Invia una richiesta di incorporamento (video, immagine o testo)
Quando invii una richiesta di incorporamento, puoi specificare soltanto un video di input oppure puoi specificare una combinazione di dati video, di immagine e di testo.
Modalità di incorporamento dei video
Esistono tre modalità che puoi utilizzare con gli incorporamenti video: Essenziale, Standard Più La modalità corrisponde alla densità degli incorporamenti generati, che possono essere specificato dalla configurazione
interval_sec
nella richiesta. Per ogni video di lunghezza pari ainterval_sec
, viene generato un incorporamento. Il minimo la durata dell'intervallo video è di 4 secondi. La durata degli intervalli superiore a 120 secondi potrebbe influire negativamente sulla qualità degli embedding generati.I prezzi per l'inserimento di video dipendono dalla modalità utilizzata. Per ulteriori informazioni, consulta la sezione Prezzi.
La seguente tabella riassume le tre modalità che puoi utilizzare per gli incorporamenti video:
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 dei video
Tieni presente quanto segue quando invii richieste di incorporamento di video:
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 per un video di durata superiore a due minuti, puoi inviare più richieste che specificano l'ora di inizio e l'ora di fine nel
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
Usa il seguente esempio per ottenere gli incorporamenti solo per i contenuti video.
REST
Per ulteriori informazioni sulle richieste del modello
multimodalembedding
, consulta la documentazione di riferimento dell'API del modellomultimodalembedding
.L'esempio seguente utilizza un video che si trova in Cloud Storage. Puoi anche utilizzare il campo
video.bytesBase64Encoded
per fornire una rappresentazione in 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'IA generativa su Vertex AI. - PROJECT_ID: il tuo ID progetto Google Cloud.
- VIDEO_URI: l'URI Cloud Storage del video di destinazione per cui ottenere gli embedding.
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) degli incorporamenti vengono generati.Ad esempio:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Questa configurazione specifica i dati video da 10 a 60 secondi e genera embedding per i seguenti intervalli di video di 10 secondi: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Questo intervallo di video (
"intervalSec": 10
) rientra nella modalità di incorporamento video standard e all'utente viene applicata la tariffa della modalità standard.Se ometti
videoSegmentConfig
, il servizio utilizza i seguenti valori predefiniti:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Questo intervallo di video ("intervalSec": 16
) rientra nella modalità di incorporamento video di base e all'utente viene applicata la tariffa di base.
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 delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. ed esegui questo comando: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
. ed esegui questo comando:$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 elemento
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 dei segmenti 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 per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Ottenere incorporamenti di immagini, testo e video
Usa l'esempio seguente per ottenere gli incorporamenti per i contenuti di video, testo e immagini.
REST
Per ulteriori informazioni sulle richieste del modello
multimodalembedding
, consulta Riferimento API del modellomultimodalembedding
.L'esempio seguente utilizza dati di immagini, testo e video. Puoi utilizzare qualsiasi combinazione di questi tipi di dati nel corpo della richiesta.
Inoltre, questo un esempio utilizza un video che si trova in Cloud Storage. Puoi usa anche il campo
video.bytesBase64Encoded
per fornire un rappresentazione stringa con codifica 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'IA generativa su Vertex AI. - PROJECT_ID: il tuo ID progetto Google Cloud.
- TEXT: il testo di destinazione per cui ottenere gli incorporamenti. Ad esempio,
a cat
. - IMAGE_URI: l'URI Cloud Storage del video di destinazione per cui ottenere gli embedding.
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 gli embedding.
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 i quali vengono generati gli incorporamenti.Ad esempio:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Questa configurazione specifica i dati video da 10 a 60 secondi e genera embedding per i seguenti intervalli di video di 10 secondi: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Questo intervallo di video (
"intervalSec": 10
) rientra nella modalità di incorporamento video standard e all'utente viene applicata la tariffa della modalità standard.Se ometti
videoSegmentConfig
, il servizio utilizza i seguenti valori predefiniti:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Questo intervallo di video ("intervalSec": 16
) rientra nella modalità di incorporamento video di base e all'utente viene applicata la tariffa di base.
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 delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. ed esegui questo comando: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
. ed esegui questo comando:$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 per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Passaggi successivi
- Leggi il blog "What is Multimodal Search: 'LLM with vision'" modifica aziendali".
- Per informazioni sui casi d'uso solo di testo (ricerca semantica basata sul testo, clustering, analisi di documenti nel formato lungo e altri casi d'uso di recupero di testo o risposta alle domande), consulta Ottenere gli embedding di testo.
- Visualizza tutte le offerte di IA generativa di immagini Vertex AI in 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 2024-10-25 UTC.