Capacités IA
L'assistant IA est un panneau de discussion intégré à NomaUBL. Il répond à deux types de questions :
- Comment fonctionne le produit ? — l'assistant consulte la documentation publique sur
docs.nomana-it.fret renvoie une réponse sourcée. - Quel est l'état des données ? — l'assistant interroge la base NomaUBL en lecture seule et renvoie les lignes correspondantes : factures, statuts, erreurs de validation, dépôts e-reporting.
Les réponses s'affichent en flux pendant la génération. Chaque appel d'outil apparaît sous forme de pastille — toutes les actions sont visibles. La langue de la réponse suit celle de la question (français ou anglais).
Ouverture du panneau
- L'entrée ✦ Assistant IA dans la barre de navigation (en haut à droite, pastille en dégradé violet) ouvre un tiroir latéral. L'espace de travail se réduit en conséquence.
- Le sélecteur en haut du panneau permet de choisir un modèle. Par défaut convient aux questions courantes. Les modèles plus puissants (Sonnet, Opus) raisonnent plus longuement, mais coûtent plus cher en API.
- Touche Entrée pour envoyer, Maj+Entrée pour insérer un saut de ligne, ■ pour arrêter une réponse en cours.
- Fermer le panneau réinitialise la conversation. L'assistant ne garde aucun historique entre sessions.
Vue d'ensemble
Chaque action de l'assistant apparaît sous forme de pastille : 🔍 pour une lecture de la base NomaUBL, 📖 pour une page de documentation demandée, 📥 pour le résultat reçu. Les filtres réellement utilisés sont affichés à côté. Aucune étape n'est cachée.
Questions prises en charge
L'assistant est relié à deux sources d'information, toutes les deux en lecture seule.
Sur le produit
Pour répondre à une question sur le produit, l'assistant consulte la documentation publique docs.nomana-it.fr en deux étapes :
list_docs_pages— récupère les URL de documentation NomaUBL disponibles via le sitemap du site (rafraîchi toutes les six heures, 200 entrées maximum). La pastille s'affiche sous la forme 🔍list_docs_pages · discovering NomaUBL docs URLs.web_fetch— choisit l'URL la plus pertinente dans la liste, puis télécharge la page. Une pastille 📖 affiche l'URL choisie. Juste après, une pastille 📥web_fetch_result · ✓ <url>confirme la réception (ou 📥 ❌<error_code>en cas d'échec).
Ce fonctionnement en deux étapes garantit que l'URL consultée provient toujours du sitemap à jour. L'assistant ne peut pas inventer un lien ni en utiliser un périmé.
Cas d'usage :
- doute sur le comportement d'une fonctionnalité (« À quoi sert Replace = Skip sur Processing → XML ? ») ;
- besoin d'une définition rapide pour un collègue (« Différence entre flux 10.1 et 10.3 ? ») ;
- rappel du cycle de vie officiel (« Comment une facture passe-t-elle du statut 9900 au statut 10 ? »).
Sur les données
Cinq outils en lecture seule couvrent les questions opérationnelles courantes. L'assistant reçoit aussi le catalogue de statuts en vigueur (codes facture et e-reporting, avec tag et libellés FR/EN). Il peut donc traduire automatiquement des expressions comme « en litige » ou « rejected » vers le bon code, sans approximation.
| Outil | Données retournées | Question typique |
|---|---|---|
list_invoices | Jusqu'à 50 factures de F564231, avec filtres : code statut, société, routage BAR (B2B / B2BINT / B2C / B2G / OUTOFSCOPE), nom client (sous-chaîne), période d'émission. | « Lister les factures en attente pour la société 00070 en EUR », « Échecs d'envoi depuis lundi dernier » |
explain_status_code | Le nom de tag et les libellés FR / EN d'un code statut. Consulte le catalogue facture (1, 8, 10, 37, 9900–9907 …) et le catalogue e-reporting (9950–9957). | « Que signifie 9906 ? », « Statut 9954 ? » |
validation_errors | Erreurs de validation issues de F564236 pour un triplet DOC + DCT + KCO (niveau, source, règle, message — mêmes colonnes et même logique de résolution que la page Erreurs d'intégration). | « Quel est le problème pour la facture 10000 / RI / 00001 ? » |
lifecycle_history | Toutes les transitions de statut enregistrées dans F564235 pour un triplet DOC + DCT + KCO — séquence, code statut, message, date / heure, plus le motif de rejet PA, l'action attendue et la note de statut lorsqu'ils sont présents. | « Pourquoi la facture 12345/RI/00070 a-t-elle été rejetée par la PA ? », « Afficher l'historique complet de cette facture » |
list_ereports | Jusqu'à 50 dépôts de F564240 avec filtres : flux (10.1 / 10.3), société, code statut (9950–9957). | « Les dix derniers dépôts 10.3 pour la société 00070 », « Dépôts e-reporting en attente » |
Le déclenchement est automatique : aucun appel manuel à faire. Un garde-fou interrompt l'assistant après 5 appels d'outil par tour, pour éviter qu'une boucle ne consomme tout le budget API. En cas d'échec d'un outil, l'assistant affiche son nom, les paramètres tentés et le code d'erreur — utile pour le diagnostic.
Exemples de conversation
Les transcriptions ci-dessous proviennent d'une session réelle. Le panneau fonctionne à l'identique en anglais.
Exemple 1 — Diagnostic d'une facture isolée
Utilisateur quel est le problème pour la facture 10000 / RI / 00001
🔍
validation_errors·doc=10000 dct=RI kco=00001Assistant IA Je vais chercher les erreurs de validation pour cette facture.
La facture 10000 / RI / 00001 a une erreur de validation XSD :
Problème : Structure UBL 2.1 invalide. L'élément
AdditionalDocumentReferenceest trouvé à une position non autorisée.Cause probable : L'ordre des éléments dans le document UBL ne respecte pas le schéma.
AdditionalDocumentReferencedevrait apparaître aprèsProjectReference,SignatureouAccountingSupplierParty.Recommandations :
- Vérifier la transformation JD Edwards → UBL générée par NomaUBL.
- S'assurer que les éléments UBL sont ordonnés conformément à la norme UBL 2.1.
- Contrôler les données source dans JD Edwards (type de document, références additionnelles).
Souhaitez-vous que je consulte le statut global de cette facture ? 📋
Utilisateur oui
🔍
list_invoices·kco=00001Assistant IA
Statut de la facture 10000 / RI / 00001 :
Attribut Valeur Client LE CLIENT Date d'émission 2025-02-01 Type de document B2C Montant HT 130,00 € TVA 10,70 € Montant TTC 140,70 € Statut 🔴 9905 — Échec de validation Récapitulatif : la facture est bloquée en validation depuis le 1er février 2025 à cause de l'erreur XSD ci-dessus (élément
AdditionalDocumentReferencemal positionné).Besoin d'aide pour corriger cette facture ? 📋
Un triplet (DOC + DCT + KCO) suffit pour démarrer le diagnostic. L'assistant enchaîne lui-même les requêtes — d'abord la table de validation, puis l'en-tête de facture — et propose l'étape suivante.
Exemple 2 — Comptage des échecs sur l'ensemble du parc
Utilisateur combien de factures au total ne sont pas valides ?
🔍
list_invoices·status=9905Assistant IA
Résultat : 50 factures en échec de validation (statut 9905).
Les résultats affichent le maximum de 50 entrées. Le nombre total exact peut être supérieur.
Répartition observée :
- Majorité : société 00002 (49 factures).
- Minorité : société 00001 (1 facture) et autres.
- Types de documents : surtout des
RI(factures), 1RM(facture d'avoir).- Période : principalement mars-avril 2026.
Recommandations :
- Vérifier si toutes ces factures sont touchées par le même problème XSD.
- Examiner en priorité les données source de la société 00002.
- Lancer un audit sur la transformation JD Edwards → UBL.
Voulez-vous que je vous montre les erreurs détaillées d'une autre facture pour confirmer si c'est le même problème ? 📋
Le plafond de 50 lignes sur list_invoices est volontaire : pour un comptage exhaustif, utiliser la page E-Invoicing. L'assistant est utile pour caractériser un problème (quelle société, quel type de document, quelle période), puis renvoyer vers l'écran dédié pour la liste complète.
Exemple 3 — Lecture de l'historique de rejet PA
Utilisateur pourquoi la facture 12345 / RI / 00070 a-t-elle été rejetée par la PA ?
🔍
lifecycle_history·doc=12345 dct=RI kco=00070Assistant IA
Voici l'historique complet de la facture 12345 / RI / 00070 :
Date Statut Message 2026-04-12 09:14 9900 — Créée — 2026-04-12 09:15 9901 — Validée XSD + Schematron OK 2026-04-12 09:18 9903 — Envoyée à la PA submission_id=ABC-42 2026-04-12 09:42 9904 — Rejet PA REJ_ADR— code adressage destinataire inconnuMotif PA :
REJ_ADR— l'identifiant SIREN/SIRET du destinataire n'est pas reconnu sur l'annuaire PPF.Action attendue : vérifier le code adressage du client dans JD Edwards puis relancer le pipeline.
Souhaitez-vous que je vérifie l'annuaire PPF pour ce destinataire ? 📋
Quand le rejet vient de la Plateforme Agréée et non de la validation locale, validation_errors renvoie une liste vide. Dans ce cas, utiliser lifecycle_history : il donne le motif PA (REJ_ADR, REJ_FMT, REJ_DESTINATAIRE …) et l'action attendue.
Exemple 4 — Consultation du fonctionnement du produit
Utilisateur qu'est-ce qu'un flux 10.1 ?
🔍
list_docs_pages·discovering NomaUBL docs URLs📖
web_fetch·https://docs.nomana-it.fr/nomaubl/application/ereporting/📥
web_fetch_result· ✓https://docs.nomana-it.fr/nomaubl/application/ereporting/Assistant IA
Le flux 10.1 est le canal e-reporting français pour les transactions B2BINT — ventes vers un acheteur dans un autre État membre de l'Union européenne. Pour ce flux :
- chaque facture est déclarée individuellement (un envoi par facture, sans agrégation) ;
- la PA dépose la déclaration auprès de l'administration fiscale via le PPF ;
- le format est XML AFNOR XP Z12-014.
À distinguer du flux 10.3, qui agrège les transactions B2C et hors-périmètre par période. Source : docs.nomana-it.fr/nomaubl/application/ereporting 📋
Les deux étapes (list_docs_pages puis web_fetch) sont obligatoires. L'API documentaire n'autorise le téléchargement que d'URL retournées par un appel précédent. L'assistant ne peut donc pas fabriquer de lien.
Lecture des réponses
-
Pastilles d'appel d'outil — affichent les filtres réellement appliqués (
status=9906 dateFrom=2026-01-01 …). En cas de résultat inattendu, la pastille donne l'explication. -
Signification des icônes — chaque icône correspond à un type d'action :
Icône Pastille Signification 🔍 list_invoices,lifecycle_history,list_ereports,validation_errors,explain_status_code,list_docs_pagesConsultation en lecture seule de la base NomaUBL ou du sitemap documentaire. 📖 web_fetchTéléchargement d'une page de documentation en cours — l'URL choisie figure dans la pastille. 📥 web_fetch_resultPage reçue. Le préfixe ✓ suivi de l'URL signale un succès ; ❌ suivi d'un code d'erreur signale un échec. 🌐 web_searchUne recherche web a été émise (uniquement lorsque la recherche est activée). -
Rendu Markdown — titres, listes à puces, fragments de code et tableaux sont mis en forme dans le panneau, sans texte brut.
-
Diffusion en flux — la bulle se remplit pendant que le modèle répond. Le bouton ■ arrête la réponse sans fermer la conversation.
-
📋 Copier au pied de chaque réponse copie le Markdown brut dans le presse-papiers — pratique pour le coller dans un ticket ou un e-mail.
Limites de l'assistant
- Aucune écriture. Aucun outil ne modifie la base. Les modifications de configuration, les relances de validation et les changements de statut sont hors périmètre.
- Pas de navigation web ouverte. La consultation documentaire est limitée à la liste blanche définie par l'administrateur (
docs.nomana-it.frpar défaut). - Pas de pièces jointes. Le panneau ne gère que du texte. Coller un UBL XML dans un message fonctionne (dans la limite du contexte modèle), mais l'envoi de fichiers n'est pas pris en charge.
- Aucune persistance. Fermer le panneau ou recharger la page réinitialise le fil. Reposer la même question dans un panneau vierge démarre une nouvelle conversation.
- Pas de portée multi-instance. Les outils en lecture seule ciblent la base associée à l'utilisateur authentifié — même périmètre que le reste de l'application.
L'administrateur peut désactiver entièrement les outils de données (l'assistant n'utilise alors que la consultation documentaire), restreindre les domaines documentaires, changer les modèles par défaut ou modifier le prompt système. Tout cela se règle dans le template global.
Conseils & bonnes pratiques
- Formuler la question, pas l'outil. « Lister les factures en attente pour la société 00070 en EUR » suffit ; pas besoin de demander explicitement
list_invoices. - Utiliser les noms naturels de statut. « En litige », « rejected by the PA », « en attente de dépôt » sont traduits automatiquement vers le bon code — l'assistant connaît le catalogue de statuts en vigueur.
- Préciser les identifiants. Pour les questions de validation ou de cycle de vie, fournir le triplet complet (
DOC + DCT + KCO). Sinon, l'assistant doit deviner ou passer parlist_invoicesd'abord. - Pour un rejet PA, utiliser
lifecycle_historyplutôt quevalidation_errors. La validation locale ne consigne dans F564236 que les échecs XSD / Schematron. Les rejets côté PA (REJ_ADR,REJ_FMT, …) sont stockés dans la table de cycle de vie : seullifecycle_historyles renvoie. - Lire les pastilles d'outil. Elles forment la trace d'audit de la conversation, y compris les marqueurs 📥
web_fetch_resultqui confirment qu'une page a bien été téléchargée (ou affichent le code d'erreur en cas d'échec). - Traiter le panneau comme une API externe. Tout ce qui y est saisi est envoyé au fournisseur du modèle : pas de clés API, pas de numéros de carte complets, pas de données personnelles au-delà de ce que la documentation publique contient déjà.
- Pour les audits approfondis, revenir aux pages dédiées. L'assistant est conçu pour des recherches rapides et des explications. Pour les flux récurrents, les pages Tableau de bord, E-Invoicing, E-Reporting et Erreurs d'intégration restent la source de vérité.