Try / src /config /settings.py
Alamgirapi's picture
Upload folder src
b325aad verified
import os
from typing import Dict, Any
from dotenv import load_dotenv
load_dotenv()
class Settings:
"""Configuration settings for the AgenticRAG system"""
# API Keys
GROQ_API_KEY: str = os.getenv("GROQ_API_KEY", "")
GOOGLE_API_KEY: str = os.getenv("GOOGLE_API_KEY", "")
GOOGLE_CSE_ID: str = os.getenv("GOOGLE_CSE_ID", "")
# Model Configuration
GROQ_MODEL: str = "llama3-8b-8192"
GROQ_TEMPERATURE: float = 0.1
OPENAI_MODEL: str = "gpt-4.1-nano-2025-04-14"
OPENAI_TEMPERATURE: float = 0.3
OPENAI_API_KEY: str = os.getenv("OPENAI_API_KEY", "")
# Embedding Model
EMBEDDING_MODEL: str = "sentence-transformers/all-MiniLM-L6-v2"
OPENAI_EMBEDDING_MODEL = "text-embedding-3-large"
# Vector Store
VECTORSTORE_PATH: str = "data/vectorstore"
# Search Configuration
SEARCH_RESULTS_COUNT: int = 5
SERPER_API_KEY: str = os.getenv("SERPER_API_KEY", "")
TAVILY_API_KEY: str = os.getenv("TAVILY_API_KEY", "")
# Query Enhancement
MAX_QUERY_LENGTH: int = 200
# Routing Configuration
DEFAULT_ROUTE: str = "DIRECT"
@classmethod
def validate(cls) -> bool:
"""Validate required settings"""
required_keys = ["GROQ_API_KEY"]
for key in required_keys:
if not getattr(cls, key):
raise ValueError(f"Missing required setting: {key}")
return True
settings = Settings()