gemini.py
1 from __future__ import annotations 2 3 """Gemini (Google Generative AI) embedding model implementation.""" 4 5 from typing import Any 6 7 from langchain_google_genai import GoogleGenerativeAIEmbeddings 8 9 from .protocol import Embeddings 10 11 12 def create_gemini_embedding(config: dict[str, Any]) -> Embeddings: 13 """Create Gemini embedding model. 14 15 Parameters 16 ---------- 17 config 18 Configuration dictionary. Common parameters include: 19 - model: str (optional) - Model name (e.g., "models/text-embedding-004") 20 - google_api_key: str (optional) 21 - Other parameters supported by GoogleGenerativeAIEmbeddings. 22 Invalid parameters will be caught by GoogleGenerativeAIEmbeddings and raise clear errors. 23 """ 24 try: 25 return GoogleGenerativeAIEmbeddings( 26 model=config.get("model_name"), 27 google_api_key=config.get("google_api_key") 28 ) 29 except TypeError as e: 30 raise ValueError( 31 f"Invalid parameter for Gemini embedding model: {e}. " 32 "Check GoogleGenerativeAIEmbeddings documentation for valid parameters." 33 ) from e 34 except Exception as e: 35 raise ValueError(f"Failed to create Gemini embedding model: {e}") from e 36