- 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>
54 lines
3.9 KiB
Markdown
54 lines
3.9 KiB
Markdown
# 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.
|