UniterRouter
API ReferenceGoogle Compatible

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}:embedContent

Authentication

x-goog-api-key: your_uniterouter_api_key

Path Parameters

ParameterTypeRequiredDescription
modelstringYesEmbedding model ID (e.g., text-embedding-004)

Request Body

ParameterTypeRequiredDescription
contentobjectYesContent to embed
taskTypestringNoType of task for the embedding
titlestringNoOptional title for the content
outputDimensionalityintegerNoDesired embedding dimensions

Task Types

Task TypeDescription
RETRIEVAL_QUERYFor search queries
RETRIEVAL_DOCUMENTFor documents to be searched
SEMANTIC_SIMILARITYFor comparing text similarity
CLASSIFICATIONFor text classification
CLUSTERINGFor 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}:batchEmbedContents
texts = [
    "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

ModelDimensionsDescription
text-embedding-004768Latest embedding model
embedding-001768Previous generation

Use Cases

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:
""")

How is this guide?