deepyuna's picture
Update app.py
ed02ac5 verified
Raw
History Blame
1.99 kB
from huggingface_hub import hf_hub_download, snapshot_download, login
import pandas as pd
import importlib
import importlib.util
import streamlit as st
import sys
import os
from pathlib import Path
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import shutil
HF_TOKEN_LLAMA = os.environ.get("HF_TOKEN_LLAMA")
login(token=HF_TOKEN_LLAMA)
HF_TOKEN = os.environ.get("HF_TOKEN") #get HF_TOKEN
login(token=HF_TOKEN)
USER_NAME = os.getenv("USER_NAME", "").strip().strip('"')
PRIVATE_SPACE_NAME = os.getenv("PRIVATE_SPACE_NAME", "").strip().strip('"')
#Construct the repo ID
REPO_ID = f"{USER_NAME}/{PRIVATE_SPACE_NAME}"
REPO_TYPE = "space"
# sys.path.append(repo_dir)
cache_dir = "private_space_cache"
if os.path.exists(cache_dir):
for root, dirs, files in os.walk(cache_dir):
for file in files:
if file.endswith(".incomplete"):
st.warning("🚨 Incomplete cache detected. Clearing cache for stability...")
shutil.rmtree(cache_dir)
break # Stop looping once cache is cleared
# Download the entire space, including the fine-tuned model folder
repo_dir = snapshot_download(
repo_id=REPO_ID,
repo_type=REPO_TYPE,
token=HF_TOKEN,
cache_dir=cache_dir, #"private_space_cache"
force_download=True # Forces redownload
)
# Change the working directory to the downloaded snapshot directory
# This step is very imporptant
os.chdir(repo_dir)
# # Add repo directory to sys.path so Python can find modules inside it
sys.path.append(repo_dir)
# Download specific files (if snapshot_download wasn't used)
app_path = hf_hub_download(
repo_id=REPO_ID,
filename="app.py",
repo_type=REPO_TYPE
)
# Load and execute `app.py`
spec_app = importlib.util.spec_from_file_location("*", app_path)
app_module = importlib.util.module_from_spec(spec_app)
spec_app.loader.exec_module(app_module)
# Now you can use functions from utils_module
result = app_module.main()