İnternete hiç bağlanmadan, tamamen telefon üzerinde çalışan bir yapay zeka destekli arama motoru.
Şu anki sürümde Türkçe Wikipedia'nın tamamını (~2.3GB) besliyor, ama asıl inşa ettiğim şey — TFLite'a dönüştürülmüş bir embedding modeli, sıfırdan yazdığım Türkçe tokenizer, BM25 + vektör hibrit arama — herhangi bir metin koleksiyonuna uyarlanabilir bir mimari. Sunucuya hiçbir istek gitmiyor, hepsi cihazda.
- Arama: SQLite FTS5 üzerinden BM25 + int8 nicemlenmiş embedding'lerle cosine similarity, Reciprocal Rank Fusion (RRF) ile birleştiriliyor.
- Embedding modeli:
Alibaba-NLP/gte-multilingual-base, TFLite'a dönüştürülmüş, cihazda çalışıyor. - Tokenizer: Saf Kotlin ile yazılmış bir Unigram tokenizer (harici bağımlılık yok).
- Veri (şu anki sürüm): Türkçe Wikipedia'nın tamamı, sıkıştırılmış SQLite index olarak (~2.3GB).
Uygulama iki dosyadan oluşuyor çünkü Türkçe Wikipedia'nın tamamı büyük bir veri:
- APK'yı indir: Releases sayfasından son sürümü indirip kur. (Kurulum sırasında "bilinmeyen kaynaklardan yükleme"ye izin vermen gerekebilir.)
- Veri dosyasını indir: index.sqlite (Google Drive, ~2.3GB) (Drive büyük dosyalarda "virüs taraması yapılamadı" uyarısı gösterebilir, "yine de indir"e bas.)
- Uygulamayı aç, **"dosya seç"**e dokun, 2. adımda indirdiğin dosyayı seç. Uygulama otomatik olarak kopyalayıp hazırlayacak (birkaç dakika sürebilir).
Bu bir MVP — bilerek küçük tutuldu, geri bildirime göre geliştirilecek:
- Hız: Bir arama ~birkaç saniye sürüyor (modeldeki bir optimizasyon sorunu nedeniyle). Bir sonraki öncelik bu.
- Doğal dil soruları: "İstanbul'u kim fethetmiştir?" gibi soru cümlelerinde, Türkçe'nin eklemeli yapısı (fethetti/fethetmiştir/fethinin gibi çekimler) bazen doğru sonucu bulmayı zorlaştırıyor. Kelime kökü bulma (stemming) eklemek yol haritasında.
- Kapsam: Şu an sadece Wikipedia makaleleri var, sözlük tanımları yok.
- Depolama: Toplam ~3.4GB. Model ve index'i küçültme çalışmaları devam ediyor.
MIT — kodu özgürce kullanabilir, değiştirebilir, dağıtabilirsin.
Sorun bulursan ya da öneri varsa, Issues sekmesinden açabilirsin.
