Files
kolaytercih/docs/ekip-raporlari/2026-10-10/yapay-zeka-niyet-modeli-kiyas.md
bilalgursen da0e9dff7a docs(ekip): 7–10 Ekim raporları, eval sonuçları, seslendirme betiği
- docs/ekip-raporlari/2026-10-07, 2026-10-09, 2026-10-10 raporları ve ekran görüntüleri
  (ses/ altındaki mp3 dosyaları depoya alınmadı, 38 MB)
- BACKLOG #38: rehber yazılarına "Dinle" düğmesi adayı
- scripts/seslendir.py (Türkçe TTS) ve .gitignore'a .venv-tts/
- scripts/eval/sonuc: 8–10 Ekim revizyon eval çıktıları

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-11 00:33:39 +03:00

3.9 KiB
Raw Blame History

Revizyon niyet modeli kıyası (10 Eki 2026)

Soru

"Liste revize edilirken sorun yaşanıyor; daha önce çalıştık, neden hâlâ?" + "OpenRouter'da modeli değiştirsek mi (GLM?)"

Teşhis

Revizyon mantığı 9 Eki'den beri koda bağlı ve doğru (QA: paketli hesapta 4/4 revizyon, sahte beyan 0). Kalan sorun tek yerde: sohbet mesajını yapısal kurala çeviren niyet çıkarımı çağrısı (src/lib/ai/revizyon-niyeti.ts, 20 sn zaman aşımı). Model deepseek/deepseek-v4-flash OpenRouter'da 16 üst sağlayıcıya dağılıyor; eval'de aynı gün Baidu, StreamLake, Wafer, Venice, DigitalOcean, Alibaba, DeepInfra, Mancer gördük. Gecikme iki kümeli (1,5-2 sn / 12-20 sn), 20 sn'yi aşınca çağrı düşüyor → niyet "belirsiz" → istek normal sohbete gidiyor, liste değişmiyor (QA B3 "bimodal gecikme" bulgusu bu). Ayrıca aynı istek iki koşuda farklı kural üretebiliyor (r14 "ilk 10 İstanbul + sadece devlet": bir koşuda form, birinde tip eksik).

Ölçüm (pnpm eval:revizyon --tekrar 2, 16 senaryo × 2, niyet modeli env'den; sohbet deepseek sabit)

Niyet modeli Geçen Kural doğru Niyet p50 / p90 / max $/çağrı Sağlayıcı
deepseek-v4-flash (koşu 1) 31/32 21/22 2,0 / 5,1 / 6,0 sn 0,00014 5 farklı
deepseek-v4-flash (koşu 2) 29/32 19/22 5,0 / 15,1 / 20,0 sn (zaman aşımı) 0,00008 4 farklı
google/gemini-3.1-flash-lite (koşu 1) 32/32 22/22 1,6 / 1,9 / 2,4 sn 0,00101 yalnız Google
google/gemini-3.1-flash-lite (koşu 2) 30/32 20/22 1,3 / 1,9 / 2,4 sn 0,00073 yalnız Google
z-ai/glm-4.7-flash 29/32 19/22 3,2 / 15,4 / 20,0 sn 0,00019 Venice, Cloudflare
z-ai/glm-5.3-flash (reasoning low) 24/32 14/22 1,9 / 6,4 / 9,3 sn 0,00023 18 farklı
z-ai/glm-5.3-flash (reasoning alanı yok) 26/32 16/22 2,0 / 7,9 / 12,1 sn 0,00034 17 farklı
qwen/qwen3.5-flash 21/32 11/22 1,3 / 3,3 / 3,8 sn 0,00015 Alibaba
openai/gpt-5-nano, claude-haiku-5.5 — — — — 400 "Provider returned error" (strict json_schema; incelenmedi)

Ham sonuçlar: scripts/eval/sonuc/2026-10-10T20-*-revizyon.json. Toplam harcama ≈ 0,12 $.

GLM: 5.3-flash ve gpt-5-nano reasoning_effort: "none" isteğini 400 ile reddediyor ("Reasoning is mandatory"); bunun için AI_REASONING_EFFORT env'i eklendi (src/lib/ai/cagri.ts). Reasoning açıkken bile GLM deepseek'ten kötü: kuralı daha sık kaçırıyor ve 17-18 sağlayıcıya dağıldığı için gecikme yine iki kümeli.

Karar önerisi

Niyet çıkarımı için OPENROUTER_NIYET_MODEL=google/gemini-3.1-flash-lite. Gerekçe: tek sağlayıcı (gecikme tek kümeli, max 2,4 sn, zaman aşımı yok), en yüksek isabet, maliyet 7 kat ama mutlak olarak 1.000 revizyon ≈ 1 $. Sohbet ve liste üretimi deepseek'te kalır (orada sorun ölçülmedi).

Yapılacaklar:

  1. Gitea secrets'a OPENROUTER_NIYET_MODEL=google/gemini-3.1-flash-lite ekle (ci.yaml satırı hazır).
  2. Deploy sonrası [soru] revizyon niyeti log satırlarında süre ve sağlayıcıya bak.
  3. /gizlilik metni "OpenRouter (ABD) aracılığıyla" diyor; üst sağlayıcı adı geçmiyor → değişiklik gerekmez (güvenlik-uyum ajanı teyit etsin).
  4. (Yapıldı) Gemini "ilk 10 İstanbul, vakıf olmasın" isteğinde tipi ilkTercihler içine yazıyordu. Niyet prompt'una kapsam cümlesi + şema açıklaması eklendi; prompt tek başına yetmeyince tipKuraliniTamamla (revizyon-niyeti.ts) "vakıf olmasın / sadece devlet" kalıbında üst düzey universiteTipi'ni koddan tamamlar hâle getirildi. Son tam koşu (16 × 2): 31/32 geçti, kural 21/22, p50 1,3 sn; tek kaçan r04#2 ("İstanbul da eklensin" → iller.ekle bir koşuda düştü, stokastik).
  5. Ayrı bir iş: QA B2 (paketsiz hesapta sahte form vaadi) ve B1 ("listemi değiştir" → diger) bu kıyasın konusu değil; backlog'da.