API 参考Google 兼容
嵌入内容
Gemini Embeddings API - 使用 Google 嵌入模型生成文本向量。构建语义搜索、RAG 和相似度匹配应用。
嵌入内容
为文本内容生成向量嵌入。嵌入是捕获语义含义的文本数值表示,适用于搜索、聚类和相似度比较。
端点
POST https://api.uniterouter.ai/v1beta/models/{model}:embedContent认证
x-goog-api-key: your_uniterouter_api_key路径参数
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
model | string | 是 | 嵌入模型 ID(如 text-embedding-004) |
请求体
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
content | object | 是 | 要嵌入的内容 |
taskType | string | 否 | 嵌入的任务类型 |
title | string | 否 | 内容的可选标题 |
outputDimensionality | integer | 否 | 期望的嵌入维度 |
任务类型
| 任务类型 | 描述 |
|---|---|
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}:batchEmbedContentstexts = [
"什么是机器学习?",
"深度学习如何工作?",
"解释神经网络"
]
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-004 | 768 | 最新嵌入模型 |
embedding-001 | 768 | 上一代 |
使用场景
语义搜索
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)]相关文档
- 生成内容 - 文本生成
- 嵌入 (OpenAI) - OpenAI 兼容嵌入
How is this guide?