← Xəritəyə qayıt

Keyfiyyət və testlər

AI-ın nə qədər dəqiq olduğunu sadə qayda əsaslı yanaşma ilə müqayisə edirik, rəqəmlərin uydurulmadığını yoxlayırıq və məlumatın özünü testdən keçiririk. Testlər açıqdır və təkrar işlədilə bilər. Son yeniləmə: 12 okt 2026, 16:20 (Bakı vaxtı).

Niyyətin anlaşılması (yer)
100%
qayda: 85%
Hüquqi risk: recall
100%
qayda: 58%
Rəqəmlərin əsaslandırılması
99 8%
624 rəqəm yoxlandı
Şərtlərə uyğun nəticə
100%
10/10 sorğu

Nümunə ölçüləri kiçikdir (10–30 hal); nəticələr ilkin göstəricidir.

1. Niyyət: AI vs açar söz qaydası

27 Azərbaycan dilində sorğu (3 qeyri-müəyyən, 2 səhv yazılmış/danışıq dili). Sahə üzrə dəqiqlik.

Məqsəd
AI (Gemini)
100%
Açar söz qaydası
96%
Əmlak növü
AI (Gemini)
96%
Açar söz qaydası
100%
Yer
AI (Gemini)
100%
Açar söz qaydası
85%
Şərtlər
AI (Gemini)
89%
Açar söz qaydası
100%
Büdcə
AI (Gemini)
100%
Açar söz qaydası
93%
İngilis dilində sorğular

11 ingilis dilində sorğu (eyni sxem, eyni yoxlama).

Məqsəd
AI (Gemini)
100%
Açar söz qaydası
100%
Əmlak növü
AI (Gemini)
100%
Açar söz qaydası
100%
Yer
AI (Gemini)
100%
Açar söz qaydası
91%
Şərtlər
AI (Gemini)
91%
Açar söz qaydası
100%
Büdcə
AI (Gemini)
100%
Açar söz qaydası
82%

2. Hüquqi yoxlama: elanlarda risk

18 elan mətni: 6 təmiz, 12 riskli (o cümlədən gizli risk: “sənədlər sonra düzələcək”).

Recall (riskli elanların neçəsi tapıldı)
AI (Gemini)
100%
Açar söz qaydası
58%
Precision (xəbərdarlıqların neçəsi doğrudur)
AI (Gemini)
86%
Açar söz qaydası
100%

Saytda ikisi birlikdə işləyir: qaydanın tapdığı ifadə AI siyahısına həmişə əlavə olunur, beləliklə məlum ifadələr heç vaxt buraxılmır.

3. Rəqəmlər uydurulurmu?

29 AI mətnindəki hər rəqəm çıxarılıb və modelə verilən JSON-da (±1%) axtarılıb.

JSON-da tapıldı
99 8%
hədəf
100%

Tapılmayan: 1. Nümunələr: az-xankendi → 355

İngiliscə profillər: 29 mətn, 747 rəqəm, 98 8% JSON-da tapıldı.

4. Şərtlərə uyğunluq (retrieval)

Sorğu (sərt şərtlər)Uyğun / qaytarılanNəticə
Nərimanov + metro ≤800 m5 / 5✓ keçdi
Yasamal + məktəb ≤500 m5 / 5✓ keçdi
Bakı + metro ≤500 m + bağça ≤600 m5 / 5✓ keçdi
Binəqədi + park ≤400 m5 / 5✓ keçdi
Bakı + ≤2000 ₼/m²5 / 5✓ keçdi
Bakıdan kənar + dağlıq5 / 5✓ keçdi
Sahilə yaxın rayon5 / 5✓ keçdi
Xətai + metro ≤1000 m + məktəb ≤700 m5 / 5✓ keçdi
Gəncə + məktəb ≤800 m5 / 5✓ keçdi
Nəsimi + metro ≤600 m + park ≤500 m4 / 4✓ keçdi

5. Məlumatın yoxlanılması

