| import os |
| from langchain_openai import ChatOpenAI |
| from langchain_google_genai import ChatGoogleGenerativeAI |
| from dotenv import load_dotenv |
|
|
| load_dotenv() |
|
|
| def get_llm(model_type="text", temperature=0.1): |
| """ |
| Factory to get the appropriate LLM based on task type. |
| |
| Args: |
| model_type: "text" (DeepSeek) or "vision" (Gemini) |
| temperature: Creativity level |
| """ |
| |
| |
| google_key = os.getenv("GOOGLE_API_KEY") |
| if google_key: |
| return ChatGoogleGenerativeAI( |
| model="gemini-2.5-flash", |
| temperature=temperature, |
| google_api_key=google_key |
| ) |
| |
| if model_type == "text": |
| api_key = os.getenv("DEEPSEEK_API_KEY") |
| if not api_key: |
| raise ValueError("No API keys found (DeepSeek or Google)") |
| |
| return ChatOpenAI( |
| model="deepseek-chat", |
| api_key=api_key, |
| base_url="https://api.deepseek.com", |
| temperature=temperature |
| ) |
| |
| elif model_type == "vision": |
| |
| if google_key: |
| return ChatGoogleGenerativeAI( |
| model="gemini-2.5-flash", |
| temperature=temperature, |
| google_api_key=google_key |
| ) |
| raise ValueError("Google API Key required for vision") |
| |
| else: |
| raise ValueError(f"Unknown model_type: {model_type}") |
|
|