import os from dotenv import load_dotenv load_dotenv() BASE_DIR = os.path.abspath(os.path.dirname(__file__)) class Config: SECRET_KEY = os.environ.get("SECRET_KEY", "change-me-in-production") SQLALCHEMY_DATABASE_URI = os.environ.get( "DATABASE_URI", f"sqlite:///{os.path.join(BASE_DIR, 'app.db')}" ) SQLALCHEMY_TRACK_MODIFICATIONS = False UPLOAD_FOLDER = os.environ.get("UPLOAD_FOLDER", os.path.join(BASE_DIR, "uploads")) VECTORDB_PATH = os.environ.get("VECTORDB_PATH", os.path.join(BASE_DIR, "vectordb")) TRANSFORMERS_CACHE = os.environ.get( "TRANSFORMERS_CACHE", os.path.join(BASE_DIR, ".cache") ) ALLOWED_EXTENSIONS = {"pdf", "txt", "docx", "md"} MAX_CONTENT_LENGTH = 50 * 1024 * 1024 # 50 MB # LLM Provider: "lmstudio" or "openai" AI_PROVIDER = os.environ.get("AI_PROVIDER", "lmstudio") LM_STUDIO_URL = os.environ.get("LM_STUDIO_URL", "http://localhost:1234") LM_STUDIO_MODEL = os.environ.get("LM_STUDIO_MODEL", "local-model") OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "") OPENAI_MODEL = os.environ.get("OPENAI_MODEL", "gpt-4o") RAG_TOP_K = int(os.environ.get("RAG_TOP_K", "5")) RAG_CHUNK_SIZE = int(os.environ.get("RAG_CHUNK_SIZE", "500")) RAG_CHUNK_OVERLAP = int(os.environ.get("RAG_CHUNK_OVERLAP", "50"))