Dokumen ini menjelaskan cara membuat embedding teks menggunakan Gemini Enterprise Agent Platform Text embeddings API.
Gemini Enterprise Agent Platform text embeddings API menggunakan representasi vektor padat: gemini-embedding-001, misalnya, menggunakan vektor 3072 dimensi. Model embedding vektor padat menggunakan metode deep learning yang mirip dengan yang digunakan oleh model bahasa besar. Tidak seperti vektor jarang, yang cenderung memetakan kata secara langsung ke angka, vektor padat dirancang untuk merepresentasikan makna teks dengan lebih baik. Manfaat menggunakan embedding vektor padat dalam AI generatif adalah, alih-alih menelusuri kecocokan kata atau sintaksis langsung, Anda dapat menelusuri bagian yang sesuai dengan makna kueri dengan lebih baik, meskipun bagian tersebut tidak menggunakan bahasa yang sama.
Vektor dinormalisasi, sehingga Anda dapat menggunakan kesamaan kosinus, perkalian titik, atau jarak Euclidean untuk memberikan peringkat kesamaan yang sama.
- Untuk mempelajari embedding lebih lanjut, lihat ringkasan embedding API.
- Untuk mempelajari model embedding teks, lihat Embedding teks.
- Untuk mengetahui informasi tentang bahasa yang didukung oleh setiap model embedding, lihat Bahasa teks yang didukung.
Sebelum memulai
- Login ke akun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- Pilih jenis tugas untuk tugas embedding Anda.
Batas API
Untuk setiap permintaan, Anda dibatasi hingga 250 teks input. API memiliki batas token input maksimum sebesar 20.000. Input yang melebihi batas ini akan menghasilkan error 400. Setiap teks input individual dibatasi lebih lanjut hingga 2.048 token; kelebihan apa pun akan dipotong secara diam-diam. Anda juga dapat menonaktifkan pemotongan diam-diam dengan menetapkan autoTruncate ke false.
Untuk mengetahui informasi selengkapnya, lihat Batas embedding teks.
Mendapatkan embedding teks untuk cuplikan teks
Anda bisa mendapatkan embedding teks untuk cuplikan teks dengan menggunakan Agent Platform API atau Agent Platform SDK untuk Python.
Memilih dimensi embedding
Semua model menghasilkan vektor embedding berdurasi penuh secara default. Untuk gemini-embedding-001, vektor ini memiliki 3072 dimensi, dan model lainnya menghasilkan vektor 768 dimensi. Namun, dengan menggunakan parameter output_dimensionality, pengguna dapat mengontrol ukuran vektor embedding output. Memilih dimensi output yang lebih kecil dapat menghemat ruang penyimpanan dan meningkatkan efisiensi komputasi untuk aplikasi hilir, sekaligus mengorbankan sedikit kualitas.
Contoh berikut menggunakan model gemini-embedding-001.
Python
Instal
pip install --upgrade google-genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Go
Pelajari cara menginstal atau mengupdate Go.
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Node.js
Instal
npm install @google/genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Java
Pelajari cara menginstal atau mengupdate Java.
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: [project ID](/resource-manager/docs/creating-managing-projects#identifiers) Anda. .
- TEXT: Teks yang embedding-nya ingin Anda buat. Batas: lima teks dengan maksimal 2.048 token per teks untuk semua model kecuali
textembedding-gecko@001. Panjang token input maksimum untuktextembedding-gecko@001adalah 3072. Untukgemini-embedding-001, setiap permintaan hanya dapat menyertakan satu teks input. Untuk mengetahui informasi selengkapnya, lihat Batas embedding teks. - AUTO_TRUNCATE: Jika ditetapkan ke
false, teks yang melebihi batas token akan menyebabkan permintaan gagal. Nilai default value-nya adalahtrue.
Metode HTTP dan URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001:predict
Meminta isi JSON:
{
"instances": [
{ "content": "TEXT"}
],
"parameters": {
"autoTruncate": AUTO_TRUNCATE
}
}
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001:predict" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan yang berikut ini: Perhatikan bahwa values
telah dipotong untuk menghemat ruang penyimpanan.
Contoh perintah curl
MODEL_ID="gemini-embedding-001"
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/${MODEL_ID}:predict -d \
$'{
"instances": [
{ "content": "What is life?"}
],
}'
Model yang didukung
Tabel berikut menunjukkan model embedding teks Google dan terbuka yang tersedia.
Model Google
Anda bisa mendapatkan embedding teks dengan menggunakan model berikut:
| Nama model | Deskripsi | Dimensi Output | Panjang urutan maksimum | Bahasa teks yang didukung |
|---|---|---|---|---|
gemini-embedding-001 |
Performa canggih untuk tugas bahasa Inggris, multibahasa, dan kode. Model ini menyatukan model yang sebelumnya terspesialisasi seperti text-embedding-005 dan text-multilingual-embedding-002 serta mencapai performa yang lebih baik di domainnya masing-masing. Baca Laporan Teknis kami untuk mengetahui detail selengkapnya. |
hingga 3072 | 2048 token | Bahasa teks yang didukung |
text-embedding-005 |
Terspesialisasi dalam tugas bahasa Inggris dan kode. | hingga 768 | 2048 token | Inggris |
text-multilingual-embedding-002 |
Terspesialisasi dalam tugas multibahasa. | hingga 768 | 2048 token | Bahasa teks yang didukung |
Untuk kualitas embedding yang unggul, gemini-embedding-001 adalah model besar kami yang dirancang untuk memberikan performa tertinggi.
Model terbuka
Anda bisa mendapatkan embedding teks dengan menggunakan model berikut:
| Nama model | Deskripsi | Dimensi output | Panjang urutan maksimum | Bahasa teks yang didukung |
|---|---|---|---|---|
multilingual-e5-small |
Bagian dari rangkaian model embedding teks E5. Varian kecil berisi 12 lapisan. | Hingga 384 | 512 token | Bahasa yang didukung |
multilingual-e5-large |
Bagian dari rangkaian model embedding teks E5. Varian besar berisi 24 lapisan. | Hingga 1024 | 512 token | Bahasa yang didukung |
Untuk memulai, lihat kartu model rangkaian E5 model card. Untuk mengetahui informasi selengkapnya tentang model terbuka, lihat Model terbuka untuk MaaS
Menambahkan embedding ke database vektor
Setelah membuat embedding, Anda dapat menambahkan embedding ke database vektor, seperti Vector Search. Hal ini memungkinkan pengambilan dengan latensi rendah, dan sangat penting seiring bertambahnya ukuran data Anda.
Untuk mempelajari Vector Search lebih lanjut, lihat Ringkasan Vector Search.
Langkah berikutnya
- Untuk mempelajari pembatasan kapasitas lebih lanjut, lihat Agent Platform pembatasan kapasitas.
- Untuk mendapatkan prediksi batch untuk embedding, lihat Mendapatkan inferensi
embedding teks batch
- Untuk mempelajari embedding multimodal lebih lanjut, lihat Mendapatkan embedding multimodal
- Untuk menyesuaikan embedding, lihat Menyesuaikan embedding teks
- Untuk mempelajari lebih lanjut riset di balik
text-embedding-005dantext-multilingual-embedding-002, lihat makalah riset Gecko: Versatile Text Embeddings Distilled from Large Language Models.