Özbaşdak taslap döreden şahsy maliýe programmam: Flutter programmasy, Fastify backend we Gemini esasyndaky AI mümkinçilikleri — sesden tranzaksiýa, maliýe kömekçisi bilen çat we programmanyň formalaryny doldurýan sesli kopilot.
Meniň rolum
Özbaşdak önüm: ideýa, dizaýn, Flutter programmasy, backend, AI integrasiýasy we deploý.
Tehnologiýalar
Flutter
Node.js
Fastify
PostgreSQL
Redis
Gemini API
Mesele
Çykdajylary elde girizmek ýadadýar, maşgalalar bir býudžeti birnäçe telefonda paýlaşmak isleýär, programma bolsa internetsiz hem işlemeli. Munuň üçin backend-de ygtybarly sinhronizasiýa — we birnäçe dilde erkin gürlenen sözleri dogry, gurluşly maglumatlara öwürýän AI gerek.
Arhitektura
Flutter programmasy maglumatlary ýerli saklaýar we PostgreSQL üstündäki Fastify API arkaly sinhronlaşýar: bir çagyryş ýerli üýtgeşmeleri wersiýalary bilen iberýär we müşderiniň kursoryndan soňky ähli zady alýar. AI soraglary backend arkaly geçýär: ol Gemini açaryny saklaýar, modeliň her jogabyny programmanyň katalogy we shemasy boýunça barlaýar, çat jogaplaryny SSE arkaly stream görnüşinde iberýär we Redis-de her ulanyjy üçin her AI funksiýasynyň çagyryş ýygylygyny çäklendirýär. AWS EC2-de nginx-iň arkasynda Docker we PM2 bilen deploý edilen.
Esasy çözgütler
01Global üýtgeşme kursory bilen optimistik concurrency
Näme üçin
Her ýazgynyň wersiýasy bar; köne wersiýa esaslanýan üýtgeşme ulanyjynyň çözmegi üçin konflikt hökmünde gaýdyp gelýär. Global yzygiderlik (sequence) ähli üýtgeşmeleri tertipleşdirýär, sinhronizasiýa wagtynda bolsa topar setiri gulplanýar, şonuň üçin hiç bir enjam hiç bir üýtgeşmäni sypdyrmaýar.
Kompromis
Bir maşgala toparynyň içindäki sinhronizasiýa yzygiderli, bir-birden ýerine ýetirilýär.
02Modeliň jogabyna hiç haçan ynanmazlyk
Näme üçin
Gemini-niň gaýtarýan ähli zady JSON shema hem-de ulanyjynyň öz hasaplary we kategoriýalary boýunça barlanýar. Nädogry bölekler tutuş soragy şowsuz etmegiň ýerine taşlanýar.
03Durnukly AI çagyryşlary
Näme üçin
Model aşa ýüklenende backend barha artýan arakesme (backoff) bilen gaýtadan synanyşýar, soňra ätiýaçlyk modele geçýär, her sorag üçin taýmaut bar — ulanyjylar ýalňyşlygyň ýerine jogap alýar.
Kompromis
Ätiýaçlyk model esasy modelden birneme pes hilli jogap berip biler.
04AI-ny çaklamak däl-de, ölçemek
Näme üçin
Bäş dilde müňlerçe sesli jümleden ybarat aýratyn synag toplumy durnuklylygy barlamak üçin gaýtalanýan işledişler bilen prompt ýa-da model üýtgeşmesiniň çykarylmazdan öň hakykatdan peýdalydygyny görkezýär.
Näme döretdim
Ses → tranzaksiýa: girişde audio we ulanyjynyň öz katalogy, çykyşda shema boýunça barlanan JSON garalama
SSE arkaly stream görnüşinde işleýän maliýe kömekçisi bilen çat; programmanyň 20 töweregi formasyny doldurýan sesli kopilot
Offline-first maşgala sinhronizasiýasy: ýazgylaryň wersiýalary, kursor bilen sahypalanýan üýtgeşmeler lentasy, topar setirini gulplamak
Ýatyryp bolýan JWT bilen Google arkaly giriş, Google Play talaplaryna laýyk akkaunty pozmak we maglumatlaryň möhletiniň awtomatik gutarmagy
LLM baha beriş toplumy: 5 dilde her dil üçin 7 000 töweregi synag ýagdaýy, şeýle hem programma↔serwer şertnamasyny barlaýjy
Ýatdaky PostgreSQL-de (PGlite) 254 backend testi
Sanlarda
her dil üçin sesli jümleleri derňemek boýunça synag ýagdaýlary