EXAM_RAG_API / config.py
MinaNasser's picture
8th
1153571
from pydantic_settings import BaseSettings
from functools import lru_cache
from typing import Optional
class Settings(BaseSettings):
DEBUG: bool = False
APP_NAME: str = "IntegraRAG"
QDRANT_COLLECTION: str = "docs"
CustomLoaders: Optional[bool] = None
QDRANT_TYPE: str = "docker"
QDRANT_DOCKER_URL: str = "http://localhost:6333"
QDRANT_API_KEY: Optional[str] = None
CHUNK_SIZE: int = 1000
CHUNK_OVERLAP: Optional[int] = None
CHUNK_METHOD: Optional[str] = None
GRADE_WEBHOOK_URL: Optional[str] = None
REDIS_HOST: str = "localhost"
REDIS_PORT: int = 6379
REDIS_PASSWORD: Optional[str] = None
CALLBACK_URL: Optional[str] = None
# ---------- BACKENDS ----------
GENERATION_BACKEND: str = "OLLAMA"
EMBEDDING_BACKEND: str = "OLLAMA"
# ---------- API KEYS ----------
OPENAI_API_KEY: Optional[str] = None
OPENAI_API_URL: Optional[str] = None
COHERE_API_KEY: Optional[str] = None
OLLAMA_URL: str = "http://localhost:11434"
OLLAMA_API_KEY: Optional[str] = None
MISTRAL_API_KEY: Optional[str] = None
GROQ_API_KEY: Optional[str] = None
OPENROUTER_API_KEY: Optional[str] = None
OPENROUTER_SITE_URL: str = "http://localhost"
OPENROUTER_APP_NAME: str = "IntegraRAG"
OPENROUTER_SEARCH_MODEL: str = "perplexity/sonar-online"
HF_API_KEY: Optional[str] = None
DEEPSEEK_API_KEY: Optional[str] = None
GEMINI_API_KEY: Optional[str] = None
# ---------- MODELS ----------
GENERATION_MODEL_ID: str = "deepseek-v3.1:671b-cloud"
EMBEDDING_MODEL_ID: str = "embeddinggemma:latest"
EMBEDDING_MODEL_SIZE: int = 768
INPUT_DAFAULT_MAX_CHARACTERS: Optional[int] = None
GENERATION_DAFAULT_MAX_TOKENS: Optional[int] = None
GENERATION_DAFAULT_TEMPERATURE: Optional[float] = None
class Config:
env_file = ".env"
@lru_cache
def get_settings():
return Settings()