Beş saatlik işi 15 dakikaya indirmek: Nobirs'in anatomisi
PDF'ten veri ayıklamak, kargo şubesi adreslerini Google Places ve OpenStreetMap ile doğrulamak, belirsiz kayıtları insana geri vermek. Otomasyonun asıl işi hangi kararı vermediğini bilmek.
Nobirs'ten önce süreç şöyleydi: üç dört kişi, ellerinde irsaliye PDF'leri, saatlerce şube adı ve adres eşleştirme. Hata payı yüksek, moral düşük, çıktı her gün aynı.
Rakamla söylemek gerekirse: her gün 3-4 çalışma arkadaşımız, mesaisinin 2-3 saatini yalnızca irsaliye girmeye harcıyordu. Bu, ekibin enerjisini bitiren ve gerçekten değerli işlere ayrılabilecek zamanı yiyen bir yüktü.
Akış şuna indirgendi:
[Girdi: İrsaliye PDF] → [İşleme: Veri ayıklama + coğrafi sorgu] → [Çıktı: Doğrulanmış aktarım şablonu]
Ayıklama: PDF bir veri formatı değildir
PyMuPDF ile metin katmanını okumak kolay kısım. Zor kısım, aynı şirketin farklı
tedarikçilerden gelen irsaliyelerinin aynı alanı farklı yerlere koyması. Konum
tabanlı bir şablon yerine, etiket çapası kullandım: "Şube", "V.D.", "Toplam"
gibi sabit metinleri bul, veriyi onların sağındaki/altındaki kutudan al.
Arayüz tarafında Tkinter'ı seçtim — Windows'ta ek kurulum istemeyen, ekipteki herkesin ilk açışta anlayabildiği hafif bir masaüstü penceresi.
Sahada çıkan sürpriz: kargo şubesi adresleri
Uygulamayı sahaya indirdiğimde, otomasyonun hızını kesen ikinci bir darboğaz göründü. Bazı gönderiler anlaşmalı kargo şubelerine teslim ediliyordu ve irsaliyede açık adres yerine yalnızca şube adı yazıyordu: "X Kargo Kadıköy Şubesi".
Eski süreçte personel her seferinde bu şubeyi internetten aratıyor, adresi teyit ediyor ve aktarım listesine elle yazıyordu. Yani PDF okuma otomatikleşse bile, süreç yine bir insanın tarayıcı sekmesinde bekliyordu.
Çözüm, uygulamayı dış dünyayla konuşturmak oldu: irsaliyede yalnızca şube adı görüldüğü anda Google Places ve Geocoding API'si devreye giriyor, şubenin güncel adresini ve koordinatlarını çekip aktarım şablonundaki alanlara yazıyor.
Doğrulama: iki kaynak, bir hakem
Ayıklanan adres her zaman temiz gelmiyor. Google Places ve Geocoding API'si birincil kaynak; sonuç düşük güvenle dönerse OpenStreetMap (Nominatim) ve Overpass API ikinci görüş olarak devreye giriyor. Bu ikinci kaynak yalnızca doğruluk için değil, tek bir servise bağımlı kalmamak için de var.
Dış çağrıları urllib ve json ile ham düzeyde yönetiyorum — bu ölçekte ağır bir
HTTP bağımlılığı taşımanın karşılığı yok.
Otomasyonun kalitesi, doğru yaptığı işle değil, yanlış yapabileceğini fark ettiği anda ne yaptığıyla ölçülür.
Kalan %2
96 irsaliyelik bir partide tipik olarak iki tanesi belirsiz kalıyor. Nobirs bunları tahmin etmiyor; operatör onayına düşürüyor ve ekranda yan yana iki adayı gösteriyor. Tek tuşla seçim, sonra devam.
Kazanım
Toplam süre: 14 dakika 38 saniye. 3-4 kişinin 2-3 saatini alan iş, artık tek bir kişinin dosyaları yüklemesiyle 15-20 dakikada bitiyor. Adres teyidindeki insan hatası pratikte sıfıra indi.
Ama asıl kazanç sürede değil — kimse artık aynı veriyi ikinci kez yazmıyor, ve o zaman dilimi katma değeri çok daha yüksek işlere gidiyor.
Sırada ne var
Nobirs şu anda Windows tarafında en aktif yardımcı araçlarımızdan biri. Önümüzdeki dönemde görev aldığım diğer projelerdeki operasyonel ihtiyaçları da analiz edip Nobirs'i çok amaçlı, modüler bir veri otomasyon platformuna dönüştürmeyi hedefliyorum.