import os from dotenv import load_dotenv from pydantic_settings import BaseSettings load_dotenv() class Settings(BaseSettings): # Groq API GROQ_API_KEY: str = os.getenv("GROQ_API_KEY", "") OPENAI_API_KEY: str = os.getenv("OPENAI_API_KEY", "") DEFAULT_MODEL: str = os.getenv("DEFAULT_MODEL", "openai/gpt-oss-20b") # Available Groq models AVAILABLE_GROQ_MODELS: list = [ "openai/gpt-oss-20b", "openai/gpt-oss-120b", "llama-3.3-70b-versatile", "llama-3.1-8b-instant", "meta-llama/llama-guard-4-12b" ] AVAILABLE_OPENAI_MODELS: list = [ "gpt-4o", "gpt-4-turbo", "gpt-4", "gpt-3.5-turbo" ] # Evaluation settings - Use /tmp for cache in Spaces DEFAULT_METRICS: list = ["accuracy", "faithfulness", "relevance", "toxicity"] CACHE_ENABLED: bool = os.getenv("CACHE_ENABLED", "True").lower() == "true" CACHE_DIR: str = os.getenv("CACHE_DIR", "/tmp/.cache" if os.path.exists("/tmp") else "./.cache") # API Provider DEFAULT_API_PROVIDER: str = os.getenv("DEFAULT_API_PROVIDER", "groq") # LangGraph settings MAX_CONCURRENT: int = 5 TIMEOUT: int = 30 class Config: env_file = ".env" settings = Settings()