Text embeddings API 可将文本数据转换为数值向量。这些向量表示旨在捕获它们所表示字词的语义含义和上下文。
支持的模型:
您可以使用以下模型获取文本嵌入:
模型名称 | 说明 | 输出维度 | 最大序列长度 | 支持的文本语言 |
---|---|---|---|---|
gemini-embedding-001 |
在英语、多语言和代码任务方面均表现出卓越性能。它整合了 text-embedding-005 和 text-multilingual-embedding-002 等先前的专用模型,并使它们在各自的领域中实现了更佳性能。如需了解详情,请参阅我们的技术报告。 |
高达 3072 | 2048 个 token | 支持的文本语言 |
text-embedding-005 |
擅长处理英语和代码任务。 | 高达 768 | 2048 个 token | 英语 |
text-multilingual-embedding-002 |
擅长处理多语言任务。 | 高达 768 | 2048 个 token | 支持的文本语言 |
如要获得出色的嵌入质量,请使用 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
如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 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 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
支持的文本语言
所有文本嵌入模型都支持英语文本,并已针对英语文本进行评估。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
。不推荐指定不含版本号的模型,因为其仅仅是一个指向另一个模型的旧版指针,并且不稳定。
如需了解详情,请参阅模型版本和生命周期。
后续步骤
如需查看详细文档,请参阅以下内容: