Die API für multimodale Einbettungen generiert Vektoren auf Basis der von Ihnen bereitgestellten Eingabe, die eine Kombination aus Bild-, Text- und Videodaten enthalten kann. Die Einbettungsvektoren können dann für nachfolgende Aufgaben wie die Bildklassifizierung oder Video-Inhaltsmoderation verwendet werden.
Weitere konzeptionelle Informationen finden Sie unter Multimodale Einbettungen.
Unterstützte Modelle:
Modell | Code |
---|---|
Einbettungen für multimodale Konfigurationen | multimodalembedding@001 |
Beispielsyntax
Syntax zum Senden einer API-Anfrage für multimodale Einbettungen.
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(...)
Parameterliste
Einzelheiten zur Implementierung finden Sie in den Beispielen.
Anfragetext
{
"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
}
}
]
}
Parameter | |
---|---|
|
Optional: Das Bild, für das Einbettungen generiert werden sollen. |
|
Optional: Der Text, für den Einbettungen generiert werden sollen. |
|
Optional: Das Videosegment, für das Einbettungen generiert werden sollen. |
|
Optional: Die Dimension der Einbettung, die in der Antwort enthalten ist. Gilt nur für Text- und Bildeingaben. Zulässige Werte: |
Bild
Parameter | |
---|---|
|
Optional: Bild-Bytes, die in einem Base64-String codiert sind. Muss |
|
Optional: Der Cloud Storage-Speicherort des Bildes, für das die Einbettung erstellt werden soll. Entweder |
|
Optional: Der MIME-Typ des Bildinhalts. Unterstützte Werte: |
Video
Parameter | |
---|---|
|
Optional: Videobytes, die als Base64-String codiert sind. Entweder |
|
Optional: Der Cloud Storage-Speicherort des Videos, für das die Einbettung erstellt werden soll. Entweder |
|
Optional: Die Konfiguration des Videosegments. |
VideoSegmentConfig
Parameter | |
---|---|
|
Optional: Der Start-Offset des Videosegments in Sekunden. Wenn nichts angegeben ist, wird der Wert mit |
|
Optional: Endversatz des Videosegments in Sekunden. Wenn nichts angegeben ist, wird der Wert mit |
|
Optional: Das Intervall des Videos, für das die Einbettung generiert wird. Der Minimalwert für |
Antworttext
{
"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
}
Antwortelement | Beschreibung |
---|---|
imageEmbedding |
Liste mit 128-, 256-, 512- oder 1408-Gleitkommazahlen. |
textEmbedding |
Liste mit 128-, 256-, 512- oder 1408-Gleitkommazahlen. |
videoEmbeddings |
Liste mit 1408 Dimensionen mit Gleitkommazahlen mit der Start- und Endzeit (in Sekunden) des Videosegments, für das die Einbettungen generiert werden. |
Beispiele
Grundlegender Anwendungsfall
Einbettungen aus Bildern generieren
Im folgenden Beispiel werden Einbettungen für ein Bild generiert.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Die Region Ihres Projekts. Beispiel:
us-central1
,europe-west2
oderasia-northeast3
. Eine Liste der verfügbaren Regionen finden Sie unter Generative AI an Vertex AI-Standorten. - PROJECT_ID: Ihre Google Cloud Projekt-ID.
- TEXT: Der Zieltext, für den Einbettungen abgerufen werden sollen. Beispiel:
a cat
- B64_ENCODED_IMG: Das Zielbild, für das Einbettungen abgerufen werden sollen. Das Bild muss als base64-codierter Bytestring angegeben werden.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
JSON-Text der Anfrage:
{ "instances": [ { "text": "TEXT", "image": { "bytesBase64Encoded": "B64_ENCODED_IMG" } } ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python-API-Referenzdokumentation.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Bevor Sie dieses Beispiel anwenden, folgen Sie den Go-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Go API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Einbettungen aus Videos generieren
Im folgenden Beispiel werden Einbettungen für Videoinhalte generiert.
REST
Im folgenden Beispiel wird ein Video verwendet, das sich in Cloud Storage befindet. Sie können das Feld video.bytesBase64Encoded
auch verwenden, um eine base64-codierte Stringdarstellung des Videos anzugeben.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Die Region Ihres Projekts. Beispiel:
us-central1
,europe-west2
oderasia-northeast3
. Eine Liste der verfügbaren Regionen finden Sie unter Generative AI an Vertex AI-Standorten. - PROJECT_ID: Ihre Google Cloud Projekt-ID.
- VIDEO_URI: Der Cloud Storage-URI des Zielvideos, für das Einbettungen abgerufen werden sollen.
Beispiel:
gs://my-bucket/embeddings/supermarket-video.mp4
.Sie können das Video auch als Base64-codierten Bytestring bereitstellen:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Optional. Die spezifischen Videosegmente (in Sekunden), für die die Einbettungen generiert werden.Beispiele:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Mit dieser Konfiguration werden Videodaten von 10 bis 60 Sekunden angegeben und Einbettungen für die folgenden 10-Sekunden-Videointervalle generiert: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Dieses Videointervall (
"intervalSec": 10
) fällt in den Standardmodus zum Einbetten von Videos und dem Nutzer wird der Standardpreis für den Standardmodus in Rechnung gestellt.Wenn Sie
videoSegmentConfig
weglassen, verwendet der Dienst die folgenden Standardwerte:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Dieses Videointervall ("intervalSec": 16
) fällt in den Einbettungsmodus für wichtige Videos und dem Nutzer wird der Preis für den wichtigen Modus in Rechnung gestellt.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
JSON-Text der Anfrage:
{ "instances": [ { "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Antwort (7 Sekunden langes Video, keine videoSegmentConfig
angegeben):
{ "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" }
Antwort (59 Sekunden langes Video mit der folgenden Videosegmentkonfiguration: "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
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python-API-Referenzdokumentation.
Go
Bevor Sie dieses Beispiel anwenden, folgen Sie den Go-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Go API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Erweiterter Anwendungsfall
Im folgenden Beispiel werden Einbettungen für Video-, Text- und Bildinhalte verwendet.
Beim Einbetten von Videos können Sie das Videosegment und die Einbettungsdichte angeben.
REST
Im folgenden Beispiel werden Bild-, Text- und Videodaten verwendet. Sie können diese Datentypen beliebig in Ihrem Anfragetext kombinieren.
In diesem Beispiel wird ein Video verwendet, das sich in Cloud Storage befindet. Sie können das Feld video.bytesBase64Encoded
auch verwenden, um eine base64-codierte Stringdarstellung des Videos anzugeben.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Die Region Ihres Projekts. Beispiel:
us-central1
,europe-west2
oderasia-northeast3
. Eine Liste der verfügbaren Regionen finden Sie unter Generative AI an Vertex AI-Standorten. - PROJECT_ID: Ihre Google Cloud Projekt-ID.
- TEXT: Der Zieltext, für den Einbettungen abgerufen werden sollen. Beispiel:
a cat
- IMAGE_URI: Der Cloud Storage-URI des Zielbildes, für das Einbettungen abgerufen werden sollen.
Beispiel:
gs://my-bucket/embeddings/supermarket-img.png
.Sie können das Bild auch als Base64-codierten Bytestring bereitstellen:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- VIDEO_URI: Der Cloud Storage-URI des Zielvideos, für das Einbettungen abgerufen werden sollen.
Beispiel:
gs://my-bucket/embeddings/supermarket-video.mp4
.Sie können das Video auch als Base64-codierten Bytestring bereitstellen:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Optional. Die spezifischen Videosegmente (in Sekunden), für die die Einbettungen generiert werden.Beispiele:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Mit dieser Konfiguration werden Videodaten von 10 bis 60 Sekunden angegeben und Einbettungen für die folgenden 10-Sekunden-Videointervalle generiert: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Dieses Videointervall (
"intervalSec": 10
) fällt in den Standardmodus zum Einbetten von Videos und dem Nutzer wird der Standardpreis für den Standardmodus in Rechnung gestellt.Wenn Sie
videoSegmentConfig
weglassen, verwendet der Dienst die folgenden Standardwerte:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Dieses Videointervall ("intervalSec": 16
) fällt in den Einbettungsmodus für wichtige Videos und dem Nutzer wird der Preis für den wichtigen Modus in Rechnung gestellt.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
JSON-Text der Anfrage:
{ "instances": [ { "text": "TEXT", "image": { "gcsUri": "IMAGE_URI" }, "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python-API-Referenzdokumentation.
Go
Bevor Sie dieses Beispiel anwenden, folgen Sie den Go-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Go API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Nächste Schritte
Eine ausführliche Dokumentation finden Sie hier: