lumnik. / scénarios Tous les scénarios · English

Ask refuse une marge sans coût et un meilleur fournisseur sans critère

Objectif Laisser un directeur achats interroger ses commandes avec ses mots, sans qu'on lui invente un chiffre que les données ne portent pas.

Un directeur achats pose ses questions à un an de commandes fournisseurs. Trois questions reçoivent leur chiffre, avec le SQL qui l'a produit.

purchase_orders.csv
po_number,supplier_id,supplier_name,category,order_date,status,amount_eur
PO-2025-0001,SUP-006,Fournisseur F,visserie,2025-06-30,received,12328.52
PO-2025-0002,SUP-002,Fournisseur B,emballage,2025-01-25,received,17452.35
PO-2025-0003,SUP-002,Fournisseur B,emballage,2025-05-01,received,241.35
PO-2025-0004,SUP-002,Fournisseur B,emballage,2025-01-31,received,4350.22
PO-2025-0005,SUP-003,Fournisseur C,transport,2025-11-24,cancelled,14903.09
PO-2025-0006,SUP-001,Fournisseur A,visserie,2025-04-10,received,16044.38
PO-2025-0007,SUP-005,Fournisseur E,emballage,2025-03-01,cancelled,4720.45
PO-2025-0008,SUP-004,Fournisseur D,maintenance,2025-01-03,ordered,12530.45
PO-2025-0009,SUP-003,Fournisseur C,transport,2025-03-14,received,12444.82
PO-2025-0010,SUP-004,Fournisseur D,maintenance,2025-01-30,received,1472.23
PO-2025-0011,SUP-002,Fournisseur B,emballage,2025-08-23,ordered,1548.55
PO-2025-0012,SUP-005,Fournisseur E,emballage,2025-04-25,received,10939.14
PO-2025-0013,SUP-003,Fournisseur C,transport,2025-02-18,received,17843.19
PO-2025-0014,SUP-004,Fournisseur D,maintenance,2025-11-12,received,16114.73
PO-2025-0015,SUP-001,Fournisseur A,visserie,2025-08-07,ordered,9761.13
PO-2025-0016,SUP-002,Fournisseur B,emballage,2025-07-17,received,11251.27
PO-2025-0017,SUP-001,Fournisseur A,visserie,2025-02-06,ordered,7957.67
PO-2025-0018,SUP-003,Fournisseur C,transport,2025-09-16,ordered,4198.67
PO-2025-0019,SUP-001,Fournisseur A,visserie,2025-02-08,received,8351.96

… 221 lignes de plus

$ lm ask --scope purchasing-c --lang fr "Combien de commandes ont été annulées ?"
26 commandes ont été annulées.
  data as of: 2026-11-03T18:40:55.729849Z (last completed run)

  COUNT
  26
  1 row returned

  SQL: SELECT COUNT(*) FROM "connector"."v_purchase_order_c" WHERE "status" = 'cancelled'
LIMIT 500

$ lm ask --scope purchasing-c --lang fr "Quel est le montant total commandé au fournisseur SUP-003, hors commandes annulées ?"
Le montant total commandé au fournisseur SUP-003, hors commandes annulées, est de 316021.03 euros.
  data as of: 2026-11-03T18:40:55.729849Z (last completed run)

  TOTAL_AMOUNT_EUR
  316021.03
  1 row returned

  SQL: SELECT SUM(amount_eur) AS total_amount_eur
FROM "connector"."v_purchase_order_c"
WHERE supplier_id = 'SUP-003' AND status != 'cancelled'
LIMIT 500

$ lm ask --scope purchasing-c --lang fr "Quelles commandes du fournisseur SUP-003 dépassent 15 000 euros ?"
Il y a 7 commandes du fournisseur SUP-003 qui dépassent 15 000 euros. Les numéros de commande sont : PO-2025-0013, PO-2025-0022, PO-2025-0061, PO-2025-0071, PO-2025-0078, PO-2025-0155 et PO-2025-0192.
  data as of: 2026-11-03T18:40:55.729849Z (last completed run)

  PO_NUMBER
  PO-2025-0013
  PO-2025-0022
  PO-2025-0061
  PO-2025-0071
  PO-2025-0078
  PO-2025-0155
  PO-2025-0192
  7 rows returned

  SQL: SELECT "po_number"
