Download algorithm.py from eishit32/upniso: direct link, hf CLI and curl.
- Browser
- Download file 5.46 kB
-
https://huggingface.co/spaces/eishit32/upniso/resolve/main/algorithm.py
- Command line
-
hf download hf://spaces/eishit32/upniso/algorithm.py
-
curl -L -o algorithm.py https://huggingface.co/spaces/eishit32/upniso/resolve/main/algorithm.py
5.46 kB
| import numpy as np | |
| from typing import Dict, Tuple | |
| # ========================= | |
| # CONFIGURATION CONSTANTS | |
| # ========================= | |
| W1_PREDICTION = 0.50 | |
| W2_TALENT = 0.15 | |
| W3_PROGRESS = 0.15 | |
| W4_QUALITY = 0.15 | |
| MAX_DYNAMIC_BOOST = 0.05 | |
| SUPPRESSION_PENALTY = 0.60 | |
| FOLLOW_THRESHOLD = 1000 | |
| PS_FLAT_PROGRESS = 50.0 | |
| NETWORK_AVG_ESR = 0.10 | |
| class UpnisoAlgorithmPipeline: | |
| """ | |
| Production-grade ranking pipeline. | |
| Stateless per request. Safe for concurrent execution. | |
| """ | |
| def __init__(self, avg_esr: float = NETWORK_AVG_ESR, avg_ts: float = 50.0, avg_wtpu: float = 0.50): | |
| self.avg_esr = avg_esr | |
| self.avg_ts = avg_ts | |
| self.avg_wtpu = avg_wtpu | |
| # ------------------------- | |
| # INTERNAL SAFE NORMALIZERS | |
| # ------------------------- | |
| def _clamp(value, low=0.0, high=1.0): | |
| return float(np.clip(value, low, high)) | |
| # ------------------------- | |
| # STAGE 1 β ANALYZE | |
| # ------------------------- | |
| def analyze(self, creator: Dict, content: Dict) -> Tuple[Dict, Dict]: | |
| creator = dict(creator) | |
| content = dict(content) | |
| creator["ts_90_days_ago"] = max(creator.get("ts_90_days_ago", self.avg_ts), 1.0) | |
| creator["ts_14_days_ago"] = max(creator.get("ts_14_days_ago", creator["ts_90_days_ago"]), 1.0) | |
| creator["avg_wtpu_month1"] = max(creator.get("avg_wtpu_month1", self.avg_wtpu), 0.01) | |
| creator["stdev_upload_days"] = creator.get("stdev_upload_days", 4.0) | |
| content["wtpu_current"] = self._clamp(content.get("wtpu_current", 0.0)) | |
| content["nvr"] = self._clamp(content.get("nvr", 0.0)) | |
| content["mis_score"] = 1.0 if content.get("mis_compliance") else 0.5 | |
| content["esr_current"] = self._clamp(content.get("esr_current", self.avg_esr)) | |
| content["prediction_score_p_hva"] = self._clamp(content.get("prediction_score_p_hva", 0.5)) | |
| return creator, content | |
| # ------------------------- | |
| # STAGE 2 β SCORE CREATOR | |
| # ------------------------- | |
| def score_creator(self, creator: Dict) -> Dict[str, float]: | |
| wtpu = creator.get("wtpu_last_10_avg", 0.0) | |
| hva = creator.get("avg_hva_rate", 0.05) | |
| consistency = 1.0 / (creator["stdev_upload_days"] + 1.0) | |
| ts = 100 * (0.5 * wtpu + 0.3 * hva + 0.2 * consistency) | |
| ts = float(np.clip(ts, 0, 100)) | |
| ts_delta = ((ts / creator["ts_90_days_ago"]) - 1.0) * 50 | |
| wtpu_delta = ((creator.get("avg_wtpu_month3", creator["avg_wtpu_month1"]) / creator["avg_wtpu_month1"]) - 1.0) * 50 | |
| ps = PS_FLAT_PROGRESS + ts_delta + wtpu_delta | |
| if (ts - creator["ts_14_days_ago"]) / creator["ts_14_days_ago"] >= 0.20: | |
| ps += 15 | |
| ps = float(np.clip(ps, 0, 100)) | |
| return {"TS": ts, "PS": ps} | |
| # ------------------------- | |
| # STAGE 3 β PREDICT | |
| # ------------------------- | |
| def predict_affinity(self, content: Dict) -> float: | |
| return content["prediction_score_p_hva"] * 100 | |
| # ------------------------- | |
| # STAGE 4 β QUALITY & BOOST | |
| # ------------------------- | |
| def quality_and_boost(self, creator: Dict, content: Dict, merit: Dict) -> Tuple[float, float, bool]: | |
| qs = 100 * ( | |
| 0.6 * content["wtpu_current"] + | |
| 0.3 * content["nvr"] + | |
| 0.1 * content["mis_score"] | |
| ) | |
| qs = float(np.clip(qs, 0, 100)) | |
| dynamic_boost = 0.0 | |
| if creator.get("follower_count", 0) < FOLLOW_THRESHOLD: | |
| merit_norm = ( | |
| W2_TALENT * merit["TS"] + | |
| W3_PROGRESS * merit["PS"] + | |
| W4_QUALITY * qs | |
| ) / 100 | |
| dynamic_boost = float(np.clip(merit_norm * 0.5, 0, MAX_DYNAMIC_BOOST)) | |
| penalty = (content["esr_current"] / self.avg_esr) >= 5.0 if self.avg_esr > 0 else False | |
| return qs, dynamic_boost, penalty | |
| # ------------------------- | |
| # STAGE 5 β FINAL RANKING | |
| # ------------------------- | |
| def final_score(self, merit, pred, qs, boost, penalty) -> float: | |
| cs = ( | |
| W1_PREDICTION * (pred / 100) + | |
| W2_TALENT * (merit["TS"] / 100) + | |
| W3_PROGRESS * (merit["PS"] / 100) + | |
| W4_QUALITY * (qs / 100) | |
| ) + boost | |
| if penalty: | |
| cs *= SUPPRESSION_PENALTY | |
| return float(np.clip(cs, 0, 1)) | |
| # ========================= | |
| # π PRODUCTION ENTRYPOINT | |
| # ========================= | |
| def rank_feed(self, creators: Dict[str, Dict], contents: Dict[str, Dict]): | |
| ranked = [] | |
| for cid, content in contents.items(): | |
| creator = creators.get(content["creator_id"]) | |
| if not creator: | |
| continue | |
| creator, content = self.analyze(creator, content) | |
| merit = self.score_creator(creator) | |
| pred = self.predict_affinity(content) | |
| qs, boost, penalty = self.quality_and_boost(creator, content, merit) | |
| cs = self.final_score(merit, pred, qs, boost, penalty) | |
| ranked.append({ | |
| "content_id": cid, | |
| "creator_id": content["creator_id"], | |
| "score": cs, | |
| "TS": merit["TS"], | |
| "PS": merit["PS"], | |
| "QS": qs, | |
| "boost": boost, | |
| "penalty": penalty | |
| }) | |
| ranked.sort(key=lambda x: x["score"], reverse=True) | |
| return ranked | |
| def run_demo(): | |
| return "Upniso algorithm loaded (production mode)" | |