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>
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user