A API Multimodal embeddings gera vetores com base na entrada que fornece, que pode incluir uma combinação de dados de imagem, texto e vídeo. Os vetores de incorporação podem ser usados para tarefas subsequentes, como a classificação de imagens ou a moderação de conteúdo de vídeo.
Para informações conceptuais adicionais, consulte o artigo Incorporações multimodais.
Modelos suportados:
Modelo | Código |
---|---|
Incorporações para multimodal | multimodalembedding@001 |
Sintaxe de exemplo
Sintaxe para enviar um pedido da API Multimodal Embeddings.
curl
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": [ ... ], }'
Python
from vertexai.vision_models import MultiModalEmbeddingModel model = MultiModalEmbeddingModel.from_pretrained("multimodalembedding") model.get_embeddings(...)
Lista de parâmetros
Consulte exemplos para ver detalhes de implementação.
Corpo do pedido
{
"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
}
}
]
}
Parâmetros | |
---|---|
|
Opcional: A imagem para gerar incorporações. |
|
Opcional: O texto para gerar incorporações. |
|
Opcional: O segmento de vídeo para gerar incorporações. |
|
Opcional: A dimensão da incorporação,
incluída na resposta. Aplica-se apenas à entrada de texto e imagens. Valores
aceites: |
Imagem
Parâmetros | |
---|---|
|
Opcional: Bytes de imagem codificados numa string base64. Tem de ser um dos seguintes valores: |
|
Opcional. A localização do Cloud Storage da imagem para realizar a incorporação. Uma das opções |
|
Opcional. O tipo MIME do conteúdo da imagem. Valores suportados: |
Vídeo
Parâmetros | |
---|---|
|
Opcional: Bytes de vídeo codificados numa string base64. Uma das opções |
|
Opcional: A localização do vídeo no Cloud Storage no qual vai incorporar o conteúdo. Uma das opções |
|
Opcional: A configuração do segmento de vídeo. |
VideoSegmentConfig
Parâmetros | |
---|---|
|
Opcional: A deslocação de início do segmento de vídeo em segundos. Se não for especificado, é calculado com |
|
Opcional: A deslocação do fim do segmento de vídeo em segundos. Se não for especificado, é calculado com |
|
Opcional. O intervalo do vídeo em que a incorporação vai ser gerada. O valor mínimo de |
Corpo da resposta
{
"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 de resposta | Descrição |
---|---|
imageEmbedding |
Lista de números de ponto flutuante de 128, 256, 512 ou 1408 dimensões. |
textEmbedding |
Lista de números de ponto flutuante de 128, 256, 512 ou 1408 dimensões. |
videoEmbeddings |
Lista de 1408 dimensões de números de vírgula flutuante com a hora de início e de fim (em segundos) do segmento de vídeo para o qual as incorporações são geradas. |
Exemplos
Exemplo de utilização básico
Gere incorporações a partir de imagens
Use o exemplo seguinte para gerar incorporações para uma imagem.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a região do seu projeto. Por exemplo,
us-central1
,europe-west2
ouasia-northeast3
. Para ver uma lista das regiões disponíveis, consulte Localizações da IA generativa na Vertex AI. - PROJECT_ID: o seu Google Cloud ID do projeto.
- TEXT: o texto de destino para obter incorporações. Por exemplo,
a cat
. - B64_ENCODED_IMG: a imagem de destino para obter incorporações. A imagem tem de ser especificada como uma string de bytes codificada em base64.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Corpo JSON do pedido:
{ "instances": [ { "text": "TEXT", "image": { "bytesBase64Encoded": "B64_ENCODED_IMG" } } ] }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Gere incorporações a partir de vídeo
Use o exemplo seguinte para gerar incorporações para conteúdo de vídeo.
REST
O exemplo seguinte usa um vídeo localizado no Cloud Storage. Também pode usar o campo video.bytesBase64Encoded
para fornecer uma representação de string codificada em base64 do vídeo.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a região do seu projeto. Por exemplo,
us-central1
,europe-west2
ouasia-northeast3
. Para ver uma lista das regiões disponíveis, consulte Localizações da IA generativa na Vertex AI. - PROJECT_ID: o seu Google Cloud ID do projeto.
- VIDEO_URI: o URI do Cloud Storage do vídeo de destino para obter incorporações.
Por exemplo,
gs://my-bucket/embeddings/supermarket-video.mp4
.Também pode fornecer o vídeo como uma string de bytes codificada em base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Opcional. Os segmentos de vídeo específicos (em segundos) para os quais as incorporações são geradas.Por exemplo:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
A utilização desta configuração especifica dados de vídeo de 10 a 60 segundos e gera incorporações para os seguintes intervalos de vídeo de 10 segundos: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Este intervalo de vídeo (
"intervalSec": 10
) enquadra-se no modo de incorporação de vídeo padrão, e é cobrado ao utilizador a taxa de preços do modo padrão.Se omitir
videoSegmentConfig
, o serviço usa os seguintes valores predefinidos:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Este intervalo de vídeo ("intervalSec": 16
) enquadra-se no modo de incorporação de vídeo essencial, e é cobrado ao utilizador a tarifa de preços do modo essencial.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Corpo JSON do pedido:
{ "instances": [ { "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Resposta (vídeo de 7 segundos, sem videoSegmentConfig
especificado):
{ "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" }
Resposta (vídeo de 59 segundos, com a seguinte configuração do segmento de vídeo: "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
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Go
Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Exemplo de utilização avançado
Use o exemplo seguinte para obter incorporações de conteúdo de vídeo, texto e imagem.
Para a incorporação de vídeos, pode especificar o segmento de vídeo e a densidade de incorporação.
REST
O exemplo seguinte usa dados de imagem, texto e vídeo. Pode usar qualquer combinação destes tipos de dados no corpo do pedido.
Este exemplo usa um vídeo localizado no Cloud Storage. Também pode usar o campo video.bytesBase64Encoded
para fornecer uma representação de string codificada em base64 do vídeo.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a região do seu projeto. Por exemplo,
us-central1
,europe-west2
ouasia-northeast3
. Para ver uma lista das regiões disponíveis, consulte Localizações da IA generativa na Vertex AI. - PROJECT_ID: o seu Google Cloud ID do projeto.
- TEXT: o texto de destino para obter incorporações. Por exemplo,
a cat
. - IMAGE_URI: o URI do Cloud Storage da imagem de destino para obter incorporações.
Por exemplo,
gs://my-bucket/embeddings/supermarket-img.png
.Também pode fornecer a imagem como uma string de bytes codificada em base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- VIDEO_URI: o URI do Cloud Storage do vídeo de destino para obter incorporações.
Por exemplo,
gs://my-bucket/embeddings/supermarket-video.mp4
.Também pode fornecer o vídeo como uma string de bytes codificada em base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Opcional. Os segmentos de vídeo específicos (em segundos) para os quais as incorporações são geradas.Por exemplo:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
A utilização desta configuração especifica dados de vídeo de 10 a 60 segundos e gera incorporações para os seguintes intervalos de vídeo de 10 segundos: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Este intervalo de vídeo (
"intervalSec": 10
) enquadra-se no modo de incorporação de vídeo padrão, e é cobrado ao utilizador a taxa de preços do modo padrão.Se omitir
videoSegmentConfig
, o serviço usa os seguintes valores predefinidos:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Este intervalo de vídeo ("intervalSec": 16
) enquadra-se no modo de incorporação de vídeo essencial, e é cobrado ao utilizador a tarifa de preços do modo essencial.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Corpo JSON do pedido:
{ "instances": [ { "text": "TEXT", "image": { "gcsUri": "IMAGE_URI" }, "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Go
Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
O que se segue?
Para ver documentação detalhada, consulte o seguinte: