LunarTech / src /config.py
vishalkatheriya's picture
Upload 2 files
477224c verified
"""Configuration for the Handbook Generator app."""
import os
from pathlib import Path
# Load from .env if present
from dotenv import load_dotenv
load_dotenv()
# ── API Keys ──────────────────────────────────────────────────────────
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
CHAT_MODEL = os.getenv("MODEL", "openai/gpt-4o").strip() or "openai/gpt-4o"
EMBEDDING_MODEL = "text-embedding-3-small"
# Supabase
SUPABASE_URL = os.getenv("SUPABASE_URL", "")
SUPABASE_KEY = os.getenv("SUPABASE_KEY", "")
# ── Paths ─────────────────────────────────────────────────────────────
BASE_DIR = Path(__file__).resolve().parent
# HuggingFace Spaces has a read-only filesystem β€” use /tmp for writable dirs
IS_HF_SPACE = bool(os.getenv("SPACE_ID"))
_DATA_ROOT = Path("/tmp/handbook_data") if IS_HF_SPACE else BASE_DIR
UPLOADS_DIR = _DATA_ROOT / "uploads"
UPLOADS_DIR.mkdir(parents=True, exist_ok=True)
WORKING_DIR = _DATA_ROOT / "lightrag_working"
WORKING_DIR.mkdir(parents=True, exist_ok=True)
# ── Chunking (used by pdf_processor) ─────────────────────────────────
CHUNK_SIZE = 1000
CHUNK_OVERLAP = 200
# ── Handbook generation ───────────────────────────────────────────────
TARGET_WORD_COUNT = 20000
SECTION_WORD_TARGET = 1200
MAX_SECTIONS = 25