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. Akzeptierte Werte: |
Bild
Parameter | |
---|---|
|
Optional: Bildbytes, die in einem Base64-String codiert sind. Muss |
|
Optional: Der Cloud Storage-Speicherort des Bildes, das eingebettet werden soll. Entweder |
|
Optional: Der MIME-Typ des Bildinhalts. Unterstützte Werte: |
Video
Parameter | |
---|---|
|
Optional: In base64-String codierte Videobyte. Entweder |
|
Optional: Der Cloud Storage-Speicherort des Videos, in dem die Einbettung durchgeführt werden soll. Entweder |
|
Optional: Die Konfiguration des Videosegments. |
VideoSegmentConfig
Parameter | |
---|---|
|
Optional: Der Startversatz des Videosegments in Sekunden. Wenn sie nicht angegeben ist, wird sie mit |
|
Optional: Der Endversatz des Videosegments in Sekunden. Wenn keine Angabe erfolgt, wird er mit |
|
Optional: Das Intervall des Videos, das die Einbettung generiert. 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
Verwenden Sie das folgende Beispiel, um Einbettungen für ein Bild zu generieren.
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 Referenzdokumentation zur Python API.
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.
Einbettungen aus Videos generieren
Im folgenden Beispiel werden Einbettungen für Videoinhalte generiert.
REST
Im folgenden Beispiel wird ein Video in Cloud Storage verwendet. Sie können das Feld video.bytesBase64Encoded
auch verwenden, um eine base64-codierte Stringdarstellung des Videos bereitzustellen.
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.Beispiel:
[...] "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-Video, kein 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 Referenzdokumentation zur Python API.
Erweiterter Anwendungsfall
Im folgenden Beispiel werden Einbettungen für Video-, Text- und Bildinhalte verwendet.
Für die Videoeinbettung können Sie das Videosegment und die Einbettungsdichte angeben.
REST
Im folgenden Beispiel werden Bild-, Text- und Videodaten verwendet. Sie können eine beliebige Kombination dieser Datentypen im Anfragetext verwenden.
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 Zielvideos, 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.Beispiel:
[...] "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 Referenzdokumentation zur Python API.
Nächste Schritte
Eine ausführliche Dokumentation finden Sie hier: