Embed Content
Gemini Embeddings API - Generate text-embedding vectors with Google's embedding models. Build semantic search, RAG, and similarity matching applications.
Embed Content
Generate vector embeddings for text content. Embeddings are numerical representations of text that capture semantic meaning, useful for search, clustering, and similarity comparisons.
Endpoint
POST https://api.uniterouter.ai/v1beta/models/{model}:embedContentAuthentication
x-goog-api-key: your_uniterouter_api_keyPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Embedding model ID (e.g., text-embedding-004) |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
content | object | Yes | Content to embed |
taskType | string | No | Type of task for the embedding |
title | string | No | Optional title for the content |
outputDimensionality | integer | No | Desired embedding dimensions |
Task Types
| Task Type | Description |
|---|---|
RETRIEVAL_QUERY | For search queries |
RETRIEVAL_DOCUMENT | For documents to be searched |
SEMANTIC_SIMILARITY | For comparing text similarity |
CLASSIFICATION | For text classification |
CLUSTERING | For clustering text |
Example Request
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": "What is machine learning?"}]
},
"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="What is machine learning?",
task_type="retrieval_query"
)
print(f"Embedding dimension: {len(result['embedding'])}")
print(f"First 5 values: {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: "What is machine learning?" }] },
taskType: "RETRIEVAL_QUERY"
});
console.log(`Embedding dimension: ${result.embedding.values.length}`);Response
{
"embedding": {
"values": [0.0123, -0.0456, 0.0789, ...]
}
}The values array contains the embedding vector (typically 768 dimensions for text-embedding-004).
Batch Embeddings
For multiple texts, use the batch endpoint:
POST /v1beta/models/{model}:batchEmbedContentstexts = [
"What is machine learning?",
"How does deep learning work?",
"Explain neural networks"
]
results = genai.embed_content(
model="models/text-embedding-004",
content=texts,
task_type="retrieval_document"
)
for i, embedding in enumerate(results['embedding']):
print(f"Text {i}: {len(embedding)} dimensions")Embedding Models
| Model | Dimensions | Description |
|---|---|---|
text-embedding-004 | 768 | Latest embedding model |
embedding-001 | 768 | Previous generation |
Use Cases
Semantic Search
import numpy as np
def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
# Embed query
query_embedding = genai.embed_content(
model="models/text-embedding-004",
content="How to train a model?",
task_type="retrieval_query"
)['embedding']
# Embed documents
documents = ["Training ML models...", "Data preprocessing...", "Model evaluation..."]
doc_embeddings = genai.embed_content(
model="models/text-embedding-004",
content=documents,
task_type="retrieval_document"
)['embedding']
# Find most similar
similarities = [cosine_similarity(query_embedding, doc) for doc in doc_embeddings]
best_match = documents[np.argmax(similarities)]RAG (Retrieval-Augmented Generation)
# 1. Embed and store documents
# 2. Embed user query
# 3. Find relevant documents
# 4. Generate response with context
query = "What are transformers?"
query_embed = genai.embed_content(
model="models/text-embedding-004",
content=query,
task_type="retrieval_query"
)['embedding']
# Retrieve relevant docs from vector database
relevant_docs = vector_db.search(query_embed, top_k=3)
# Generate with context
model = genai.GenerativeModel("gemini-2.0-flash")
response = model.generate_content(f"""
Context: {relevant_docs}
Question: {query}
Answer based on the context:
""")Related
- Generate Content - Text generation
- Embeddings (OpenAI) - OpenAI-compatible embeddings
How is this guide?
Grounding & Search
Gemini Grounding API - Enhance AI responses with real-time Google Search data. Build fact-checked, up-to-date AI applications with web search integration.
Count Tokens POST
Gemini Token Counter API - Estimate token usage and costs before API calls. Calculate prompt tokens for Gemini Pro, Gemini 1.5 to optimize spending.