Maliyyə sektorunda chatbot quran komandalardan biri — sözün həqiqi mənasında — bir PDF-in içində az qala bütün layihəni batırırmış. Hekayə belə başlayır: AI rəhbəri soruşur, “O kredit siyasəti PDF-lərini göndərə bilərsən? Bazaya yükləməliyik.” Cavab “bir saata” olur, amma üç həftə çəkir.
Səbəb? Açılan ilk sənəd on iki səhifəlik sadə görünən kredit müraciəti qaydası idi. PDF-dən mətn çıxaran alət nəticəni elə bir vəhşi formada verir ki, cədvəllər bir-birinə qarışır, sütun başlıqları itir, faiz dərəcələri yanlış məlumatlarla yanaşı düşür. Komanda üzvünün sözləri ilə desək: “Nəticə səhv deyil, daha betər — özünə arxayın səhvdir.”
Cədvəl dediyin bir bütövdür — PDF isə sadəcə koordinat yığını
Problem ondadır ki, insan gözü cədvəldəki “5.5%” ilə “Yaşlı Vətəndaş Əmanəti” sətirlərini birlikdə oxuyur, amma səliqəsiz çıxarıcı alət üçün onlar səhifə 4'də təsadüfən yan-yana düşmüş xarakterlərdir. Üç fərqli ekstraksiya üsulu sınaqdan keçirilir, ancaq hər biri ya struktur dağıdır, ya səhifə qırılmalarında cədvəli iki yerə bölür, ya da sırf mətni itirir.
Həll yolu olduqca qeyri-romantikdir: layout'u anlayan, səhifə-səhifə işləyən və səhifə qırılmalarında cədvəlləri birləşdirən xüsusi sənəd emalı boru xətti (pipeline) qurmaq. “Heç bir dahiyanə alqoritm yox idi — sadəcə düzgün iş idi.”
PDF deyil, kağızın fotoşəkli
Elə bu vaxt müştəri köhnə dövriyyə məktubları yükləyir — ancaq onlar skan edilmiş, hətta bəziləri əyri qoyulmuş sənədlərdir. Çıxarıcı heç nə qaytarmır, çünki skan olunmuş PDF sadəcə şəkildir. Komanda OCR (Optik Xarakter Tanıma) əlavə edir, əyri səhifələr üçün düzəltmə keçidi, aşağı etibarlı xətlər üçün isə filtrasiya mexanizmi qurur. Qərar: “OCR əmin deyilsə, heç bazaya ötürmə — əldə boşluq olsun, yalandan rəqəm olmasın.”
Parçalamaq sənəti: yarım cümlə başını bəlaya salar
Növbəti döyüş — sənədi parçalamaq (chunking). İlk cəhd sadəcə 500 simvol aralığında kəsir, amma bir sorğuda “60 yaşdan yuxarı olmalı və” deyə başlayan parça çəkilir, “əmanət hesabı” isə növbəti parçada qalır. Chatbot yarım cümlədən nəticə verir və səhv edir. Həll: başlıq və paraqraf sərhədlərinə görə parçalamaq, çox böyük bölmələrdə isə kənarları üst-üstə düşən (overlap) kiçik hissələrə ayırmaq.
Sənədin üç versiyası, bir qovluq — seçim chatbotun deyil
Ən maraqlı məqam isə odur ki, eyni kredit siyasəti sənədinin üç versiyası — keçən ilki, martda dəyişdirilmişi və “təsdiq gözləyir” qeydi olan draft — eyni qovluqda üzür. Retriever (axtarıcı) hansının daha yeni olduğunu bilmədiyi üçün köhnə faiz dərəcəsini “doğru” kimi qaytara bilər. Həll: hər parçaya metadata — mənbə sənəd, versiya, qüvvəyə minmə tarixi, status — əlavə etmək və axtarışı oxşarlıqdan əvvəl metadata ilə süzmək.
Yeniləmə idarəsi də unudulmur: hər dəfə bütün bazanı silib yenidən əlavə etmək əvəzinə, yalnız dəyişən sənədin parçaları yenilənir. Meta-verilənlər sayəsində bu iş sürətli və dəqiq olur.
Müəllifin qənaəti kifayət qədər sərtdir: RAG sistemi yalnız ona yedizdirdiyiniz ən çirkin sənəd qədər etibarlıdır. Nə qədər gözəl retrieveriniz və modeliniz olsa da, əgər girişdəki sənəd korlanmışdırsa, nəticə də kordur. Və o məşhur ox — diaqramda “Sənədlər → Embeddinqlər” arasındakı miniatür xətt — üç həftəlik işin görünməz hissəsidir.
Mənbə: Dev.to (https://dev.to/surajrkhonde/that-arrow-in-every-rag-diagram-cost-us-three-weeks-9c7)

