Aller au contenu

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_banking dé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 :

  1. ADEN route le prompt vers la passerelle IA puis vers le modèle local.
  2. ADEN restreint le scope tables à postgres_oltp_banking.public.transactions selon les droits de Carol.
  3. Le SQL généré est affiché pour relecture.
  4. 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 :

  1. KPI — Transactions frauduleuses 7 derniers jours
  2. KPI — Montant total fraude EUR
  3. KPI — Trust score moyen
  4. KPI — Taux de fraude (%)
  5. Bar — Fraude par flagged_reason
  6. Bar — Fraude par country_code
  7. Line — Volume de fraude par jour
  8. 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

Voir aussi