Skip to main content

Overview

Google Gemini provides embedding models including gemini-embedding-001, text-embedding-005, and text-multilingual-embedding-002. Supports both Gemini Developer API and Vertex AI with advanced features like safety filtering, task-specific embeddings, and configurable dimensionality. Provider Class: GeminiEmbedding Config Class: GeminiEmbeddingConfig

Dependencies

pip install google-genai
For Vertex AI support:
pip install google-auth

Examples

from upsonic import Agent, Task, KnowledgeBase
from upsonic.embeddings import GeminiEmbedding, GeminiEmbeddingConfig
from upsonic.vectordb import ChromaProvider, ChromaConfig, ConnectionConfig, Mode

# Create embedding provider (Developer API)
embedding = GeminiEmbedding(GeminiEmbeddingConfig(
    model_name="gemini-embedding-001",
    task_type="RETRIEVAL_DOCUMENT"
))

# Setup KnowledgeBase
vectordb = ChromaProvider(ChromaConfig(
    collection_name="gemini_docs",
    vector_size=3072,
    connection=ConnectionConfig(mode=Mode.IN_MEMORY)
))

kb = KnowledgeBase(
    sources=["document.txt"],
    embedding_provider=embedding,
    vectordb=vectordb
)

# Query with Agent
agent = Agent("openai/gpt-4o")
task = Task("What is this document about?", context=[kb])
result = agent.do(task)
print(result)

Parameters

ParameterTypeDescriptionDefaultSource
model_namestrGemini embedding model name"gemini-embedding-001"Specific
api_keystr | NoneGoogle AI API key (uses GOOGLE_API_KEY env var if None)NoneSpecific
task_typestrEmbedding task type (RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, etc.)"SEMANTIC_SIMILARITY"Specific
titlestr | NoneOptional title for contextNoneSpecific
enable_safety_filteringboolEnable Google’s safety filteringTrueSpecific
safety_settingsDict[str, str]Safety filtering settingsDefault dictSpecific
use_vertex_aiboolUse Vertex AI API instead of Gemini Developer APIFalseSpecific
use_google_cloud_authboolUse Google Cloud authenticationFalseSpecific
project_idstr | NoneGoogle Cloud project IDNoneSpecific
locationstrGoogle Cloud location"us-central1"Specific
api_versionstrAPI version to use (v1beta, v1, v1alpha)"v1beta"Specific
output_dimensionalityint | NoneOutput embedding dimension (128-3072)NoneSpecific
embedding_configDict[str, Any] | NoneAdditional embedding configurationNoneSpecific
enable_batch_processingboolEnable batch processing optimizationTrueSpecific
enable_cachingboolEnable response cachingFalseSpecific
cache_ttl_secondsintCache TTL in seconds3600Specific
requests_per_minuteintRequests per minute limit60Specific
batch_sizeintBatch size for document embedding100Base
max_retriesintMaximum number of retries on failure3Base
normalize_embeddingsboolWhether to normalize embeddings to unit lengthTrueBase
show_progressboolWhether to show progress during batch operationsTrueBase