Model embedding multimodal menghasilkan vektor dimensi 1408* berdasarkan input yang Anda berikan, yang dapat mencakup kombinasi data gambar, teks, dan video. Vektor penyematan kemudian dapat digunakan untuk tugas selanjutnya seperti klasifikasi gambar atau moderasi konten video.
Vektor embedding gambar dan vektor embedding teks berada dalam ruang semantik yang sama dengan dimensi yang sama. Oleh karena itu, vektor ini dapat digunakan secara bergantian untuk kasus penggunaan seperti menelusuri gambar berdasarkan teks, atau menelusuri video berdasarkan gambar.
Untuk kasus penggunaan embedding hanya teks, sebaiknya gunakan API embedding teks Vertex AI. Misalnya, API embedding teks mungkin lebih baik untuk penelusuran semantik berbasis teks, pengelompokan, analisis dokumen berformat panjang, dan kasus penggunaan pengambilan teks atau question answering lainnya. Untuk informasi selengkapnya, lihat Mendapatkan embedding teks.
Model yang didukung
Anda bisa mendapatkan embedding multimodal menggunakan model berikut:
multimodalembedding
Praktik terbaik
Pertimbangkan aspek input berikut saat menggunakan model embedding multimodal:
- Teks dalam gambar - Model dapat membedakan teks dalam gambar, mirip dengan
pengenalan karakter optik (OCR). Jika Anda perlu membedakan antara
deskripsi konten gambar dan teks dalam gambar, pertimbangkan
untuk menggunakan rekayasa perintah guna menentukan konten target Anda.
Misalnya: alih-alih hanya "kucing" (cat), gunakan "gambar kucing" atau
"text 'kucing", bergantung pada kasus penggunaan Anda.
teks 'kucing'
gambar kucing
Kredit gambar: Manja Vitolic di Unsplash. - Kemiripan embedding - Produk titik embedding bukan merupakan probabilitas yang dikalibrasi. Produk titik adalah metrik kesamaan dan mungkin memiliki distribusi skor yang berbeda untuk kasus penggunaan yang berbeda. Oleh karena itu, hindari penggunaan nilai minimum tetap untuk mengukur kualitas. Sebagai gantinya, gunakan pendekatan peringkat untuk pengambilan, atau gunakan sigmoid untuk klasifikasi.
Penggunaan API
Batas API
Batas berikut berlaku saat Anda menggunakan model multimodalembedding
untuk
penyematan teks dan gambar:
Batas | Nilai dan deskripsi |
---|---|
Data teks dan gambar | |
Jumlah maksimum permintaan API per menit per project | 120 |
Panjang teks maksimum | 32 token (~32 kata) Panjang teks maksimum adalah 32 token (sekitar 32 kata). Jika input melebihi 32 token, model akan mempersingkat input menjadi 32 token secara internal. |
Pemodelan bahasa | Inggris |
Format gambar | BMP, GIF, JPG, PNG |
Ukuran gambar | Gambar berenkode Base64: 20 MB (saat ditranskode ke PNG) Gambar Cloud Storage: 20 MB (format file asli) Ukuran gambar maksimum yang diterima adalah 20 MB. Untuk menghindari peningkatan latensi jaringan, gunakan gambar yang lebih kecil. Selain itu, model ini mengubah ukuran gambar menjadi resolusi 512 x 512 piksel. Jadi, Anda tidak perlu memberikan gambar yang beresolusi lebih tinggi. |
Data video | |
Audio didukung | T/A - Model ini tidak mempertimbangkan konten audio saat membuat penyematan video |
Format video | AVI, FLV, MKV, MOV, MP4, MPEG, MPG, WEBM, dan WMV |
Durasi video maksimum (Cloud Storage) | Tidak ada batas. Namun, hanya konten berdurasi 2 menit yang dapat dianalisis dalam satu waktu. |
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
Siapkan autentikasi untuk lingkungan Anda.
Select the tab for how you plan to use the samples on this page:
Java
Untuk menggunakan contoh Java di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta -
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Node.js
Untuk menggunakan contoh Node.js di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta -
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Python
Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta -
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
- Untuk menggunakan Python SDK, ikuti petunjuk di Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Vertex AI SDK untuk Python.
- Opsional. Tinjau harga untuk fitur ini. Harga untuk penyematan bergantung pada jenis data yang Anda kirim (seperti gambar atau teks), dan juga bergantung pada mode yang Anda gunakan untuk jenis data tertentu (seperti Video Plus, Video Standar, atau Video Dasar).
Lokasi
Lokasi adalah region yang dapat Anda tentukan dalam permintaan untuk mengontrol tempat data dalam penyimpanan tidak aktif. Untuk mengetahui daftar region yang tersedia, lihat Lokasi AI Generatif di Vertex AI.
Pesan error
Error kuota terlampaui
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.
Jika ini adalah pertama kalinya Anda menerima error ini, gunakan konsol Google Cloud guna meminta penambahan kuota untuk project Anda. Gunakan filter berikut sebelum meminta penambahan:
Service ID: aiplatform.googleapis.com
metric: aiplatform.googleapis.com/online_prediction_requests_per_base_model
base_model:multimodalembedding
Jika Anda telah mengirimkan permintaan penambahan kuota, tunggu sebelum mengirimkan permintaan lain. Jika Anda perlu menambah kuota lagi, ulangi permintaan penambahan kuota dengan alasan untuk permintaan kuota berkelanjutan.
Menentukan penyematan dimensi yang lebih rendah
Secara default, permintaan penyematan menampilkan vektor float 1408 untuk jenis data. Anda juga dapat menentukan penyematan dimensi yang lebih rendah (vektor float 128, 256, atau 512) untuk data teks dan gambar. Opsi ini memungkinkan Anda mengoptimalkan latensi dan penyimpanan atau kualitas berdasarkan cara Anda berencana menggunakan penyematan. Embedding dengan dimensi lebih rendah akan mengurangi kebutuhan penyimpanan dan latensi yang lebih rendah untuk tugas penyematan berikutnya (seperti penelusuran atau rekomendasi), sedangkan embedding dengan dimensi lebih tinggi menawarkan akurasi yang lebih besar untuk tugas yang sama.
REST
Dimensi rendah dapat diakses dengan menambahkan kolom
parameters.dimension
. Parameter ini menerima salah satu nilai berikut:128
,256
,512
, atau1408
. Responsnya menyertakan penyematan dimensi tersebut.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region project Anda. Misalnya,
us-central1
,europe-west2
, atauasia-northeast3
. Untuk mengetahui daftar region yang tersedia, lihat Lokasi AI Generatif di Vertex AI. - PROJECT_ID: project ID Google Cloud Anda.
- IMAGE_URI: URI Cloud Storage gambar target yang akan diberikan embedding.
Contoh,
gs://my-bucket/embeddings/supermarket-img.png
.Anda juga dapat memberikan gambar sebagai string byte berenkode base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- TEXT: Teks target yang akan diberikan embedding. Contoh,
a cat
. - EMBEDDING_DIMENSION: Jumlah dimensi penyematan. Nilai yang lebih rendah menawarkan latensi yang menurun saat menggunakan penyematan ini untuk tugas berikutnya, sedangkan nilai yang lebih tinggi menawarkan akurasi yang lebih baik. Nilai yang tersedia:
128
,256
,512
, dan1408
(default).
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Isi JSON permintaan:
{ "instances": [ { "image": { "gcsUri": "IMAGE_URI" }, "text": "TEXT" } ], "parameters": { "dimension": EMBEDDING_DIMENSION } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut: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
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:$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 ContentEmbedding yang ditampilkan model akan menampilkan vektor float dari dimensi yang Anda tentukan. Contoh respons berikut disingkat karena ruang yang terbatas. 128 dimensi:
{ "predictions": [ { "imageEmbedding": [ 0.0279239565, [...128 dimension vector...] 0.00403284049 ], "textEmbedding": [ 0.202921599, [...128 dimension vector...] -0.0365431122 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
256 dimensi:
{ "predictions": [ { "imageEmbedding": [ 0.248620048, [...256 dimension vector...] -0.0646447465 ], "textEmbedding": [ 0.0757875815, [...256 dimension vector...] -0.02749932 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
512 dimensi:
{ "predictions": [ { "imageEmbedding": [ -0.0523675755, [...512 dimension vector...] -0.0444030389 ], "textEmbedding": [ -0.0592851527, [...512 dimension vector...] 0.0350437127 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Go
Mengirim permintaan penyematan (gambar dan teks)
Gunakan contoh kode berikut untuk mengirim permintaan penyematan dengan data gambar dan teks. Contoh ini menunjukkan cara mengirim permintaan dengan kedua jenis data, tetapi Anda juga dapat menggunakan layanan dengan jenis data individual.
Mendapatkan embedding teks dan gambar
REST
Untuk mengetahui informasi selengkapnya tentang permintaan model
multimodalembedding
, lihat referensi API modelmultimodalembedding
.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region project Anda. Misalnya,
us-central1
,europe-west2
, atauasia-northeast3
. Untuk mengetahui daftar region yang tersedia, lihat Lokasi AI Generatif di Vertex AI. - PROJECT_ID: project ID Google Cloud Anda.
- TEXT: Teks target yang akan diberikan embedding. Contoh,
a cat
. - B64_ENCODED_IMG: Gambar target yang akan diberikan embedding. Gambar harus ditentukan sebagai string byte berenkode base64.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Isi JSON permintaan:
{ "instances": [ { "text": "TEXT", "image": { "bytesBase64Encoded": "B64_ENCODED_IMG" } } ] }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut: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
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:$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
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Go Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Mengirim permintaan penyematan (video, gambar, atau teks)
Saat mengirim permintaan penyematan, Anda dapat menentukan video input saja, atau Anda dapat menentukan kombinasi data video, gambar, dan teks.
Mode penyematan video
Ada tiga mode yang dapat Anda gunakan dengan penyematan video: Dasar, Standar, atau Plus. Mode ini sesuai dengan kepadatan penyematan yang dihasilkan, yang dapat ditentukan oleh konfigurasi
interval_sec
dalam permintaan. Untuk setiap interval video dengan durasiinterval_sec
, penyematan akan dibuat. Durasi interval video minimum adalah 4 detik. Durasi interval yang lebih dari 120 detik dapat berdampak negatif pada kualitas penyematan yang dihasilkan.Harga untuk penyematan video bergantung pada mode yang Anda gunakan. Untuk mengetahui informasi selengkapnya, lihat harga.
Tabel berikut merangkum tiga mode yang dapat Anda gunakan untuk penyematan video:
Mode Jumlah maksimum penyematan per menit Interval penyematan video (nilai minimum) Essential 4 15
Ini sesuai dengan:intervalSec
>= 15Standard 8 8
Ini sesuai dengan: 8 <=intervalSec
< 15Plus 15 4
Ini sesuai dengan: 4 <=intervalSec
< 8Praktik terbaik penyematan video
Pertimbangkan hal berikut saat Anda mengirim permintaan penyematan video:
Untuk membuat satu penyematan selama dua menit pertama video input dengan durasi berapa pun, gunakan setelan
videoSegmentConfig
berikut:request.json
:// other request body content "videoSegmentConfig": { "intervalSec": 120 } // other request body content
Untuk membuat penyematan video dengan durasi lebih dari dua menit, Anda dapat mengirim beberapa permintaan yang menentukan waktu mulai dan waktu berakhir di
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
Mendapatkan penyematan video
Gunakan contoh berikut untuk mendapatkan penyematan untuk konten video saja.
REST
Untuk mengetahui informasi selengkapnya tentang permintaan model
multimodalembedding
, lihat referensi API modelmultimodalembedding
.Contoh berikut menggunakan video yang berada di Cloud Storage. Anda juga dapat menggunakan kolom
video.bytesBase64Encoded
untuk memberikan representasi string berenkode base64 dari video.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region project Anda. Misalnya,
us-central1
,europe-west2
, atauasia-northeast3
. Untuk mengetahui daftar region yang tersedia, lihat Lokasi AI Generatif di Vertex AI. - PROJECT_ID: project ID Google Cloud Anda.
- VIDEO_URI: Cloud Storage URI video target yang akan diberikan embedding.
Contoh,
gs://my-bucket/embeddings/supermarket-video.mp4
.Anda juga dapat memberikan video sebagai string byte berenkode base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Opsional. Segmen video tertentu (dalam detik) yang menjadi tujuan pembuatan penyematan.Contoh:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Penggunaan konfigurasi ini menentukan data video dari 10 detik hingga 60 detik dan menghasilkan penyematan untuk interval video 10 detik berikut: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Interval video ini (
"intervalSec": 10
) termasuk dalam Mode penyematan video standar, dan pengguna akan ditagih dengan Tarif harga mode standar.Jika Anda menghapus
videoSegmentConfig
, layanan akan menggunakan nilai default berikut:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Interval video ini ("intervalSec": 16
) termasuk dalam mode penyematan video Essential, dan pengguna akan ditagih dengan tarif harga mode Essential.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Isi JSON permintaan:
{ "instances": [ { "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut: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
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:$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 ContentRespons (video 7 detik, tidak ada
videoSegmentConfig
yang ditentukan):{ "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" }
Respons (video berdurasi 59 detik, dengan konfigurasi segmen video berikut:
"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
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Go Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Mendapatkan penyematan gambar, teks, dan video
Gunakan contoh berikut untuk mendapatkan penyematan konten video, teks, dan gambar.
REST
Untuk mengetahui informasi selengkapnya tentang permintaan model
multimodalembedding
, lihat referensi API modelmultimodalembedding
.Contoh berikut menggunakan data gambar, teks, dan video. Anda dapat menggunakan kombinasi jenis data ini dalam isi permintaan.
Selain itu, contoh ini menggunakan video yang berada di Cloud Storage. Anda juga dapat menggunakan kolom
video.bytesBase64Encoded
untuk memberikan representasi string berenkode base64 dari video.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region project Anda. Misalnya,
us-central1
,europe-west2
, atauasia-northeast3
. Untuk mengetahui daftar region yang tersedia, lihat Lokasi AI Generatif di Vertex AI. - PROJECT_ID: project ID Google Cloud Anda.
- TEXT: Teks target yang akan diberikan embedding. Contoh,
a cat
. - IMAGE_URI: URI Cloud Storage gambar target yang akan diberikan embedding.
Contoh,
gs://my-bucket/embeddings/supermarket-img.png
.Anda juga dapat memberikan gambar sebagai string byte berenkode base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- VIDEO_URI: Cloud Storage URI video target yang akan diberikan embedding.
Contoh,
gs://my-bucket/embeddings/supermarket-video.mp4
.Anda juga dapat memberikan video sebagai string byte berenkode base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Opsional. Segmen video tertentu (dalam detik) yang menjadi tujuan pembuatan penyematan.Contoh:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Penggunaan konfigurasi ini menentukan data video dari 10 detik hingga 60 detik dan menghasilkan penyematan untuk interval video 10 detik berikut: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Interval video ini (
"intervalSec": 10
) termasuk dalam Mode penyematan video standar, dan pengguna akan ditagih dengan Tarif harga mode standar.Jika Anda menghapus
videoSegmentConfig
, layanan akan menggunakan nilai default berikut:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Interval video ini ("intervalSec": 16
) termasuk dalam mode penyematan video Essential, dan pengguna akan ditagih dengan tarif harga mode Essential.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Isi JSON permintaan:
{ "instances": [ { "text": "TEXT", "image": { "gcsUri": "IMAGE_URI" }, "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut: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
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:$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
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Go Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Langkah selanjutnya
- Baca blog "Apa itu Penelusuran Multimodal: 'LLM dengan visi' mengubah bisnis".
- Untuk informasi tentang kasus penggunaan hanya teks (penelusuran semantik berbasis teks, pengelompokan, analisis dokumen berformat panjang, dan kasus penggunaan pengambilan teks atau question answering lainnya), baca Mendapatkan teks embedding.
- Lihat semua penawaran AI generatif gambar Vertex AI di ringkasan Imagen di Vertex AI.
- Jelajahi model yang telah dilatih sebelumnya di Model Garden.
- Pelajari praktik terbaik AI yang bertanggung jawab dan filter keamanan di Vertex AI.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-12-21 UTC.