rag_system.openrouter_embeddings module
Embeddings client for RAG system.
Uses the native Google Gemini API only, via the shared key pool in gemini_embed_pool. Provides both async (OpenRouterEmbeddings) and synchronous (SyncOpenRouterEmbeddings, ChromaDB-compatible) interfaces.
- class rag_system.openrouter_embeddings.OpenRouterEmbeddings(api_key=None, model='google/gemini-embedding-001', dimensions=None, timeout=30.0, gemini_api_key=None, gemini_only=True)[source]
Bases:
objectAsync embeddings client using Gemini API via the shared key pool.
- Parameters:
- DEFAULT_MODEL = 'google/gemini-embedding-001'
- MAX_BATCH_SIZE = 50
- MAX_BATCH_CHARS = 50000
- __init__(api_key=None, model='google/gemini-embedding-001', dimensions=None, timeout=30.0, gemini_api_key=None, gemini_only=True)[source]
Initialize the instance.
- async embed_text_for_search(text, task_type='QUESTION_ANSWERING')[source]
Embed a single text using the Gemini API only, with a task type.
Intended for pre-computing a query embedding before passing it to
FileRAGManager.search(query_embedding=...). Retries on transient errors with exponential back-off.
- class rag_system.openrouter_embeddings.SyncOpenRouterEmbeddings(api_key=None, model='google/gemini-embedding-001', dimensions=None, timeout=30.0, gemini_api_key=None, gemini_only=True, document_task_type=None, query_task_type=None)[source]
Bases:
objectSynchronous wrapper used by ChromaDB’s embedding function interface.
Uses Gemini API via the shared key pool. Batches are dispatched concurrently via a ThreadPoolExecutor when there are multiple batches.
- Parameters:
- MAX_BATCH_SIZE = 50
- MAX_BATCH_CHARS = 50000
- MAX_EMBED_WORKERS = 20
- __init__(api_key=None, model='google/gemini-embedding-001', dimensions=None, timeout=30.0, gemini_api_key=None, gemini_only=True, document_task_type=None, query_task_type=None)[source]
Initialize the instance.
- Parameters:
api_key (
Optional[str]) – Unused; kept for backward compatibility.model (
str) – The model value.timeout (
float) – Maximum wait time in seconds.gemini_api_key (
Optional[str]) – Unused; pool is used instead.gemini_only (
bool) – Unused; always Gemini API.document_task_type (
Optional[str]) – Optional GeminitaskTypefor corpus (e.g.RETRIEVAL_DOCUMENT); used byembed_documents.query_task_type (
Optional[str]) – Optional GeminitaskTypefor queries (e.g.RETRIEVAL_QUERY); used byembed_query.
- __call__(input)[source]
ChromaDB EmbeddingFunction interface (legacy).
Uses
document_task_typewhen set (same asembed_documents()).