NəticəYoxlamaTəfərrüat
✓75 rayon/şəhər var75
✓Bakının 12 rayonu varNizami, Sabunçu, Xətai, Pirallahı, Suraxanı, Xəzər, Qaradağ, Yasamal, Səbail, Nərimanov, Nəsimi, Binəqədi
✓Hər ərazinin əhalisi var (DSK)hamısında var
✓Bakı rayonlarının əhalisi cəmi = Bakı (±2%)2356200 vs 2356200
✓NaN və ya mənfi dəyər yoxduryoxdur
✓Heç bir rayon ölkə POI-lərinin 25%-dən çoxunu tutmur (Bakıdan başqa)maks: 6.0%
✓10 min sakinə düşən göstəricilər inandırıcıdır (≤10× median)hamısı norma daxilində
✓Əhali–OSM uyğunsuzluğu olan ərazilər işarələnibXankəndi, Ağdərə, Xocalı
✓Heç bir ərazi 4+ indeksdə 99 almıryoxdur
✓PM2.5, temperatur, sıxlıq, asfalt % ağlabatan hədlərdəhamısı
✓Qiymətlər ağlabatan hədlərdə (₼/m² 200–20 000)101 qiymət yoxlanıldı
✓Metro: 27 işləyən stansiya (rəsmi çıxışlardan)Bakı 27, opendata 27 stansiya / 98 çıxış
✓opendata.az: hər dəstdə qeyd varsettlements 4589, gazetteer 4589, rail_regions 87, roads 60, poi_areas 14, metro_pax 27
✓Hər yaşayış məntəqəsi (PARENT_ID) bir rayona bağlıdır4589 məntəqə
✓Yeni rəsmi göstəricilərdə NaN yoxduryoxdur
✓Gazetteer: kiçik hərflə kənd adı tapılır, adi sözlər kənd sayılmır5 yoxlama
✓H3 hesablama şəbəkəsi: hər parça öz rayonunun içindədir3700 parça yoxlanıldı
✓H3 hesablama şəbəkəsi: parçaların cəmi ≈ rayon sahəsi (±3%)maks fərq 1.60%
✓Hər məhəllə öz rayonunun içindədir1125 məhəllə yoxlanıldı
✓Məhəllələr bir-birini örtmür (sadələşdirmə payı ≤0.5%)14 rayon
✓Məhəllələrin cəmi sahəsi ≈ rayon sahəsi (±3%)maks fərq 0.11%
✓Məhəllə adındakı yer öz rayonunun içindədir1125 ad yoxlanıldı
✓Hər məhəllənin adı var1125 ad
✓Aşağı OSM əhatəli ərazilərin payı17/87 (20%)
✓Real (dərc olunmuş) qiymətlərin payı61/101

6. Səhvlərimiz və necə düzəltdik

Xankəndi hər sorğuda birinci çıxırdı
Giriş:
İstənilən persona, Azərbaycan səviyyəsi (məs. 'uşaqlı ailə')
Səhv nəticə:
Xankəndi bütün per-capita indekslərdə 99 bal alırdı və TOP-1 seçilirdi; AI hər cavabı Xankəndi haqqında yazırdı.
Səbəb:
Məlumatın vaxt uyğunsuzluğu: OSM-də 2023-dən əvvəlki ~55 min sakinlik şəhərin 409 obyekti, DSK-da isə 2026-cı il əhalisi 4 400 nəfər → 10 min sakinə 929 obyekt (median 19.5, 47.7×).
Həll:
Ümumi qayda: obyekt/sakin nisbəti medianın 10 qatından çoxdursa per-capita göstəricilər null olur, panel xəbərdarlıq göstərir, fit-də naməlum indeks 30 sayılır. data-sanity eval bunu hər build-də yoxlayır (Xankəndi, Xocalı, Ağdərə işarələnib).
Mövcud olmayan metro stansiyası tövsiyə olunurdu
Giriş:
“Nərimanovda metroya yaxın ev lazımdır”
Səhv nəticə:
3-cü tövsiyə “Nərimanov · 20 Sentyabr m. ətrafı” idi — bu stansiya hələ işləmir.
Səbəb:
OSM-də station=subway teqi depo (Dərnəgül deposu), çıxış (28 May 2-ci çıxış) və planlaşdırılan stansiyalara (Y14–Y16, 20 Sentyabr, Məhəmməd Hadi) da verilib: OSM 33 'stansiya' göstərirdi, real 27-dir.
Həll:
OSM stansiyaları 27 işləyən stansiyanın siyahısı ilə yoxlanılır, ad variantları normallaşdırılır (Metro elmlər → Elmlər Akademiyası), qalanları atılır. data-sanity: OSM 26 / rəsmi 27 (Memar Əcəmi-2 eyni yerdədir).
AI profillərindəki rəqəmlər köhnəlmişdi
Giriş:
Grounding eval: 29 AI profili, 402 rəqəm (ilk ölçmə)
Səhv nəticə:
25 rəqəm (6.2%) giriş JSON-da tapılmadı, məs. Füzuli üçün 'indeks 57'.
Səbəb:
Profillər Xankəndi düzəlişindən əvvəl yazılmışdı; düzəliş bütün rayonların faiz dərəcələrini dəyişdi, mətn isə köhnə qaldı.
Həll:
Hər profil giriş məlumatının hash-ini saxlayır; məlumat dəyişəndə profil avtomatik köhnəlmiş sayılır və yenidən yazılır (--refresh-stale). Nəticə: grounding 93.8% → 99.8% (639 rəqəmdən 1-i tapılmadı).
Etibarlılıq balı NaN olurdu
Giriş:
“Bakıdan kənarda dağ havası, həyət evi” (qiyməti olmayan rayonlar)
Səhv nəticə:
Tövsiyə etibarlılığı: NaN
Səbəb:
Operator prioriteti: s + X ?? 0 ifadəsi (s + X) ?? 0 kimi hesablanırdı; qiymət yoxdursa undefined + ədəd = NaN.
Həll:
Mötərizə əlavə edildi; retrieval eval 10 sorğuda balın 0–100 aralığında olduğunu yoxlayır.
Zəif modelə keçəndə Azərbaycan hərfləri itirdi
Giriş:
Lerik profili (pulsuz limit dolanda flash-lite modelinə keçid)
Səhv nəticə:
“zengin tebieti ve mehdud infrastrukturu olan dagliq erazi” — ə, ğ, ı hərfləri yoxdur.
Səbəb:
429 limitində fallback modelləri sırası daha zəif flash-lite modelinə çatdı.
Həll:
Profil keyfiyyət yoxlaması (uzunluq, ≥6 rəqəm, qadağan ifadələr, Azərbaycan hərfləri); uğursuz profillər yenidən yazılır.
Model mövcud olmayan yer id-si uydururdu
Giriş:
“nerimanovda kiraye ev axtariram”, “Səbaildə investisiya üçün mənzil”
Səhv nəticə:
AI “az-nerimanov”, “az-sebail” kimi mövcud olmayan id-lər, bəzən də rayonla yanaşı “az-baki” qaytarırdı — axtarış bütün Bakıya genişlənirdi.
Səbəb:
Model rayonu ölkə səviyyəli id formatında yazırdı və valideyn şəhəri də əlavə edirdi.
Həll:
Deterministik normallaşdırma: kataloqda olmayan id atılır, az-X → bk-X (yalnız Bakı rayonu varsa), rayon adı çəkiləndə “az-baki” silinir. Yer dəqiqliyi 75% → 95%.

