Banking — Détection de fraude pas-à-pas¶
Parcours personas : alice (mise en place) → carol (analyste) → eve (steward) · Catalogues :
postgres_oltp_banking· Durée : ~30 min · Difficulté : étoile étoile
Cette démo est la référence end-to-end d'AKKO. Carol pose une question en langage naturel, ADEN génère le SQL et un dashboard BI, Eve cure les métadonnées du catalogue, et le dashboard est partagé en lecture seule à une audience élargie. Le jeu de données synthétique PaySim-like (taux de fraude ~0,13 %) garde le scénario réaliste sans exposer de données personnelles.
Ce que la démo prouve¶
- Une analyste non technique obtient une vue curatée de la fraude sans écrire de SQL.
- La couche Catalogue garde vivantes les connaissances tribales (descriptions, owners, glossaire, lineage).
- La gouvernance applique le masquage colonne PII (
card_pan,customer_name) selon le rôle. - Un dashboard peut être publié en lecture seule via la couche BI à une audience viewer.
Pré-requis¶
- URL démo :
https://demo.akko-ai.com - Catalogue
postgres_oltp_bankingdéjà fédéré (voir Sources demo). - 3 personas provisionnées :
alice,carol,eve(mots de passe dans le Secret de la démo).
Étape 1 — Alice provisionne le rôle analyste¶
Ouvrir https://demo.akko-ai.com, cliquer Sign in, saisir les identifiants alice :
- Username :
alice - Password : lu depuis le Secret
kubectl get secret -n akko akko-demo-personas -o jsonpath='{.data.alice}' | base64 -d
Résultat attendu : Cockpit Home s'affiche avec 20/20 services en bonne santé.
+---------------------------- AKKO Cockpit -----------------------------+
| Accueil DevHub IA Gouvernance Architecture Logs Supervision |
+---------------------------------------------------------------------+
| Services en bonne santé : 20/20 |
| |
| [ Compute ] [ Query Engine ] [ Catalogue ] [ Lab ] [ BI ] [ IA ] ... |
+---------------------------------------------------------------------+
Aller dans Gouvernance → Rôles, vérifier que akko-analyst est mappé au groupe LDAP AD_analyst et que carol en est membre.
Capture : tests/e2e/playwright/artefacts/demos/banking-fraud/01-alice-roles.png
Étape 2 — Carol se connecte¶
Se déconnecter, cliquer Sign in, saisir :
- Username :
carol - Password : lu depuis le Secret
kubectl get secret -n akko akko-demo-personas -o jsonpath='{.data.carol}' | base64 -d
Résultat attendu : Carol arrive sur le Cockpit Home avec le badge analyst ; les tuiles admin sont masquées.
Capture : tests/e2e/playwright/artefacts/demos/banking-fraud/02-carol-home.png
Étape 3 — Carol ouvre ADEN¶
Cliquer l'onglet IA, puis ADEN — langage naturel vers SQL, ou aller directement à https://demo.akko-ai.com/#aden.
Résultat attendu : le canvas ADEN se charge avec le sélecteur de catalogue, le sélecteur de modèle restreint aux modèles autorisés à Carol, et un champ prompt.
+--------------------------- ADEN ------------------------------------+
| Catalogue : [ postgres_oltp_banking v ] |
| Modèle : [ qwen2.5-coder:7b v ] |
| Prompt : ________________________________________________ [ Ask ]|
+---------------------------------------------------------------------+
Capture : tests/e2e/playwright/artefacts/demos/banking-fraud/03-aden-canvas.png
Étape 4 — Carol pose la question¶
Dans le champ prompt, saisir :
montre-moi les 10 plus grosses transactions frauduleuses des 7 derniers jours,
inclus montant, marchand, pays, raison du flag et trust score
Cliquer Ask. Pipeline attendu :
- ADEN route le prompt vers la passerelle IA puis vers le modèle local.
- ADEN restreint le scope tables à
postgres_oltp_banking.public.transactionsselon les droits de Carol. - Le SQL généré est affiché pour relecture.
- La requête s'exécute via le Query Engine ; le résultat s'affiche en 0,8 s.
SQL généré (forme) :
SELECT
t.transaction_id,
t.amount,
t.merchant_name,
t.country_code,
t.flagged_reason,
t.trust_score
FROM postgres_oltp_banking.public.transactions t
WHERE t.is_fraud = TRUE
AND t.transaction_ts >= current_timestamp - INTERVAL '7' DAY
ORDER BY t.amount DESC
LIMIT 10;
Tableau résultat attendu :
| transaction_id | montant | marchand | pays | raison_flag | trust_score |
| 78a3-...-9f1 | 9 998,00 | LUXLINE BIJOUX | FR | velocity_burst | 0,07 |
| 1c44-...-0bd | 9 980,00 | ATM ZURICH 14 | CH | geo_jump | 0,09 |
| ... | ... | ... | ... | ... | ... |
Capture : tests/e2e/playwright/artefacts/demos/banking-fraud/04-aden-result-table.png
Étape 5 — Carol génère le dashboard¶
Cliquer Promote to dashboard dans ADEN. Résultat attendu : 8 charts auto-construits et regroupés dans un nouveau dashboard BI nommé AKKO Banking — Fraude 7 derniers jours :
- KPI — Transactions frauduleuses 7 derniers jours
- KPI — Montant total fraude EUR
- KPI — Trust score moyen
- KPI — Taux de fraude (%)
- Bar — Fraude par
flagged_reason - Bar — Fraude par
country_code - Line — Volume de fraude par jour
- Table — Top 10 transactions frauduleuses
+-------------------- AKKO Banking — Fraude 7 derniers jours ----------+
| 132 tx | 84 712 EUR | 0,11 trust | 0,13 % de taux de fraude |
+----------------------------------------------------------------------+
| [ Bar par raison ] [ Bar par pays ] [ Line volume / jour ] |
| [ Table top 10 ] |
+----------------------------------------------------------------------+
Capture : tests/e2e/playwright/artefacts/demos/banking-fraud/05-bi-dashboard.png
Étape 6 — Eve relit l'enrichissement catalogue via NORA¶
Se déconnecter. Se connecter en :
- Username :
eve - Password : lu depuis le Secret
kubectl get secret -n akko akko-demo-personas -o jsonpath='{.data.eve}' | base64 -d
Aller dans Gouvernance → NORA — revues IA du catalogue.
Résultat attendu : NORA affiche une file « needs review » sur la table postgres_oltp_banking.public.transactions. Chaque item regroupe :
- la description de colonne (brouillon généré par le modèle)
- le terme glossaire suggéré (ex.
Fraud Indicator) - l'owner suggéré (
bob.engineer@akko-ai.com) - le tag PII suggéré (
PII.Cardholder)
Eve clique Approuver sur la colonne card_pan. La couche Catalogue commit les métadonnées et propage le tag PII vers la couche Gouvernance. Eve clique Approuver sur la description de customer_name.
Capture : tests/e2e/playwright/artefacts/demos/banking-fraud/06-nora-review.png
Étape 7 — Carol publie le dashboard¶
Se déconnecter, se reconnecter en Carol. Rouvrir le dashboard.
Cliquer Share → Publier en lecture seule, choisir l'audience akko-viewer. Résultat attendu : un toast vert Dashboard publié aux viewers.
Se déconnecter, se connecter en dave (viewer). Ouvrir l'URL du dashboard : il s'affiche correctement, mais la colonne card_pan affiche ***MASKED*** et le menu Éditer est masqué.
Capture : tests/e2e/playwright/artefacts/demos/banking-fraud/07-viewer-masked.png
Nettoyage¶
- Se déconnecter.
- Ou garder la session pour la démo suivante (Cohorte santé).
Ce que la démo prouve¶
- Une question en langage naturel suffit à Carol pour obtenir une table de fraude auditée et un dashboard.
- L'enrichissement catalogue passe par la revue NORA, pas par l'édition JSON à la main.
- Le masquage de gouvernance est appliqué côté Query ; Dave voit les PII masquées de bout en bout.
- Le dashboard BI se publie via la couche BI à une audience viewer stricte.
Fichiers dans le repo¶
| Fichier | Rôle |
|---|---|
airflow/dags/akko_banking_fraud_demo.py |
DAG de seed optionnel pour rafraîchir la source |
superset/assets/bootstrap_dashboard.py |
Assets BI auto-provisionnés |
helm/examples/realm-akko-k3d.json |
Personas alice, carol, eve, dave câblées aux rôles |