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。不推荐指定不含版本号的模型,因为其仅仅是一个指向另一个模型的旧版指针,并且不稳定。
如需了解详情,请参阅模型版本和生命周期。
后续步骤
如需查看详细文档,请参阅以下内容: