Yerel Gemma ile Banka Bildirimlerinden Günlük Hesap Defterine
Kaynak: dev.to

İçindekiler 3 başlık
Hacktoberfest Açık Kaynak Yapay Zeka Yarışması'nın "Ek İş (Side Hustle)" temalı 2. haftası kapsamında geliştirilen bu proje, gerçek dünyadaki yerel bir problemi hibrit yazılım ve yapay zeka mimarisiyle nasıl çözebileceğimizi gösteren harika bir vaka analizidir.
Ne İnşa Ettim?#
Nijerya'da "POS operatörleri", küçük bir stantta kart terminali (POS - satış noktası) işletir. Pek çok insan ATM yerine bu stantlardan nakit temin eder: Müşteri telefonundan banka havalesi ile para gönderir ve operatör küçük bir komisyon karşılığında aynı tutarı nakit olarak teslim eder.
Güney Nijerya'daki Port Harcourt şehrinde stant işleten "Mama POS", her 5.000 Naira (₦) işlem için 150 Naira (%3 komisyon) almaktadır ve günde 10 ila 20 işlem gerçekleştirmektedir. Bankası Moniepoint, gelen her ödeme için ona "kredi bildirimi" (credit alert) adı verilen bir e-posta gönderir. Sahada yapılan görüşmede, operatörün yaşadığı temel zorluklar şu şekilde listelenmiştir:
- Gelen her ödemeyi bir deftere elle yazmaktadır ve bu işlem çok uzun sürmektedir.
- Hesaplar tutmadığında kontrol etmek büyük bir zahmete dönüştüğü için artık gün sonu kontrolü yapmayı bırakmıştır.
- Müşterilerin para henüz hesaba geçmeden "Gönderdim" demesi sıkça yaşanan bir sorundur.
- Şu anda hiçbir dijital araç kullanmamaktadır ancak bu sorunu çözecek bir araca ayda 5.000 Naira ödemeye hazırdır.
Bu ihtiyaca yanıt olarak, bildirim e-postalarının yapıştırıldığı ve defterin otomatik doldurulduğu tarayıcı tabanlı bir günlük hesap defteri (day-book) inşa edildi. Uygulama şu üç temel çıktıyı sunar:
- Satırlar: Hiçbir şey yazmaya gerek kalmadan işlem zamanı, tutar, paranın türü (müşteri transferi, kendi aldığı telefon kontörü/airtime, banka ödülü veya başarısız işlemin geri dönmesi) ve müşterinin adı listelenir.
- Para Ulaştı mı? (Did it land?): Müşterinin gönderdiğini iddia ettiği tutar girildiğinde uygulama; "Ulaştı", "Henüz görülmedi" veya "Bu tutarda 2 ödeme var" yanıtını vererek müşteri adını sorar.
- Gün Sonu: Toplam giren para, tahmini komisyon kazancı, kontrol edilmesi gereken şüpheli satırlar (iptaller, 10 dakika içinde iki kez gelen aynı tutarlar) ve işletme sahibine WhatsApp üzerinden gönderilmeye hazır özet metin oluşturulur.
Tüm veriler tarayıcıda kalır; hiçbir veri sunucuya gitmez.
Demo ve Kod#
Canlı uygulama (mama-pos-daybook.pages.dev) müşteri isimleri gizlenerek gerçek bildirimlerle test edilmiştir. Açık kaynaklı kod yapısında (dannwaneri / mama-pos-daybook) standart kurallı kodlar para tutarlarını okurken, yerel olarak çalışan Gemma 1B modeli müşteri adını ayrıştırır. Modelin çalışması için GPU destekli bir cihaz (dizüstü bilgisayar veya Pixel 8a gibi bir telefon) gerekirken, uygulamanın geri kalanı her telefonda çalışmaktadır.
Nasıl İnşa Ettim? (Geliştiriciler İçin Pratik Çıkarımlar)#
Projenin başlangıcında belirlenen temel mühendislik kuralı şuydu: "Kodun yapabildiği her şeyi kod yapar; model ise yalnızca kodun yapamadığı işi üstlenir."
Yazılım geliştirme ve yapay zeka öğrenimi açısından buradan çıkarılabilecek en önemli ders, her problemi LLM'lere (Büyük Dil Modelleri) yıkmamak gerektiğidir. Tarih, saat, para birimi ve işlem türü gibi yapılandırılmış verileri deterministik kodlarla (örneğin Regex ve string manipülasyonu) ayrıştırmak hem hatasızdır hem de sıfır maliyetlidir. Karmaşık ve standart dışı metinlerin içinden "müşteri adını" bulmak gibi kurallarla çözülmesi zor görevlerde ise yerel bir küçük dil modeli (Gemma 1B) devreye sokulmuştur. Bu yaklaşım, Modeller: Hangisi, Ne Zaman? ve Edge Runtime ve Production Optimizasyonu prensipleriyle birebir örtüşür: Gizliliği korumak ve sunucu maliyetini sıfırlamak için doğru boyuttaki modeli doğrudan istemci tarafında (in-browser) çalıştırmak en verimli mimari karardır.
Kaynak ve atıf
Bu yazı, dev.to üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:
- dev.to/dannwaneri/bank-alerts-to-a-day-book-with-a-local-gemma-21dl