Skip to main content
POST /gemini/v1beta/models/{model}:embedContent 用于生成文本的向量表示,适用于语义搜索、文本分类、聚类等场景。

基础请求

curl -X POST "$BASE_URL/gemini/v1beta/models/text-embedding-004:embedContent" \
  -H "x-goog-api-key: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "content": {
      "parts": [{"text": "Rivus AI 是一个多云模型网关。"}]
    }
  }'

响应示例

{
  "embedding": {
    "values": [0.123, -0.456, 0.789, ...]
  }
}

批量嵌入

如需处理多个文本,可以使用 requests 数组:
curl -X POST "$BASE_URL/gemini/v1beta/models/text-embedding-004:batchEmbedContents" \
  -H "x-goog-api-key: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "requests": [
      {"content": {"parts": [{"text": "第一段文本"}]}},
      {"content": {"parts": [{"text": "第二段文本"}]}},
      {"content": {"parts": [{"text": "第三段文本"}]}}
    ]
  }'

任务类型

通过 taskType 参数指定嵌入用途,可以优化向量质量:
{
  "content": {
    "parts": [{"text": "搜索查询文本"}]
  },
  "taskType": "RETRIEVAL_QUERY"
}
支持的任务类型:
  • RETRIEVAL_QUERY:检索查询(用户搜索词)
  • RETRIEVAL_DOCUMENT:检索文档(被搜索的文档)
  • SEMANTIC_SIMILARITY:语义相似度计算
  • CLASSIFICATION:文本分类
  • CLUSTERING:文本聚类

输出维度

部分模型支持自定义输出维度:
{
  "content": {
    "parts": [{"text": "文本内容"}]
  },
  "outputDimensionality": 256
}
text-embedding-004 默认输出 768 维向量,支持降维到 256 维以节省存储空间。

OpenAI 兼容方式

也可以使用 OpenAI 风格的 Embeddings 接口:
curl -X POST "$BASE_URL/v1/embeddings" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-004",
    "input": "Rivus AI 是一个多云模型网关。"
  }'
Rivus AI 会自动完成格式转换,返回标准 OpenAI 格式的响应。

常见用途

  • 语义搜索:将文档和查询转换为向量,通过余弦相似度找到最相关的文档
  • 文本分类:使用向量作为特征输入到分类模型
  • 去重与聚类:通过向量相似度识别重复或相似内容
  • 推荐系统:基于内容向量计算相似度进行推荐
建议为查询和文档使用不同的 taskType,可以显著提升检索效果。