FROM "connector"."v_purchase_order_c"
WHERE "supplier_id" = 'SUP-003' AND "amount_eur" > 15000
LIMIT 500
$ lm ask --scope purchasing-c --lang fr "Quelle est notre marge sur les achats de 2025 ?"
Je ne peux pas répondre à partir des données disponibles pour ce périmètre — la question ne correspond pas au schéma déclaré.

$ lm ask --scope purchasing-c --lang fr "Quel est notre meilleur fournisseur ?"
Je ne peux pas répondre à partir des données disponibles pour ce périmètre — la question ne correspond pas au schéma déclaré.

$ lm ask --scope purchasing-c --lang fr "Quel fournisseur livre le plus en retard ?"
Je ne peux pas répondre à partir des données disponibles pour ce périmètre — la question ne correspond pas au schéma déclaré.
$ lm ask --scope purchasing-c --lang fr "Quelles commandes du fournisseur SUP-009 ont été reçues ?"
La requête n'a renvoyé aucune ligne. Il peut n'y en avoir réellement aucune, ou la requête n'a pas saisi votre question — vérifiez le SQL avant d'affirmer qu'il n'y en a pas.
  data as of: 2026-11-03T18:40:55.729849Z (last completed run)

  no rows returned

  SQL: SELECT "po_number", "order_date", "amount_eur"
FROM "connector"."v_purchase_order_c"
WHERE "supplier_id" = 'SUP-009' AND "status" = 'received'
LIMIT 500

Limites

  • Les refus viennent du modèle configuré sur le hub (qwen2.5-coder:7b ici). Un autre modèle peut traduire une question que celui-ci refuse; ses chiffres passent alors les mêmes contrôles.
  • Une date reprise dans la réponse n'est reconnue que par son année: «depuis le 15 mars» fait retenir la phrase, pas les lignes.
  • Commandes synthétiques; une seule entité, un seul périmètre.

Achats · questions

Un directeur achats pose ses questions.

Avec ses mots, sur un an de commandes.

Certaines n'ont pas de réponse dans ces données.

Commandes synthétiques

Le problème

Un chiffre inventé se répète en réunion.

  • Il n'y a pas de prix de revient: pas de marge.
  • «Meilleur» n'a pas de critère.
  • Aucune date de livraison: pas de retard.

Ce qui répond

Trois questions, trois chiffres, le SQL à côté.

  • 26 commandes annulées.
  • 316 021,03 € commandés à SUP-003.
  • Les commandes de SUP-003 au-dessus de 15 000 €.

Ce qu'il a fallu écrire

description: "… the hub holds no cost price,
  no selling price and no supplier rating."

L'entité dit ce que veut dire chaque colonne.

Le scénario complet tient en 2 fichiers de déclaration, 56 lignes.

Ce qui est refusé

Aucune requête, et il le dit.

lm ask
Je ne peux pas répondre à partir des données disponibles pour ce périmètre — la question ne correspond pas au schéma déclaré.

Réponse réelle, rejeu du 3 novembre 2026.

Le vide n'est pas un non

SUP-009: aucune ligne.

  • La requête ne renvoie rien.
  • Ask ne conclut pas qu'il n'y a aucune commande.
  • Il demande de vérifier le SQL.

La limite

Les refus dépendent du modèle.

  • Ici qwen2.5-coder:7b, en local.
  • Un autre modèle peut traduire une question refusée.
  • Ses chiffres passent alors les mêmes contrôles.

Essayer

Le scénario se rejoue de bout en bout.

CSV, entité, sept questions: chaque réponse est publiée avec son SQL.

Ce scénario demande lumnik Pro.

Voir l'offre →