7. Mövcud yanaşma ilə müqayisə

Eyni tapşırıq (“Nərimanovda metroya yaxın, məktəbi olan 3 ərazi seç və qiymətini bil”): bina.az + Google Maps ilə əl ilə vs Məskən.

İştirakçıƏl ilə, dəqMəskən, dəq
İştirakçı 1ölçülürölçülür
İştirakçı 2ölçülürölçülür
İştirakçı 3ölçülürölçülür

İnsan testi aparılır; nəticələr və sitatlar bura əlavə olunacaq. Rəqəm olmayana qədər heç bir iddia etmirik.

8. Xərc

  • Model (src/lib/ai.ts): gemini-3.7-flash; limit və ya yüklənmə olanda ehtiyat: gemini-3.8-flash, gemini-3.6-flash, gemini-3.5-flash, gemini-flash-latest, gemini-3.5-flash-lite.
  • Ölçülmüş orta: 21.032 giriş + 425 çıxış token / çağırış (141 çağırış)
  • Sessiya (~4 AI çağırışı): $0.03 (gemini-3.7-flash qiyməti) … $0.14 (gemini-3.5-flash qiyməti, ehtiyatlı hesab)
  • 1000 istifadəçi: $34.74 … $141.49
  • Qiymət mənbələri: gemini-3.7-flash (əsas model): $0.375/$1.88 per 1M (pricepertoken.com (Google təsdiqi tapılmadı)); gemini-3.5-flash (ehtiyat model): $1.5/$9 per 1M (benchlm.ai / morphllm.com). Pulsuz Gemini limiti demo üçün kifayətdir; keş təkrar sorğuları pulsuz edir. Hostinq: Vercel Hobby (pulsuz), məlumat statikdir.

9. Xidmətlər: OSM və rəsmi siyahı

Bakının 14 rayonu, Sumqayıt və Abşeron üzrə OSM sayları opendata.az siyahısı (Ekologiya və Təbii Sərvətlər Nazirliyi) ilə müqayisə edilir. Mənbələr toplanmır. 1.593 obyekt “Checking” statusundadır; 924 CUSTOMIZABLE_POINT nəzərə alınmır.

KateqoriyaOSMopendata.az
Məktəb1.099655
Uşaq bağçası682331
Xəstəxana690527
Aptek645482
Ərzaq mağazası4.3581.819
Bank / bankomat1.004644
Park3.33879
Ən böyük fərqlər
ƏraziKateqoriyaOSM / opendata.az
AbşeronƏrzaq mağazası754 / 50
XəzərƏrzaq mağazası588 / 11
SabunçuƏrzaq mağazası581 / 83
SuraxanıƏrzaq mağazası431 / 48
XəzərPark375 / 1
BinəqədiƏrzaq mağazası471 / 99
SumqayıtPark377 / 21
SabunçuPark331 / 1

OSM kateqoriyaları daha genişdir (məs. ərzaq köşkləri, kiçik yaşıl sahələr), rəsmi siyahı isə tam olmaya bilər — fərq hansının doğru olduğunu göstərmir, harada yoxlama lazım olduğunu göstərir.