UniterRouter
API 参考Google 兼容

嵌入内容

Gemini Embeddings API - 使用 Google 嵌入模型生成文本向量。构建语义搜索、RAG 和相似度匹配应用。

嵌入内容

为文本内容生成向量嵌入。嵌入是捕获语义含义的文本数值表示,适用于搜索、聚类和相似度比较。

端点

POST https://api.uniterouter.ai/v1beta/models/{model}:embedContent

认证

x-goog-api-key: your_uniterouter_api_key

路径参数

参数类型必需描述
modelstring是嵌入模型 ID(如 text-embedding-004)

请求体

参数类型必需描述
contentobject是要嵌入的内容
taskTypestring否嵌入的任务类型
titlestring否内容的可选标题
outputDimensionalityinteger否期望的嵌入维度

任务类型

任务类型描述
RETRIEVAL_QUERY用于搜索查询
RETRIEVAL_DOCUMENT用于待搜索的文档
SEMANTIC_SIMILARITY用于比较文本相似度
CLASSIFICATION用于文本分类
CLUSTERING用于文本聚类

请求示例

curl -X POST "https://api.uniterouter.ai/v1beta/models/text-embedding-004:embedContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $UNITEROUTER_API_KEY" \
  -d '{
    "content": {
      "parts": [{"text": "什么是机器学习?"}]
    },
    "taskType": "RETRIEVAL_QUERY"
  }'
import google.generativeai as genai

genai.configure(
    api_key="your_uniterouter_api_key",
    transport="rest",
    client_options={"api_endpoint": "api.uniterouter.ai"}
)

result = genai.embed_content(
    model="models/text-embedding-004",
    content="什么是机器学习?",
    task_type="retrieval_query"
)

print(f"嵌入维度: {len(result['embedding'])}")
print(f"前5个值: {result['embedding'][:5]}")
import { GoogleGenerativeAI } from "@google/generative-ai";

const genAI = new GoogleGenerativeAI("your_uniterouter_api_key", {
  baseUrl: "https://api.uniterouter.ai"
});

const model = genAI.getGenerativeModel({ model: "text-embedding-004" });

const result = await model.embedContent({
  content: { parts: [{ text: "什么是机器学习?" }] },
  taskType: "RETRIEVAL_QUERY"
});

console.log(`嵌入维度: ${result.embedding.values.length}`);

响应

{
  "embedding": {
    "values": [0.0123, -0.0456, 0.0789, ...]
  }
}

values 数组包含嵌入向量(text-embedding-004 通常为 768 维)。

批量嵌入

对于多个文本,使用批量端点:

POST /v1beta/models/{model}:batchEmbedContents
texts = [
    "什么是机器学习?",
    "深度学习如何工作?",
    "解释神经网络"
]

results = genai.embed_content(
    model="models/text-embedding-004",
    content=texts,
    task_type="retrieval_document"
)

for i, embedding in enumerate(results['embedding']):
    print(f"文本 {i}: {len(embedding)} 维")

嵌入模型

模型维度描述
text-embedding-004768最新嵌入模型
embedding-001768上一代

使用场景

语义搜索

import numpy as np

def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

# 嵌入查询
query_embedding = genai.embed_content(
    model="models/text-embedding-004",
    content="如何训练模型?",
    task_type="retrieval_query"
)['embedding']

# 嵌入文档
documents = ["训练 ML 模型...", "数据预处理...", "模型评估..."]
doc_embeddings = genai.embed_content(
    model="models/text-embedding-004",
    content=documents,
    task_type="retrieval_document"
)['embedding']

# 找到最相似的
similarities = [cosine_similarity(query_embedding, doc) for doc in doc_embeddings]
best_match = documents[np.argmax(similarities)]

相关文档

How is this guide?