topicBuzz / modelUpdating /model_compressor.py
Wyomike's picture
Integrated a whole lot of supabase and more stateful and reading stuff
273764c
Raw History Blame Contribute Delete
1.36 kB
import os
import shutil
import gzip
import supabase
from bertopic import BERTopic
# --- CONFIGURATION ---
SUPABASE_URL = os.environ.get("SUPABASE_URL") # Ensure these are in your .bashrc or .env
SUPABASE_KEY = os.environ.get("SUPABASE_KEY")
# MODEL_PATH = "my_online_mastodon_model.pkl"
LABELS_PATH = "topic_labels.json"
STATE_FILE = "training_state.json" # Tracks the last timestamp we processed
MODEL_FILE = "/home/wyomike/temp/topicBuzz/modelUpdating/my_online_mastodon_model.pkl"
COMPRESSED_FILE = "my_online_mastodon_model.pkl.gz" # New filename for cloud
BUCKET = "topic_assets"
supabase = supabase.create_client(SUPABASE_URL, SUPABASE_KEY)
with open(MODEL_FILE, 'rb') as f_in:
with gzip.open(COMPRESSED_FILE, 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
# 3. Upload the COMPRESSED file
print(f"☁️ Uploading {COMPRESSED_FILE} to Supabase...")
with open(COMPRESSED_FILE, 'rb') as f:
supabase.storage.from_(BUCKET).upload(
path=COMPRESSED_FILE,
file=f,
file_options={"x-upsert": "true"}
)
print("uploaded?")
# Clean up local files to save space
# if os.path.exists(MODEL_FILE): os.remove(MODEL_FILE)
# if os.path.exists(COMPRESSED_FILE): os.remove(COMPRESSED_FILE)
# model = BERTopic.load("/home/wyomike/temp/topicBuzz/modelUpdating/my_online_mastodon_model.pkl")
# save_remote_model(model)