Aryan2301/YouTube_RAG_Intelligence
0
1import os2 3from dotenv import load_dotenv4from langchain_groq import ChatGroq5from langchain_ollama import ChatOllama6 7from utils.constants import (8 LLM_MODEL,9 SUMMARY_MODEL,10 LLM_TEMPERATURE,11)12 13load_dotenv()14 15 16def get_groq_api_key():17 return os.environ.get("GROQ_API_KEY")18 19 20def load_llm():21 """Load the primary LLM (Groq) for normal chat and RAG flow."""22 groq_api_key = get_groq_api_key()23 return ChatGroq(24 model=LLM_MODEL,25 groq_api_key=groq_api_key,26 temperature=LLM_TEMPERATURE,27 )28 29 30def load_summary_llm():31 """Load the summarization LLM (gpt-oss:120b-cloud via Ollama)."""32 ollama_key = (33 os.environ.get("OLLAMA")34 or os.environ.get("OLLAMA_API_KEY")35 )36 ollama_host = (37 os.environ.get("OLLAMA_HOST")38 or os.environ.get("OLLAMA_BASE_URL")39 or "https://ollama.com"40 )41 42 if ollama_key:43 os.environ["OLLAMA_API_KEY"] = ollama_key44 if ollama_host:45 os.environ["OLLAMA_HOST"] = ollama_host46 47 client_kwargs = {}48 if ollama_key:49 client_kwargs["headers"] = {"Authorization": f"Bearer {ollama_key}"}50 51 kwargs = {52 "model": SUMMARY_MODEL,53 "base_url": ollama_host,54 "temperature": LLM_TEMPERATURE,55 }56 if client_kwargs:57 kwargs["client_kwargs"] = client_kwargs58 kwargs["async_client_kwargs"] = client_kwargs59 60 return ChatOllama(**kwargs)