rag-intelligence / storage.py
aagzamov's picture
Clean deploy: RAG Intelligence for HF Spaces
faa1d3f
raw
history blame contribute delete
970 Bytes
"""
Centralized storage path configuration.
On Hugging Face Spaces (Docker), persistent storage is mounted at /data.
Locally, falls back to ./local_data so the repo stays clean.
"""
import os
from pathlib import Path
def _is_hf_space():
"""Detect if running inside a Hugging Face Space."""
return os.getenv("SPACE_ID") is not None
def get_storage_root():
"""Return the root directory for all persistent runtime data."""
if _is_hf_space():
return Path("/data")
return Path("./local_data")
def get_pdf_dir():
"""Directory where uploaded PDFs are stored."""
p = get_storage_root() / "pdfs"
p.mkdir(parents=True, exist_ok=True)
return p
def get_chroma_dir():
"""Directory where ChromaDB stores its database."""
p = get_storage_root() / "chroma"
p.mkdir(parents=True, exist_ok=True)
return p
def ensure_dirs():
"""Create all required directories at startup."""
get_pdf_dir()
get_chroma_dir()