Il modello degli incorporamenti multimodali genera vettori di dimensioni 1408* in base all'input fornito, che possono 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 incorporamento di immagini e il vettore di incorporamento 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 immagine tramite testo o la ricerca di video per immagine.
Per i casi d'uso dell'incorporamento di solo testo, consigliamo di utilizzare invece l'API Vertex AI per l'incorporamento del testo. Ad esempio, l'API di incorporamento del testo potrebbe essere migliore per la ricerca semantica basata su testo, il clustering, l'analisi di documenti in formato esteso e altri casi d'uso di recupero del testo o risposta alle domande. Per maggiori informazioni, consulta la pagina Recuperare gli 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 di 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 del contenuto dell'immagine e il testo al suo interno, valuta la possibilità di utilizzare il prompt engineering per specificare il contenuto di destinazione.
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
Immagine concessa da: Manja Vitolic su Unsplash. - Somiglianze di incorporamento: il prodotto scalare degli incorporamenti non è una probabilità calibrata. Il prodotto scalare è una metrica di somiglianza e potrebbe avere distribuzioni dei punteggi diverse a seconda dei casi d'uso. Di conseguenza, evita di utilizzare una soglia di valore fisso per misurare la qualità. Usa 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 immagine | |
Numero massimo di richieste API al minuto per progetto | 120 |
Lunghezza massima del testo | 32 token (circa 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 dell'immagine | BMP, GIF, JPG, PNG |
Dimensioni dell'immagine | Immagini con codifica Base64: 20 MB (se transcodificate in PNG) Immagini Cloud Storage: 20 MB (formato file originale) La dimensione massima accettata delle immagini è 20 MB. Per evitare una maggiore latenza di rete, utilizza immagini più piccole. Inoltre, il modello ridimensiona le immagini alla risoluzione di 512 x 512 pixel. Di conseguenza, non è necessario fornire immagini con risoluzione più alta. |
Dati relativi ai 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
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Attiva l'API Vertex AI.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Attiva l'API Vertex AI.
-
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 gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Aggiorna e installa i componenti di
gcloud
:gcloud components update
gcloud components install beta -
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per saperne di più, 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 un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Aggiorna e installa i componenti di
gcloud
:gcloud components update
gcloud components install beta -
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per saperne di più, consulta 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 gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Aggiorna e installa i componenti di
gcloud
:gcloud components update
gcloud components install beta -
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di 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.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Aggiorna e installa i componenti di
gcloud
:gcloud components update
gcloud components install beta
Per maggiori informazioni, consulta Autenticazione 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 ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI SDK per Python.
- Facoltativo. Esamina i pricing di questa funzionalità. I prezzi degli incorporamenti dipendono dal tipo di dati inviati (ad esempio immagine o testo) e dalla modalità utilizzata 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 sono archiviati i dati at-rest. Per un elenco delle regioni disponibili, vedi Località dell'AI generativa su 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 i seguenti filtri prima di richiedere un 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 hai bisogno di aumentare ulteriormente la quota, ripeti la richiesta di aumento della quota giustificando 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. Puoi anche specificare gli incorporamenti di dimensioni inferiori (128, 256 o 512 vettori in virgola mobile) per i dati di testo e immagine. Questa opzione ti consente di ottimizzare la latenza e l'archiviazione o la qualità in base a come prevedi di utilizzare gli incorporamenti. Gli incorporamenti di dimensioni inferiori garantiscono minori esigenze di archiviazione e latenza inferiore per le attività di incorporamento successive (come ricerca o suggerimento), mentre gli incorporamenti di dimensioni superiori offrono una maggiore accuratezza 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, effettua 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à per l'AI generativa su Vertex AI. - PROJECT_ID: il tuo ID progetto Google Cloud.
- IMAGE_URI: l'URI Cloud Storage del video di destinazione per il quale ottenere gli incorporamenti.
Ad esempio,
gs://my-bucket/embeddings/supermarket-img.png
.Puoi anche fornire l'immagine come stringa di byte codificata in 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 di incorporamento. Valori più bassi offrono una latenza minore quando si utilizzano questi incorporamenti per attività successive, mentre valori più alti offrono una migliore accuratezza. Valori disponibili:
128
,256
,512
e1408
(valore 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
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 ContentL'incorporamento del modello restituisce un vettore in virgola mobile della dimensione specificata. I seguenti esempi di risposte vengono abbreviati 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" }
512 dimensioni:
{ "predictions": [ { "imageEmbedding": [ -0.0523675755, [...512 dimension vector...] -0.0444030389 ], "textEmbedding": [ -0.0592851527, [...512 dimension vector...] 0.0350437127 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Invia una richiesta di incorporamento (immagine e testo)
Utilizza i seguenti esempi di codice per inviare una richiesta di incorporamento con dati di immagine 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.
Ottieni incorporamenti di testo e immagini
REST
Per saperne di più sulle richieste del modello
multimodalembedding
, consulta il riferimento per l'API del modellomultimodalembedding
.Prima di utilizzare i dati della richiesta, effettua 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à per l'AI 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
. - B64_ENCODED_IMG: l'immagine di destinazione per cui ottenere gli incorporamenti. L'immagine deve essere specificata come stringa di byte codificata in 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
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.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, vedi Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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 solo un video di input oppure una combinazione di dati video, immagine e di testo.
Modalità di incorporamento dei video
Con gli incorporamenti video puoi utilizzare tre modalità: Essential, Standard o Plus. La modalità corrisponde alla densità degli incorporamenti generati, che possono essere specificati dalla configurazione
interval_sec
nella richiesta. Per ogni intervallo video della durata diinterval_sec
, viene generato un incorporamento. La durata minima dell'intervallo dei video è di 4 secondi. Le durate degli intervalli superiori a 120 secondi potrebbero influire negativamente sulla qualità degli incorporamenti generati.I prezzi dell'incorporamento dei video dipendono dalla modalità utilizzata. Per ulteriori informazioni, consulta i pricing.
La seguente tabella riassume le tre modalità che puoi utilizzare per gli incorporamenti video:
Modalità Numero massimo di incorporamenti al minuto Intervallo di incorporamento dei 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
Considera quanto segue quando invii le richieste di incorporamento dei video:
Per generare un singolo incorporamento 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 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
Ottieni gli incorporamenti video
Usa il seguente esempio per ottenere gli incorporamenti solo per i contenuti video.
REST
Per saperne di più sulle richieste del modello
multimodalembedding
, consulta il riferimento per l'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 stringa del video con codifica Base64.Prima di utilizzare i dati della richiesta, effettua 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à per l'AI generativa su Vertex AI. - PROJECT_ID: il tuo ID progetto Google Cloud.
- VIDEO_URI: l'URI Cloud Storage del video di destinazione per il quale ottenere gli incorporamenti.
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). Facoltativa. I segmenti video specifici (in secondi) per cui vengono generati gli incorporamenti.Ad esempio:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Questa configurazione specifica i dati video compresi tra 10 e 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 per la 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 dei video essenziali e all'utente viene addebitata la tariffa per la 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 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, vedi Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
Ottieni incorporamenti di immagini, testo e video
Usa l'esempio seguente per ottenere gli incorporamenti per i contenuti di video, testo e immagini.
REST
Per saperne di più sulle richieste del modello
multimodalembedding
, consulta il riferimento per l'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 esempio utilizza un video che si trova in Cloud Storage. Puoi anche utilizzare il campo
video.bytesBase64Encoded
per fornire una rappresentazione stringa del video con codifica Base64.Prima di utilizzare i dati della richiesta, effettua 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à per l'AI 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 il quale ottenere gli incorporamenti.
Ad esempio,
gs://my-bucket/embeddings/supermarket-img.png
.Puoi anche fornire l'immagine come stringa di byte codificata in base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- VIDEO_URI: l'URI Cloud Storage del video di destinazione per il quale ottenere gli incorporamenti.
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). Facoltativa. I segmenti video specifici (in secondi) per cui vengono generati gli incorporamenti.Ad esempio:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Questa configurazione specifica i dati video compresi tra 10 e 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 per la 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 dei video essenziali e all'utente viene addebitata la tariffa per la 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 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 maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
Passaggi successivi
- Leggi il blog "What is Multimodal Search: 'LLM with vision' change businesses".
- Per informazioni sui casi d'uso di solo testo (ricerca semantica basata su testo, clustering, analisi di documenti in formato lungo e altri casi d'uso di recupero o risposta alle domande), leggi l'articolo Ottenere incorporamenti di testo.
- Visualizza tutte le offerte di IA generativa di immagini Vertex AI nella panoramica di Imagen on 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-07-12 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }]