Text embeddings API 可將文字資料轉換為數值向量。這些向量表示法旨在擷取所代表字詞的語意意義和情境。
支援的型號:
英文模型 | 多語言模型 | Gemini 嵌入模型 |
---|---|---|
text-embedding-005 |
text-multilingual-embedding-002 |
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。 - AUTO_TRUNCATE:如果設為
false
,超過符記限制的文字會導致要求失敗。預設值為true
。
HTTP 方法和網址:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-005: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/text-embedding-005: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/text-embedding-005:predict" | Select-Object -Expand Content
您應該會收到類似以下的 JSON 回應。請注意,values
已截斷以節省空間。
- 請使用
generateContent
方法,要求在回應完全產生後傳回。為減少使用者對延遲的感受,請使用streamGenerateContent
方法,在回應產生時即時串流傳輸。 - 多模態模型 ID 位於網址結尾,位於方法 (例如
gemini-2.0-flash
) 之前。這個範例可能也支援其他模型。
Python 適用的 Vertex AI SDK
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Vertex AI SDK for Python API 參考說明文件。
Go
在試用這個範例之前,請先按照 Vertex AI 快速入門:使用用戶端程式庫中的操作說明設定 Go。詳情請參閱 Vertex AI Go API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照 Vertex AI 快速入門:使用用戶端程式庫中的操作說明設定 Java。詳情請參閱 Vertex AI Java API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
在試用這個範例之前,請先按照 Vertex AI 快速入門:使用用戶端程式庫中的操作說明設定 Node.js。詳情請參閱 Vertex AI Node.js API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
進階用途
以下範例展示一些進階功能
- 使用
task_type
和title
改善嵌入品質。 - 使用參數控管 API 的行為。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- TEXT:要為其產生嵌入的文字。限制:五個文字,每個文字最多 3,072 個符記。
- TASK_TYPE:用於傳達預期的後端應用程式,以利模型產生更優質的嵌入資料。
- TITLE:用於協助模型產生更優質的嵌入資料。
- AUTO_TRUNCATE:如果設為
false
,超過符記限制的文字會導致要求失敗。預設值為true
。 - OUTPUT_DIMENSIONALITY:用於指定輸出嵌入大小。如果設為此值,輸出嵌入資料會截斷至指定的大小。
HTTP 方法和網址:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/textembedding-gecko@003:predict
JSON 要求主體:
{ "instances": [ { "content": "TEXT", "task_type": "TASK_TYPE", "title": "TITLE" }, ], "parameters": { "autoTruncate": AUTO_TRUNCATE, "outputDimensionality": OUTPUT_DIMENSIONALITY } }
如要傳送要求,請選擇以下其中一個選項:
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/textembedding-gecko@003: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/textembedding-gecko@003:predict" | Select-Object -Expand Content
您應該會收到類似以下的 JSON 回應。請注意,values
已截斷以節省空間。
Python 適用的 Vertex AI SDK
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Vertex AI SDK for Python API 參考說明文件。
Go
在試用這個範例之前,請先按照 Vertex AI 快速入門:使用用戶端程式庫中的操作說明設定 Go。詳情請參閱 Vertex AI Go API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照 Vertex AI 快速入門:使用用戶端程式庫中的操作說明設定 Java。詳情請參閱 Vertex AI Java API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
在試用這個範例之前,請先按照 Vertex AI 快速入門:使用用戶端程式庫中的操作說明設定 Node.js。詳情請參閱 Vertex AI Node.js API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
支援的文字語言
所有文字嵌入模型皆支援英文文字,且已在英文文字上評估。textembedding-gecko-multilingual@001
和 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
。
模型版本
如要������目前的穩定模型,請指定模型版本號碼,例如 text-embedding-005
。不建議指定沒有版本號碼的模型,例如 textembedding-gecko
,因為這只是指向其他模型的舊版指標,而且不穩定。
詳情請參閱「模型版本和生命週期」。
後續步驟
如需詳細說明文件,請參閱以下內容: