|
|
import os
|
|
|
from dotenv import load_dotenv
|
|
|
from pydantic_settings import BaseSettings
|
|
|
|
|
|
load_dotenv()
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
|
|
|
|
GROQ_API_KEY: str = os.getenv("GROQ_API_KEY", "")
|
|
|
OPENAI_API_KEY: str = os.getenv("OPENAI_API_KEY", "")
|
|
|
|
|
|
|
|
|
DEFAULT_GROQ_MODEL: str = os.getenv("DEFAULT_GROQ_MODEL", "openai/gpt-oss-20b")
|
|
|
DEFAULT_OPENAI_MODEL: str = os.getenv("DEFAULT_OPENAI_MODEL", "gpt-4o")
|
|
|
|
|
|
|
|
|
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"
|
|
|
]
|
|
|
|
|
|
|
|
|
DEFAULT_METRICS: list = ["accuracy", "faithfulness", "relevance", "toxicity"]
|
|
|
CACHE_ENABLED: bool = os.getenv("CACHE_ENABLED", "True").lower() == "true"
|
|
|
CACHE_DIR: str = "./.cache"
|
|
|
|
|
|
|
|
|
MAX_CONCURRENT: int = 5
|
|
|
TIMEOUT: int = 30
|
|
|
|
|
|
|
|
|
DEFAULT_API_PROVIDER: str = os.getenv("DEFAULT_API_PROVIDER", "groq")
|
|
|
|
|
|
class Config:
|
|
|
env_file = ".env"
|
|
|
|
|
|
settings = Settings() |