Spaces:
Sleeping
Sleeping
| import os | |
| from dotenv import load_dotenv | |
| from langchain_groq import ChatGroq | |
| from langchain_google_genai import ChatGoogleGenerativeAI | |
| load_dotenv() | |
| def get_llm(task_type: str = "general"): | |
| """ | |
| Factory to get the best LLM for the job. | |
| - Planning/Logic -> Groq (Llama 3.3) for speed. | |
| - Writing/Context -> Groq or Gemini Fallback. | |
| """ | |
| groq_key = os.getenv("GROQ_API_KEY") | |
| gemini_key = os.getenv("GEMINI_API_KEY") | |
| # PRIMARY: Groq (Llama 3.3 70B) | |
| if groq_key: | |
| try: | |
| return ChatGroq( | |
| temperature=0.7, | |
| model_name="llama-3.3-70b-versatile", | |
| api_key=groq_key | |
| ) | |
| except Exception as e: | |
| print(f"⚠️ Groq failed: {e}. Falling back...") | |
| # FALLBACK: Gemini | |
| if gemini_key: | |
| return ChatGoogleGenerativeAI( | |
| model="gemini-1.5-flash", | |
| google_api_key=gemini_key, | |
| temperature=0.7 | |
| ) | |
| raise ValueError("❌ No API Keys found! Please set GROQ_API_KEY or GEMINI_API_KEY.") | |