Spaces:
Running
Running
File size: 1,321 Bytes
b655c88 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | """
Quản lý đường dẫn dữ liệu runtime dùng chung cho local và Hugging Face Space.
"""
from __future__ import annotations
import os
ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
def get_default_data_dir() -> str:
"""Mặc định local dùng ./data, còn Space không cấu hình thì dùng /tmp/app_data."""
if os.getenv("SPACE_ID"):
return "/tmp/app_data"
return os.path.join(ROOT_DIR, "data")
DEFAULT_DATA_DIR = get_default_data_dir()
def get_app_data_dir() -> str:
"""Thư mục dữ liệu runtime. Có thể override bằng APP_DATA_DIR."""
data_dir = os.getenv("APP_DATA_DIR", DEFAULT_DATA_DIR).strip() or DEFAULT_DATA_DIR
return os.path.abspath(data_dir)
APP_DATA_DIR = get_app_data_dir()
PDF_DIR = os.path.join(APP_DATA_DIR, "pdf")
PROCESSED_DIR = os.path.join(APP_DATA_DIR, "processed")
VECTOR_DIR = os.path.join(APP_DATA_DIR, "csdl_vector")
DB_PATH = os.path.join(APP_DATA_DIR, "chatbot.db")
ENV_PATH = os.path.join(ROOT_DIR, ".env")
DATASET_MANIFEST_PATH = os.path.join(APP_DATA_DIR, "dataset_manifest.json")
def ensure_app_dirs() -> None:
"""Tạo các thư mục runtime cơ bản nếu chưa tồn tại."""
for path in (APP_DATA_DIR, PDF_DIR, PROCESSED_DIR, VECTOR_DIR):
os.makedirs(path, exist_ok=True)
|