Projeler

Çalışır durumda tuttuğum şeyler. Çoğu kendi ihtiyacımdan doğdu.

Geliştirme sürüyor

PythonGoogle GeminipywebviewExcel
Kaynak kodu

Fatura Ayıklayıcı

Türkçe PDF ve XML e-faturaları Google Gemini ile okuyup, siz onayladıktan sonra düzenli bir Excel'e aktaran masaüstü uygulaması.

Faturadan tarih, tutar, firma ve VKN bilgisini tabloya taşımak elle yapıldığında hem zaman alıyor hem de hataya açık. Otomatikleştirmenin önündeki asıl engel ise faturaların tek biçimde gelmemesi: her firmanın yerleşimi başka, bir kısmı yapısal e-fatura, bir kısmı düz PDF, bir kısmı da taranmış görüntü. Sabit kurallara dayanan bir ayrıştırıcı ilk yeni şablonda kırılıyor.

İşi bir dil modeline devrettim. Uygulama her faturayı önce türüne göre ayırıyor — UBL XML zaten yapısal olduğu için doğrudan ayrıştırılıyor — geri kalanını Gemini okuyor: dijital PDF’te metin üzerinden, taranmış belgede görüntü üzerinden. Şablon tanımak yerine belgeyi anlıyor, dolayısıyla daha önce görmediği bir fatura düzeni de çalışıyor. Çıkarılacak alanlar tek bir prompt şablonunda tanımlı; yeni bir alan eklemek yeni kod değil, o şablonu güncellemek demek.

  • Model çıktısı doğrudan Excel’e yazılmıyor: önce gözden geçirme ekranı açılıyor. Fatura no uzunluğu, VKN biçimi ve KDV tutarlılığı gibi kontrollerin uyarıları ilgili alanın altında görünüyor; onaylamazsanız dosyaya dokunulmuyor.
  • Öğrenen düzeltmeler: bir firmanın adını düzeltip “bu firma için hatırla” derseniz, aynı VKN’li sonraki faturalarda otomatik uygulanıyor.
  • Paralel işleme 5 iş parçacığıyla; ücretsiz kotayı aşmamak için dakikada 14 istekle sınırlı. Daha önce işlenmiş faturalar atlanıyor.
  • Excel çıktısında her satırın hangi yolla okunduğu (Dijital / OCR / XML) yazıyor, kaynak dosyaya tıklanabilir bağlantı ve aylık-firma bazlı özet sayfası çıkıyor.
  • Arayüz pywebview penceresinde çalışan HTML/CSS/JS; mantık tümüyle Python tarafında. 179 testlik pytest paketi var.