| name | litellm-frontier-sync |
| description | LiteLLM + Ollama Cloud/OpenRouter model drift kontrolü yapar, config farklarını çıkarır, kullanıcı onayıyla yeni modelleri ekler, LiteLLM'i yeniden başlatır ve çalıştığını doğrular. Use when user asks to sync/update/add new frontier models, check LiteLLM health/config, or compare cloud model catalogs. |
| allowed-tools | ["Read","Write","Edit","Bash","Glob","Grep","WebFetch"] |
| user-invocable | true |
LiteLLM Frontier Model Sync
Bu skill, LiteLLM kurulumunda model listesi drift'ini (Ollama Cloud + OpenRouter) tespit eder ve kullanıcı onayıyla güvenli şekilde günceller.
Scope
- LiteLLM çalışıyor mu kontrol et
config.yaml içindeki model tanımlarını analiz et
- Ollama Cloud ve OpenRouter canlı model kaynaklarıyla karşılaştır
- İKİ AYRI TABLO: Ollama Cloud ve OpenRouter için ayrı drift raporu
- Config'te olmayan aday modelleri kullanıcıya sun (her provider için ayrı)
- Onay alırsa config'e ekle
- LiteLLM'i restart et ve smoke test ile doğrula
- Eksik API key varsa kullanıcıdan iste
Varsayılan yollar
- LiteLLM config:
/Users/user/projects/litellm-proxy/config.yaml
- Compose dizini:
/Users/user/projects/litellm-proxy
- Ollama model kaynağı:
- API:
https://ollama.com/v1/models
- Keşif sayfası:
https://ollama.com/search?c=cloud
- OpenRouter model kaynağı:
- Koleksiyon:
https://openrouter.ai/collections/free-models
Çalışma Protokolü
1) Ön kontrol
docker ps ile LiteLLM container durumunu kontrol et.
config.yaml varlığını doğrula.
model_list içinde Ollama/OpenRouter kayıtları var mı bak.
Eğer LiteLLM hiç yoksa:
- Kullanıcıya mevcut kurulumun eksik olduğunu söyle
- Kurulum/yol bilgisi iste ve bekle
2) API key uygunluğu
Config içinde aşağıdakileri kontrol et:
- Ollama kayıtlarında
api_base ve api_key
- OpenRouter kayıtlarında
api_key
Eksikse kullanıcıdan iste:
- Ollama API key (en az 1 adet)
- OpenRouter API key (en az 1 adet - zorunlu)
Not: Anahtarları çıktıda maskele (xxxx...abcd), tam değeri yazma.
3) Canlı model kataloglarını çek (HER İKİ PROVIDER ZORUNLU)
https://ollama.com/v1/models çağır - Ollama Cloud model listesi
https://openrouter.ai/collections/free-models sayfasını çek - OpenRouter free modeller
- Her iki kaynağı da parse et, model id'lerini çıkar
4) Drift analizi - İKİ AYRI TABLO
TABLO 1: Ollama Cloud
| Durum | Sayı |
|---|
| Config'de mevcut | X |
| Cloud'da yeni aday | Y |
| Bizde olup cloud'da olmayan (eski) | Z |
TABLO 2: OpenRouter Free Models
| Durum | Sayı |
|---|
| Config'de mevcut | X |
| Free models'de yeni aday | Y |
Yeni aday detayları (her tablo için ayrı liste):
Her provider için config'te olmayan modeleri ayrı listele:
- Model ID
- Büyüklük/Özellik (varsa)
- Kullanım senaryosu
5) Kullanıcı onayı - AYRI SEÇENEKLER HER PROVIDER İÇİN
Her provider için ayrı seçenek sun:
- Ollama: Tümünü ekle / Seçmeli ekle / Raporla
- OpenRouter: Tümünü ekle / Seçmeli ekle / Raporla
Onay olmadan config'e yazma.
6) Config güncelleme kuralları
Mevcut pattern'i koru:
-
Ollama Cloud kayıtları:
model_name: ollama/<model>-<index>
litellm_params.model: openai/<model>
api_base: https://ollama.com/v1
api_key: mevcut index dağıtımına göre çoğalt
-
OpenRouter kayıtları:
model_name: openrouter/<alias>-<index> veya mevcut şablona uygun isim
litellm_params.model: openrouter/<provider_model>
api_key: mevcut dağıtım pattern'i
YAML düzeni:
- İndent ve sıra mevcut dosyayla uyumlu olmalı
- Alakasız alanlara dokunma
7) Restart + doğrulama
docker compose restart litellm-proxy
GET /v1/models ile yeni model id'lerinin göründüğünü doğrula
- En az bir yeni modelle
chat/completions smoke test çalıştır
Not: health endpoint auth bekliyorsa 401/timeout olabilir; bu durumda doğrulamada /v1/models + completion testini esas al.
8) Teslim çıktısı
Şunları raporla:
- Eklenen/güncellenen modeller (Ollama ve OpenRouter ayrı)
- Değişen dosyalar
- Restart sonucu
- Test sonucu (başarılı/başarısız)
- İsteğe bağlı sonraki adım: OpenCode alias güncellemesi
Hızlı Komut Şablonları
python3 - <<'PY'
import yaml, pathlib
p=pathlib.Path('/Users/user/projects/litellm-proxy/config.yaml')
d=yaml.safe_load(p.read_text())
print(len(d.get('model_list',[])))
PY
curl -s -H "Authorization: Bearer <LITELLM_MASTER_KEY>" http://localhost:4000/v1/models
curl -s -X POST http://localhost:4000/v1/chat/completions \
-H "Authorization: Bearer <LITELLM_MASTER_KEY>" \
-H "Content-Type: application/json" \
-d '{"model":"ollama/glm-5.1-1","messages":[{"role":"user","content":"Reply OK"}],"max_tokens":80}'
Karar Prensipleri
- Önce analiz + onay, sonra yazma
- Pattern bozma, mevcut naming'i takip et
- Anahtar sızdırma yok
- Hata olursa rollback adımını öner (son değişikliği geri al + restart)
- OpenRouter her zaman sorgulanır, opsiyonel değildir