kaori02's picture
feat: AutoStream AI Sales Agent with LangGraph + Streamlit UI
3295172
from __future__ import annotations
import os
from langchain_core.language_models import BaseChatModel
def get_llm() -> BaseChatModel:
"""Return a chat model based on available API keys.
Priority order: GROQ → ANTHROPIC → OPENAI → GOOGLE
Override with LLM_PROVIDER env var.
"""
provider = os.getenv("LLM_PROVIDER", "auto").lower()
if provider == "groq" or (provider == "auto" and os.getenv("GROQ_API_KEY")):
from langchain_groq import ChatGroq
return ChatGroq(
model=os.getenv("GROQ_MODEL", "llama-3.3-70b-versatile"),
temperature=0.3,
)
if provider == "anthropic" or (provider == "auto" and os.getenv("ANTHROPIC_API_KEY")):
from langchain_anthropic import ChatAnthropic
return ChatAnthropic(
model=os.getenv("ANTHROPIC_MODEL", "claude-3-haiku-20240307"),
temperature=0.3,
)
if provider == "openai" or (provider == "auto" and os.getenv("OPENAI_API_KEY")):
from langchain_openai import ChatOpenAI
return ChatOpenAI(
model=os.getenv("OPENAI_MODEL", "gpt-4o-mini"),
temperature=0.3,
)
if provider == "google" or (provider == "auto" and os.getenv("GOOGLE_API_KEY")):
from langchain_google_genai import ChatGoogleGenerativeAI
return ChatGoogleGenerativeAI(
model=os.getenv("GOOGLE_MODEL", "gemini-1.5-flash"),
temperature=0.3,
)
raise ValueError(
"No LLM provider configured.\n"
"Set one of: GROQ_API_KEY, ANTHROPIC_API_KEY, OPENAI_API_KEY, or GOOGLE_API_KEY in your .env file."
)