Per ulteriori informazioni concettuali, consulta Embedding multimodali.
Modelli supportati:
Modello | Codice |
---|---|
Incorporamenti per il multimodale | multimodalembedding@001 |
Sintassi di esempio
Sintassi per inviare una richiesta all'API di embedding multimodali.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:predict \ -d '{ "instances": [ ... ], }'
from vertexai.vision_models import MultiModalEmbeddingModel model = MultiModalEmbeddingModel.from_pretrained("multimodalembedding") model.get_embeddings(...)
Elenco dei parametri
Per informazioni dettagliate sull'implementazione, consulta gli esempi.
Corpo della richiesta
{
"instances": [
{
"text": string,
"image": {
// Union field can be only one of the following:
"bytesBase64Encoded": string,
"gcsUri": string,
// End of list of possible types for union field.
"mimeType": string
},
"video": {
// Union field can be only one of the following:
"bytesBase64Encoded": string,
"gcsUri": string,
// End of list of possible types for union field.
"videoSegmentConfig": {
"startOffsetSec": integer,
"endOffsetSec": integer,
"intervalSec": integer
}
},
"parameters": {
"dimension": integer
}
}
]
}
Parametri | |
---|---|
|
(Facoltativo) L'immagine per la quale generare gli embedding. |
|
(Facoltativo) Il testo per cui generare gli incorporamenti. |
|
(Facoltativo) Il segmento di video per cui generare gli embedding. |
|
(Facoltativo) La dimensione dell'incorporamento,
inclusa nella risposta. Si applica solo all'input di testo e immagini. Valori
accettati: |
Immagine
Parametri | |
---|---|
|
(Facoltativo) Byte di immagini codificati in una stringa base64. Deve essere |
|
Facoltativo. La posizione Cloud Storage dell'immagine da incorporare. Uno dei valori |
|
Facoltativo. Il tipo MIME dei contenuti dell'immagine. Valori supportati: |
Video
Parametri | |
---|---|
|
(Facoltativo) Byte video codificati in stringa base64. Uno dei valori |
|
(Facoltativo) La posizione di Cloud Storage del video su cui eseguire l'embedding. Uno dei valori |
|
(Facoltativo) La configurazione del segmento video. |
VideoSegmentConfig
Parametri | |
---|---|
|
(Facoltativo) L'offset iniziale del segmento di video in secondi. Se non specificato, viene calcolato con |
|
(Facoltativo) Lo spostamento finale del segmento video in secondi. Se non specificato, viene calcolato con |
|
Facoltativo. L'intervallo del video di cui verrà generato l'embedding. Il valore minimo per |
Corpo della risposta
{
"predictions": [
{
"textEmbedding": [
float,
// array of 128, 256, 512, or 1408 float values
float
],
"imageEmbedding": [
float,
// array of 128, 256, 512, or 1408 float values
float
],
"videoEmbeddings": [
{
"startOffsetSec": integer,
"endOffsetSec": integer,
"embedding": [
float,
// array of 1408 float values
float
]
}
]
}
],
"deployedModelId": string
}
Elemento Response | Descrizione |
---|---|
imageEmbedding |
Elenco di numeri in virgola mobile di dimensioni 128, 256, 512 o 1408. |
textEmbedding |
Elenco di numeri in virgola mobile di dimensioni 128, 256, 512 o 1408. |
videoEmbeddings |
Elenco di dimensioni di 1408 numeri con l'ora di inizio e di fine (in secondi) del segmento di video per cui vengono generati gli embedding. |
Esempi
Caso d'uso di base
Genera embedding dall'immagine
Utilizza il seguente esempio per generare embedding per un'immagine.
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 Google Cloud ID progetto.
- TEXT: il testo target per cui ottenere gli embedding. Ad esempio,
a cat
. - B64_ENCODED_IMG: l'immagine di destinazione per cui ottenere gli embedding. 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:
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"
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 " }
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.
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
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 la documentazione di riferimento dell'API Java di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Genera embedding dai video
Utilizza il seguente esempio per generare embedding per i contenuti video.
L'esempio seguente utilizza un video 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 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 Google Cloud ID progetto.
- 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": [ { "video": { "gcsUri": "VIDEO_URI ", "videoSegmentConfig": { "startOffsetSec":START_SECOND , "endOffsetSec":END_SECOND , "intervalSec":INTERVAL_SECONDS } } } ] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
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"
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
Risposta (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 " }
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.
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Caso d'uso avanzato
Utilizza il seguente esempio per ottenere embedding per contenuti video, di testo e immagine.
Per l'embedding dei video, puoi specificare il segmento del video e la densità di embedding.
L'esempio seguente utilizza dati di immagini, testo e video. Puoi utilizzare qualsiasi combinazione di questi tipi di dati nel corpo della richiesta.
Questo esempio utilizza un video archiviato 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 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 Google Cloud ID progetto.
- TEXT: il testo target per cui ottenere gli embedding. Ad esempio,
a cat
. - IMAGE_URI: l'URI Cloud Storage dell'immagine 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 " } [...] - 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:
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"
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 " }
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.
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Passaggi successivi
Per la documentazione dettagliata, consulta quanto segue: