CentraQL

CentraQL AI BI Copilot Pipeline-ı: 11 Mərhələdə Audit Edilə bilən SQL

Təbii dildən SQL-ə keçən yolda hər mərhələdə nəyin loglandığı, nəyin rədd olunduğu və hallüsinasiyanın niyə sıfır olduğu CentraQL Copilot memarlığı.

BIART Ekibi3 dəq oxu1 baxış
AI BI Copilot 11 aşamalı pipeline diyagramı

Bank analitiki "ötən ayın vadəli depozit gəliri ən yüksək 5 filialı" deyə soruşduqda doğru cavab artıq SQL-in içindədir. Onu təhlükəsiz çıxarmaq isə bir neçə yoxlama tələb edir: istifadəçi səlahiyyətli mi, hansı metric tərifi tətbiq olunur, nəticədə FİN kodu və ya IBAN sızabiləcəkmi, rəqəmlər göstərilən dataframe ilə üst-üstə düşürmü? CentraQL AI BI Copilot pipeline bu səthi 11 mərhələdə idarə edir.

Pipeline-ın məqsədi

Təbii dil sualını izlənə bilən, audit edilə bilən və sübut edilə bilən cavaba çevirmək. *İzlənə bilən* — hər mərhələdə hansı LLM-in, hansı konteksdə işlədiyi log-lanır. *Sübut edilə bilən* — cavabın hansı SQL-dən və hansı semantik təriflərdən çıxdığı istifadəçiyə göstərilir.

1. Guard

Sorğu səthə dəyməmişdən əvvəl policy qatı işləyir: istifadəçi rolu, veri təsnifatı, ComplianceProfile (məs. RegulatedFinance). Prompt-injection paternləri yüngül regex + similarity filtri ilə yoxlanır; yüksək riskli giriş rədd edilib log-lanır.

2. Intent

Qısa bir LLM çağırışı (adətən 7B planner) sualı təsnif edir: aqreqasiya, trend, drill-down, anomaliya izahı. Hər tip fərqli şablon və few-shot dəstinə yönləndirilir.

3. Retrieve (Qdrant)

Domain pack içində sertifikatlı few-shot və KPI tərifləri nomic-embed-text ilə vektorlanmışdır. Sualın semantik qonşuları çəkilir; planner-ə top-k (~5) konteks kimi verilir.

4. Plan — QuerySpec JSON

Planner LLM-ə few-shot + sual birləşik prompt-u verilir. Çıxış azad SQL deyil, JSON QuerySpec-dir: hansı metric, hansı dimension, hansı filter, hansı sort, hansı limit. JSON schema validatoru forması zorlayır; uyğunsuz çıxış rədd edilir, bir dəfə retry edilir.

5. Validate

QuerySpec semantik qatın qarşısında yoxlanır. Metric təyin olunubmu, dimension etibarlıdırmı, filter sahəsi istifadəçinin girişinə açıqdırmı? RegulatedFinance-də əlavə yoxlama: rangeOf, joinDepthMax, allowFreeText=false. Rədd olarsa istifadəçiyə səbəblə qaytarılır.

6. Synth — SQL

QuerySpec deterministik builder ilə T-SQL-ə çevrilir. LLM bu mərhələdə işlədilmir, ona görə hallüsinasiya mümkün deyil. SQL formatlanır, hash-lənir, audit-ə yazılır.

7. Execute (read-only)

Hazırlanan SQL read-only bağlantı üzərində işləyir. Timeout default 30 sn, RegulatedFinance üçün 10 sn. Row limiti profil əsaslıdır (adətən 1000 sətir).

8. Mask (PII)

Nəticə dataframe ColumnPolicy-yə görə filtrlənir: FİN, IBAN, email, telefon maskalanır və ya silinir. Maskalama execute-dən sonra, narrate-dən əvvəl baş verir — həssas sahə LLM-ə heç vaxt çatmır.

9. Chart

Nəticənin formasına görə uyğun qrafik (line, bar, pie, table) və oxlar seçilir. QuerySpec öncədən təyin etmiş ola bilər; əks halda heuristik işləyir.

10. Narrate (LLM)

Maskalanmış nəticə + chart spec narrator LLM-ə verilir. Sanitization mərhələsi narrative içindəki rəqəm/faiz/məbləğləri orijinal cədvəllə müqayisə edir; uyğunsuzluq düzəldilir.

11. Audit

Pipeline-ın hər mərhələsinin metadata-sı PromptAuditLog-a yazılır: sorğu hash, istifadəçi, timestamp, planner və narrator modeli adı, token, dönən sətir, maskalanan sütunlar, p50/p95 latency. BDDK üçün 365 gün retention.

Tipik latency

1×RTX 4090 + Qdrant + SQL Server üzərində p95 ≈ 6-9 sn:

  • Guard + Intent: 200 ms
  • Retrieve: 80 ms
  • Plan (7B q4): 2-3 sn
  • Validate + Synth: 60 ms
  • Execute: 150-800 ms
  • Mask: 30 ms
  • Narrate (14B q4): 1.5-3 sn
  • Audit (async): 20 ms

Yekun

CentraQL Copilot memarlığı "LLM mənə SQL yazsın" yanaşmasının əksinədir: LLM yalnız dil və narrative üçün, SQL deterministik builder-dən, semantik qatdan və kataloq sərhədindən keçir, çıxış maskalanır. Nəticə: rəqəmlərdə hallüsinasiya riski sıfır olan tənzimləyici-səviyyəli memarlıq.

Paylaş