VC LABKeyslarKeys: qaytarishlar analitikasi

Qaytarishlar analitikasi: tovar qayerda sotilmayapti

Yetkazib beruvchi tovarni federal chakana tarmoqlarga jo'natadi va qaytib hisobdan chiqarishlarni oladi — har bir tarmoq o'z formatida: Excel yuklamalari, qaytarish haqidagi PDF-bildirishnomalar, hujjatlarning skan va fotosuratlari. Hisob o'nlab jadvallarda qo'lda yuritilar, nuqtalar bo'yicha qaytarish foizini hech kim hisoblamasdi. Turli manbalardan ma'lumotlarni o'zi yig'adigan va tovar qayerda sotilmayotganini ko'rsatadigan tizim kerak edi.

Ichida nima bor

  • Har bir kontragent uchun adapter. Hisobot formatlari tubdan farq qiladi — bir tarmoqda kunlik tafsilot, boshqasida haftalik pivot. Fayl turi nomi bo'yicha emas, mazmuni bo'yicha aniqlanadi.
  • PDF ni tanib olish konveyeri. Raqamli hujjatlar matn qatlami orqali o'qiladi, skanlar burilishni avtomatik tanlash bilan OCR ga ketadi, bahsli holatlar esa model ko'rishi bilan o'qib tugatiladi. Ko'p sahifali fayllar varaqma-varaq tahlil qilinib, yuk xatlari, hal qilish shakllari va imzo varaqlari orasidan kerakli hujjat tanlanadi.
  • Soxta ma'lumotlardan himoya. Pozitsiyalar summasi hujjatdagi jami bilan solishtiriladi. Mos kelmasa — yozuv bloklanadi va hujjat to'qib chiqarilgan raqamlarni jimgina kiritish o'rniga qo'lda tekshiruvga ketadi.
  • Operatsiyalarning qaytariluvchanligi. Har bir yuklash oldingi va keyingi holat suratini saqlaydi; istalganini hisob-kitoblardan chiqarib, qolgan ma'lumotlarni yo'qotmasdan qaytarish mumkin.
  • Analitika. «Do'kon × tovar» juftligi bo'yicha qaytarish foizi, tarmoqdan nuqta va pozitsiyagacha drill-down, pul va donadagi summalar, yuklangan ma'lumotlar to'liqligini nazorat qilish, yo'qotishlari yuqori pozitsiyalar bo'yicha hisobot.

Sifat nazorati

Ishlab chiqish «tahrir — test — jonli tekshiruv — deploy» rejimida bordi. Har bir o'zgarish avtotest bilan yopildi, vizual tahrirlar brauzerda tekshirildi.

  • pytest da 376 ta avtotest: biznes-mantiq, parserlar, API.
  • Almashtirilgan DOM li izolyatsiya qilingan muhitda frontendning real kodini bajaradigan 12 ta brauzer testi.
  • Jangovar ma'lumotlarga yozishni istisno qiladigan test bazasining uch darajali izolyatsiyasi.
  • Har bir deploydan keyin yaxlitlikni tekshirish: fayllarning nazorat summalari, barcha endpointlar javoblari, ko'rsatkichlarni oldin va keyin solishtirish.

Nuqsonlarning alohida sinfi faqat jonli tekshiruv bilan tutilardi: CSS ning kaskadli ziddiyatlari, muzlab qolgan animatsiyalar, DOM da bor, lekin ekranda ko'rinmaydigan elementlar.

Stek

  • Bekend: Python 3, FastAPI, SQLAlchemy, PostgreSQL ga zaxirali SQLite, Uvicorn.
  • Ma'lumotlarni qayta ishlash: pandas, openpyxl, idempotent yuklashli ETL-konveyer.
  • Hujjatlarni tanib olish: pdfplumber, PyMuPDF, Tesseract OCR, Claude Vision API.
  • Frontend: vanilla JavaScript, Jinja2, freymvork va yig'ishsiz CSS.
  • Testlash: pytest, DOM-testlar uchun Node.js va vm.
  • Infratuzilma: systemd, rsync-deploy, basic-auth, orqaga qaytarishli snapshotlar.

Natija

  • Qo'lda ma'lumot yig'ish barcha manbalardan avtomatik yuklash bilan almashtirildi.
  • Qaytarish foizi har bir savdo nuqtasi va pozitsiya bo'yicha hisoblanadi.
  • Qo'lda kiritishni talab qiladigan hujjatlar ulushi tanib olish konveyerini takomillashtirish hisobiga to'rt barobar kamaydi.

Ko'p so'raladigan savollar

Tizim bu qanday fayl ekanini qanday tushunadi?
Nomi bo'yicha emas, mazmuni bo'yicha: har bir tarmoqning o'z adapteri bor, format esa tuzilma bo'yicha aniqlanadi — bir tarmoqda kunlik tafsilot, boshqasida haftalik pivot.
Tanib olish xato qilsa nima bo'ladi?
Pozitsiyalar summasi hujjat jamisi bilan solishtiriladi. Farq bo'lsa yozuv bloklanadi va hujjat to'qib chiqarilgan raqamlar bilan hisob-kitoblarga tushish o'rniga qo'lda tekshiruvga ketadi.
Muvaffaqiyatsiz yuklashni bekor qilish mumkinmi?
Ha: har bir yuklash oldingi va keyingi suratni saqlaydi, uni hisob-kitoblardan chiqarib, qolgan ma'lumotlarni yo'qotmasdan qaytarish mumkin.
pytest da 376 ta avtotest bo'lsa, brauzer testlari nega kerak?
Ba'zi nuqsonlar faqat ekranda ko'rinadi: CSS ning kaskadli ziddiyatlari, muzlab qolgan animatsiyalar, DOM da bor, lekin ko'rinmaydigan elementlar. Ularni jonli tekshiruv va frontendning real kodini bajaradigan 12 ta test tutadi.

Vazifangiz haqida yozing

Bir ish kuni ichida javob beramiz, bahoni 1–2 kunda yuboramiz. Bepul.

Yangilangan: 2026-10-02