MegrurNiftiyev's picture
Upload folder using huggingface_hub
215f97f verified
Raw
History Blame Contribute Delete
1.59 kB
"""
Seed script — inserts a base initial model into Firebase Firestore and Storage.
Usage:
python seed_model.py
python -m app.scripts.seed_model
"""
import asyncio
import os
import sys
# Ensure the project root is on sys.path so app.* imports work
BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
if BASE_DIR not in sys.path:
sys.path.insert(0, BASE_DIR)
from app.core.firebase import init_firebase, get_firestore_db
from app.ml.serving.registry import DummyModel, save_model_version
async def seed():
"""Insert an initial base model record into Firebase."""
init_firebase()
db = get_firestore_db()
if db is None:
print("Firebase Firestore not initialized. Ensure FIREBASE_CREDENTIALS_PATH or JSON is set.")
return
# Check if an active model already exists
active_docs = db.collection("models").where("status", "==", "active").limit(1).get()
if active_docs:
doc = active_docs[0].to_dict()
print(f"Active model already exists in Firebase: version={doc.get('version', active_docs[0].id)}")
return
model_obj = DummyModel()
metrics = {
"accuracy": 0.85,
"f1": 0.88,
"note": "Initial base model.",
}
await save_model_version(model_obj, metrics, version="v1.0.0")
# Set status to active directly
db.collection("models").document("v1.0.0").update({"status": "active"})
print("✓ Initial base model seeded as active in Firebase (version=v1.0.0)")
def main():
asyncio.run(seed())
if __name__ == "__main__":
main()