Files
notes/config.py
SimolZimol 32a2ce26b8 modified: config.py
modified:   services/rag_service.py
2026-05-23 12:27:28 +02:00

36 lines
1.5 KiB
Python

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")
_db_uri = os.environ.get("DATABASE_URI", "")
_default_uri = f"sqlite:///{os.path.join(BASE_DIR, 'data', 'app.db')}"
# Fall back to SQLite if DATABASE_URI is empty or not a valid SQLAlchemy URL
SQLALCHEMY_DATABASE_URI = (
_db_uri if _db_uri and "://" in _db_uri else _default_uri
)
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"))
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")
LM_STUDIO_EMBEDDING_MODEL = os.environ.get("LM_STUDIO_EMBEDDING_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", "6"))
RAG_CHUNK_SIZE = int(os.environ.get("RAG_CHUNK_SIZE", "300"))
RAG_CHUNK_OVERLAP = int(os.environ.get("RAG_CHUNK_OVERLAP", "75"))