Text embeddings API 會將文字資料轉換為數值向量。這些向量表示法旨在擷取所代表字詞的語意和情境。
支援的機型:
您可以使用下列模型取得文字嵌入:
模型名稱 | 說明 | 輸出維度 | 序列長度上限 | 支援的文字語言 |
---|---|---|---|---|
gemini-embedding-001 |
在英文、多語言和程式碼工作方面表現優異。這項模型整合了先前的專用模型 (例如 text-embedding-005 和 text-multilingual-embedding-002 ),並在各自領域中展現更出色的效能。詳情請參閱我們的技術報告。 |
最多 3072 個 | 2048 個符記 | 支援的文字語言 |
text-embedding-005 |
專精於英文和程式碼工作。 | 最多 768 個 | 2048 個符記 | 英文 |
text-multilingual-embedding-002 |
擅長處理多語言工作。 | 最多 768 個 | 2048 個符記 | 支援的文字語言 |
如要獲得最佳嵌入品質,請使用 gemini-embedding-001
,這是我們設計的大型模型,可提供最高效能。請注意,gemini-embedding-001
每個要求僅支援一個執行個體。
語法
curl
PROJECT_ID = PROJECT_ID REGION = us-central1 MODEL_ID = MODEL_ID curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:predict -d \ '{ "instances": [ ... ], "parameters": { ... } }'
Python
PROJECT_ID = PROJECT_ID REGION = us-central1 MODEL_ID = MODEL_ID import vertexai from vertexai.language_models import TextEmbeddingModel vertexai.init(project=PROJECT_ID, location=REGION) model = TextEmbeddingModel.from_pretrained(MODEL_ID) embeddings = model.get_embeddings(...)
參數清單
頂層欄位 | |
---|---|
|
包含下列欄位的物件清單:
|
|
包含下列欄位的物件:
|
instance 個欄位 |
|
---|---|
|
要生成嵌入的文字。 |
|
自由參加: 用於傳達預期的下游應用程式,協助模型產生更優質的嵌入。如果留空,系統會使用預設值
如要進一步瞭解工作類型,請參閱「選擇嵌入工作類型」。 |
|
自由參加: 用於協助模型產生更優質的嵌入。
必須搭配 |
task_type
下表說明 task_type
參數值及其用途:
task_type |
說明 |
---|---|
RETRIEVAL_QUERY |
指定給定文字是搜尋或擷取設定中的查詢。文件端請使用 RETRIEVAL_DOCUMENT。 |
RETRIEVAL_DOCUMENT |
指定所提供的文字是搜尋或擷取設定中的文件。 |
SEMANTIC_SIMILARITY |
指定給定文字用於語意文字相似度 (STS)。 |
CLASSIFICATION |
指定嵌入內容用於分類。 |
CLUSTERING |
指定嵌入內容用於叢集。 |
QUESTION_ANSWERING |
指定查詢嵌入內容用於回答問題。文件端請使用 RETRIEVAL_DOCUMENT。 |
FACT_VERIFICATION |
指定查詢嵌入內容用於事實查核。文件端請使用 RETRIEVAL_DOCUMENT。 |
CODE_RETRIEVAL_QUERY |
指定查詢嵌入內容用於 Java 和 Python 的程式碼擷取作業。文件端請使用 RETRIEVAL_DOCUMENT。 |
擷取工作:
查詢:使用 task_type=RETRIEVAL_QUERY
指出輸入文字是搜尋查詢。
語料庫:使用 task_type=RETRIEVAL_DOCUMENT
,表示輸入文字是搜尋的文件集合的一部分。
相似度工作:
語意相似度:針對兩個輸入文字使用 task_type= SEMANTIC_SIMILARITY
,評估整體意義相似度。
parameters 個欄位 |
|
---|---|
|
自由參加: 如果設為 true,系統會截斷輸入文字。如果設為 false,輸入文字長度超過模型支援的上限時,系統會傳回錯誤。預設值為 true。 |
|
自由參加: 用於指定輸出嵌入大小。如果設定,輸出嵌入內容會截斷至指定大小。 |
要求主體
{
"instances": [
{
"task_type": "RETRIEVAL_DOCUMENT",
"title": "document title",
"content": "I would like embeddings for this text!"
},
]
}
回應主體
{
"predictions": [
{
"embeddings": {
"statistics": {
"truncated": boolean,
"token_count": integer
},
"values": [ number ]
}
}
]
}
回覆元素 | |
---|---|
|
物件清單,包含下列欄位:
|
embeddings 個欄位 |
|
---|---|
|
|
|
從輸入文字計算的統計資料。包含:
|
回應範例
{
"predictions": [
{
"embeddings": {
"values": [
0.0058424929156899452,
0.011848051100969315,
0.032247550785541534,
-0.031829461455345154,
-0.055369812995195389,
...
],
"statistics": {
"token_count": 4,
"truncated": false
}
}
}
]
}
範例
嵌入文字字串
以下範例說明如何取得文字字串的嵌入。
REST
設定環境後,即可使用 REST 測試文字提示。下列範例會將要求傳送至發布商模型端點。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- TEXT:要產生嵌入的文字。限制:除了
textembedding-gecko@001
以外,所有模型最多可輸入五段文字,每段文字最多 2,048 個權杖。textembedding-gecko@001
的輸入權杖長度上限為 3072。對於gemini-embedding-001
,每項要求只能包含單一輸入文字。詳情請參閱「文字嵌入限制」。 - AUTO_TRUNCATE:如果設為
false
,文字超出權杖限制會導致要求失敗。預設值為true
。
HTTP 方法和網址:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001:predict
JSON 要求主體:
{ "instances": [ { "content": "TEXT"} ], "parameters": { "autoTruncate": AUTO_TRUNCATE } }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
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
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$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
您應該會收到類似如下的 JSON 回應。請注意,為節省空間,values
已遭截斷。
- 使用
generateContent
方法,要求在完整生成回覆後再傳回。 如要減少人類觀眾的延遲感,請使用streamGenerateContent
方法,在生成回覆的同時串流回覆內容。 - 多模態模型 ID 位於網址尾端,方法之前 (例如
gemini-2.0-flash
)。這個範例也可能支援其他模型。
Python
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件。
Go
在試用這個範例之前,請先按照Go使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Go API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
在試用這個範例之前,請先按照Java使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Java API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Node.js API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
支援的文字語言
所有文字嵌入模型都支援英文文字,且已針對英文文字進行評估。text-multilingual-embedding-002
模型也支援下列語言,並已通過評估:
- 評估語言:
Arabic (ar)
、Bengali (bn)
、English (en)
、Spanish (es)
、German (de)
、Persian (fa)
、Finnish (fi)
、French (fr)
、Hindi (hi)
、Indonesian (id)
、Japanese (ja)
、Korean (ko)
、Russian (ru)
、Swahili (sw)
、Telugu (te)
、Thai (th)
、Yoruba (yo)
、Chinese (zh)
- 支援的語言:
Afrikaans
、Albanian
、Amharic
、Arabic
、Armenian
、Azerbaijani
、Basque
、Belarusiasn
、Bengali
、Bulgarian
、Burmese
、Catalan
、Cebuano
、Chichewa
、Chinese
、Corsican
、Czech
、Danish
、Dutch
、English
、Esperanto
、Estonian
、Filipino
、Finnish
、French
、Galician
、Georgian
、German
、Greek
、Gujarati
、Haitian Creole
、Hausa
、Hawaiian
、Hebrew
、Hindi
、Hmong
、Hungarian
、Icelandic
、Igbo
、Indonesian
、Irish
、Italian
、Japanese
、Javanese
、Kannada
、Kazakh
、Khmer
、Korean
、Kurdish
、Kyrgyz
、Lao
、Latin
、Latvian
、Lithuanian
、Luxembourgish
、Macedonian
、Malagasy
、Malay
、Malayalam
、Maltese
、Maori
、Marathi
、Mongolian
、Nepali
、Norwegian
、Pashto
、Persian
、Polish
、Portuguese
、Punjabi
、Romanian
、Russian
、Samoan
、Scottish Gaelic
、Serbian
、Shona
、Sindhi
、Sinhala
、Slovak
、Slovenian
、Somali
、Sotho
、Spanish
、Sundanese
、Swahili
、Swedish
、Tajik
、Tamil
、Telugu
、Thai
、Turkish
、Ukrainian
、Urdu
、Uzbek
、Vietnamese
、Welsh
、West Frisian
、Xhosa
、Yiddish
、Yoruba
、Zulu
。
gemini-embedding-001
模型支援下列語言:
Arabic
、Bengali
、Bulgarian
、Chinese (Simplified and Traditional)
、Croatian
、Czech
、Danish
、Dutch
、English
、Estonian
、Finnish
、French
、German
、Greek
、Hebrew
、Hindi
、Hungarian
、Indonesian
、Italian
、Japanese
、Korean
、Latvian
、Lithuanian
、Norwegian
、Polish
、Portuguese
、Romanian
、Russian
、Serbian
、Slovak
、Slovenian
、Spanish
、Swahili
、Swedish
、Thai
、Turkish
、Ukrainian
、Vietnamese
、Afrikaans
、Amharic
、Assamese
、Azerbaijani
、Belarusian
、Bosnian
、Catalan
、Cebuano
、Corsican
、Welsh
、Dhivehi
、Esperanto
、Basque
、Persian
、Filipino (Tagalog)
、Frisian
、Irish
、Scots Gaelic
、Galician
、Gujarati
、Hausa
、Hawaiian
、Hmong
、Haitian Creole
、Armenian
、Igbo
、Icelandic
、Javanese
、Georgian
、Kazakh
、Khmer
、Kannada
、Krio
、Kurdish
、Kyrgyz
、Latin
、Luxembourgish
、Lao
、Malagasy
、Maori
、Macedonian
、Malayalam
、Mongolian
、Meiteilon (Manipuri)
、Marathi
、Malay
、Maltese
、Myanmar (Burmese)
、Nepali
、Nyanja (Chichewa)
、Odia (Oriya)
、Punjabi
、Pashto
、Sindhi
、Sinhala (Sinhalese)
、Samoan
、Shona
、Somali
、Albanian
、Sesotho
、Sundanese
、Tamil
、Telugu
、Tajik
、Uyghur
、Urdu
、Uzbek
、Xhosa
、Yiddish
、Yoruba
、Zulu
。
模型版本
如要使用目前的穩定模型,請指定模型版本號碼,例如 gemini-embedding-001
。不建議指定沒有版本號碼的模型,因為這只是指向其他模型的不穩定舊版指標。
詳情請參閱「模型版本和生命週期」。
後續步驟
如需詳細說明文件,請參閱下列內容: