| |
| import urllib.request, json |
| from datetime import datetime, timezone |
|
|
| url = 'https://llmsnare-api.mistermorph.com/v1/timelines?limit=96' |
| data = json.loads(urllib.request.urlopen(url, timeout=60).read()) |
|
|
| NAMES = { |
| 'deepseek_v4_pro': 'DeepSeek V4 Pro', |
| 'deepseek_v4_flash': 'DeepSeek V4 Flash', |
| 'claude_opus_4_6': 'Claude Opus 4.6', |
| 'claude_opus_4_7': 'Claude Opus 4.7', |
| 'claude_sonnet_4_6': 'Claude Sonnet 4.6', |
| 'openai_gpt_5_5': 'GPT-5.5', |
| 'openai_gpt_5_4': 'GPT-5.4', |
| 'minimax_m_2_7': 'MiniMax M2.7', |
| 'minimax_m_2_5': 'MiniMax M2.5', |
| 'glm_5_turbo': 'GLM-5 Turbo', |
| 'glm_5_1': 'GLM-5.1', |
| 'grok_4_1_fast_reasoning': 'Grok 4.1 Fast', |
| 'grok_4_2_reasoning': 'Grok 4.2', |
| 'gemini_3_5_flash': 'Gemini 3.5 Flash', |
| 'gemini_3_1_pro_preview': 'Gemini 3.1 Pro', |
| 'gemini_3_1_flash_lite': 'Gemini 3.1 Flash Lite', |
| 'gemini_2_5_flash': 'Gemini 2.5 Flash', |
| 'kimi_k_2_5': 'Kimi K2.5', |
| 'kimi_k_2_6': 'Kimi K2.6', |
| 'openrouter_qwen_3_5_27b': 'Qwen 3.5 27B', |
| 'openrouter_qwen_3_6_plus': 'Qwen 3.6 Plus', |
| 'openrouter_gemma_4_31b': 'Gemma 4 31B', |
| 'openrouter_mimo_v2_pro': 'Mimo V2 Pro' |
| } |
|
|
| rows = [] |
| for pid, pdata in data.get('profiles', {}).items(): |
| entries = pdata.get('entries', []) |
| name = NAMES.get(pid, pid) |
| points = sorted([(e['timestamp'], e['normalized_score'], e.get('raw_score',0), e.get('max_score',0)) for e in entries], key=lambda x: x[0]) |
| scores = [p[1] for p in points] |
| raw = [p[2] for p in points] |
| maxs = [p[3] for p in points] |
| n = len(scores) |
| if n < 4: |
| continue |
| avg8 = round(sum(scores[-8:]) / 8, 1) |
| prev8 = scores[-16:-8] if n >= 16 else scores[:max(1,n-8)] |
| avg_prev8 = round(sum(prev8)/len(prev8),1) if prev8 else avg8 |
| change = round(avg8 - avg_prev8, 1) |
| latest = round(scores[-1], 1) |
| latest_raw = int(raw[-1]) |
| latest_max = int(maxs[-1]) |
| rows.append({'name':name,'avg8':avg8,'change':change,'latest':latest,'raw':latest_raw,'max':latest_max}) |
|
|
| rows.sort(key=lambda x: -x['avg8']) |
| now = datetime.now(timezone.utc).strftime('%Y-%m-%d %H:%M UTC') |
|
|
| lines = [] |
| lines.append('π **LLM Snare Arena ηζ§**') |
| lines.append(f'π
{now}') |
| lines.append('') |
| lines.append('**π₯ Top 5οΌθΏζεεοΌοΌ**') |
| for i,r in enumerate(rows[:5],1): |
| lines.append(f'{i}. {r["name"]} β {r["avg8"]}') |
| lines.append('') |
| lines.append('**π ε«εΊ 3οΌ**') |
| for r in rows[-3:]: |
| lines.append(f'- {r["name"]} β {r["avg8"]}') |
| lines.append('') |
| lines.append('**π θΏζεεοΌε8 vs εε8οΌοΌ**') |
| changes = sorted(rows, key=lambda x: -abs(x['change']))[:6] |
| for r in changes: |
| arrow = 'β' if r['change']>0 else 'β' |
| lines.append(f'- {r["name"]} {arrow} {abs(r["change"])}') |
| lines.append('') |
| lines.append('**π ζζ°δΈζ¬‘εΎεοΌ**') |
| for r in rows: |
| icon = 'β
' if r['latest'] >= 50 else 'β' |
| lines.append(f'{icon} {r["name"]} β {r["latest"]} ({r["raw"]}/{r["max"]})') |
|
|
| result = '\n'.join(lines) |
| print(result) |
|
|