Spaces:
Building
Building
""" | |
Flare – Spark startup notifier | |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
Projeler açılırken Spark’a /startup çağrısı yapar. | |
""" | |
from __future__ import annotations | |
import threading, requests | |
from typing import Dict, Any | |
from utils import log | |
from config_provider import ConfigProvider, ProjectConfig, VersionConfig | |
cfg = ConfigProvider.get() | |
def _select_live_version(p: ProjectConfig) -> VersionConfig | None: | |
"""Yayınlanmış en güncel versiyonu getir.""" | |
published = [v for v in p.versions if v.published] | |
return max(published, key=lambda v: v.id) if published else None | |
def notify_startup(): | |
spark_base = str(cfg.global_config.spark_endpoint).rstrip("/") | |
for p in cfg.projects: | |
if not p.enabled: | |
continue | |
v = _select_live_version(p) | |
if not v: | |
continue | |
plain = cfg.global_config.get_plain_token() | |
log(f"🔑 Cloud-token starts with {plain[:6]}… (len={len(plain)})") | |
body: Dict[str, Any] = { | |
# ----- zorunlu alanlar ----- | |
"work_mode": cfg.global_config.work_mode, | |
"cloud_token": plain, | |
"project_name": p.name, | |
"project_version": v.id, | |
"repo_id": v.llm.repo_id, | |
"generation_config": v.llm.generation_config, | |
"use_fine_tune": v.llm.use_fine_tune, | |
"fine_tune_zip": v.llm.fine_tune_zip, | |
} | |
try: | |
log(f"🚀 Notifying Spark /startup for project '{p.name}' …") | |
r = requests.post(f"{spark_base}/startup", json=body, timeout=10) | |
if r.status_code >= 400: | |
log(f"❌ Spark responded {r.status_code}: {r.text}") | |
r.raise_for_status() | |
log(f"✅ Spark acknowledged startup ({r.status_code})") | |
except Exception as e: | |
log(f"⚠️ Spark startup failed: {e}") | |
def run_in_thread(): | |
threading.Thread(target=notify_startup, daemon=True).start() | |