File size: 1,508 Bytes
02d44c3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
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
"""
# Prioritize Gemini as requested for the demo
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":
# Vision specific logic if needed, but Gemini handles both
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}")
|