Assistant

L’assistant répond aux questions sur le fonctionnement de l’application et sur ses calculs, à partir de ce manuel utilisateur. Il cite les sections du manuel qu’il a utilisées, pour que vous puissiez vérifier sa réponse.

Ouvrir l’assistant

Le bouton Assistant de la barre du haut de l’application (une icône de robot dans une bulle) ouvre un panneau latéral intitulé Assistant.

  • Saisissez votre question dans la zone en bas du panneau. Entrée envoie la question, Maj + Entrée passe à la ligne.
  • Nouvelle conversation commence une conversation vierge.
  • Historique liste vos conversations, la plus récente en premier : cliquez sur l’une d’elles pour la rouvrir, ou supprimez-la.

Une conversation est privée : elle n’est visible que de l’utilisateur qui l’a menée, au sein de son établissement. Vos collègues ne la voient pas.

Ce que l’assistant sait faire

Posez une question sur l’application (« Comment rouvrir un import guidé en échec ? ») ou sur sa méthodologie (« Comment est calculée la NII à 12 mois ? », « Que contient l’état J 05.00 ? »). L’assistant répond dans la langue de votre question.

Exemples de questions

Ces questions donnent une idée de ce que l’assistant sait faire. Plus une question est précise (un état, un indicateur, une date, une référence d’opération), plus la réponse l’est aussi.

Utiliser l’application

  • « Comment importer une situation pas à pas ? »
  • « Comment reprendre un import guidé resté en brouillon ? »
  • « Où voir les anomalies d’import d’une situation ? »
  • « Comment lancer une génération de cash flows malgré des erreurs d’import ? »
  • « Comment produire le dossier ALCO d’un reporting ? »
  • « À quoi sert une configuration client ? »

Comprendre la méthodologie

  • « Comment est calculée l’EVE ? »
  • « Comment est calculée la NII à 12 mois ? »
  • « Quelle différence entre la vue contractuelle et la vue comportementale ? »
  • « Comment est projeté un prêt amortissable ? »
  • « Que contient l’état J 05.00 ? »
  • « Comment fonctionne le test des valeurs aberrantes ? »
  • « Que signifie l’anomalie IMP-003 ? »

Interroger vos chiffres

Ces questions demandent que les outils sur vos chiffres soient activés dans votre environnement ; sans eux, l’assistant répond seulement à partir du manuel.

  • « Quels sont mes derniers reportings ? »
  • « Quelle est la pire variation d’EVE au 30/09 et son ratio au Tier 1 ? »
  • « Quelles classes FINREP expliquent la baisse d’EVE dans le choc parallèle à la hausse ? »
  • « Qu’est-ce qui a changé depuis l’arrêté de juin ? »
  • « Que sait-on de l’opération PEP_2027 ? »
  • « Pourquoi l’opération PEP_2027 n’apparaît-elle pas ? »
  • « Combien d’anomalies a levées l’import de la dernière situation, et lesquelles ? »

Depuis l’écran ouvert

L’assistant sait sur quel écran vous êtes (voir L’écran d’où vous posez la question) : inutile de nommer ce que vous regardez.

  • Sur un reporting : « Pourquoi l’EVE baisse-t-elle ici ? »
  • Sur l’onglet Import Anomalies d’une situation : « Que dois-je corriger en priorité ? »
  • Sur la comparaison de situations : « Qu’est-ce qui diffère entre ces situations ? »
  • Sur n’importe quel onglet : « À quoi sert cet onglet ? »

Poursuivre la conversation

  • Après une réponse sur l’EVE : « Et pour la NII ? »
  • « Peux-tu détailler le deuxième point ? »
  • « Où est-ce décrit dans le manuel ? »

L’assistant lit, il n’agit pas : il ne lance aucun calcul et ne modifie aucune donnée. À « Lance la génération du reporting », il ne peut que vous expliquer comment faire (voir Limites).

Comment la réponse est construite

La réponse est rédigée par un modèle de langage, à partir d’extraits de ce manuel :

  1. Pour chaque question, l’application cherche dans le manuel les 6 sections qui y correspondent le mieux. La recherche combine le sens de la question (deux formulations différentes d’une même question trouvent les mêmes sections) et ses mots exacts, pour retrouver aussi les codes comme J 05.00.
  2. La recherche se fait dans le manuel de la langue de votre interface : le manuel français si l’application est en français, le manuel anglais pour toute autre langue.
  3. Le modèle reçoit aussi les sections autour de chacune : la section qui la contient, puis ses sous-sections, entières et dans la limite de 1 500 caractères par section trouvée, pour qu’une formule ne lui arrive pas sans ses définitions.
  4. Le modèle répond à partir de ces sections seulement, dans la langue de la question, et cite sous forme de liens les sections qu’il a utilisées.

Une question de suite (« Et pour l’EVE ? ») est d’abord reformulée par le modèle en une question complète, à partir des 4 derniers messages, et c’est cette question qui est recherchée. Si vous changez de sujet, l’ancien sujet ne fausse donc pas la recherche. Si la reformulation échoue, la recherche prend la question précédente avec la vôtre, et vous recevez tout de même une réponse. Pour répondre, le modèle voit les 6 derniers messages de la conversation.

Sous chaque réponse, la rubrique Sources liste les sections du manuel trouvées par la recherche, sans les sections qui les entourent. Les formules sont affichées en notation mathématique, comme dans le manuel.

Questions sur vos chiffres

Quand l’administrateur de l’environnement les a activés (voir Configuration), l’assistant dispose d’outils qui lisent les chiffres de votre établissement, en lecture seule et avec vos droits : il ne voit que ce que vous voyez dans l’application.

Outil Ce qu’il lit
list_reportings Vos générations de reporting IRRBB, la plus récente d’abord : situation, date d’évaluation, statut.
reporting_metrics Les indicateurs d’un reporting, par devise : EVE, NII (12 mois) et MV par scénario, leurs variations par rapport au scénario de base, et le test des valeurs aberrantes (pire variation sur les six chocs prudentiels pour l’EVE, sur les deux chocs parallèles pour la NII, rapport au Tier 1). Vue comportementale par défaut, contractuelle sur demande.
metric_breakdown Un indicateur (EVE, NII, MV, encours comptable, duration) décomposé par classe FINREP, comme dans les états EBA : par classe, le niveau dans le scénario de base et dans le scénario demandé, et leur variation, les plus fortes d’abord ; les totaux à part. Une classe parente contient ses enfants : les classes ne s’additionnent pas.
compare_reportings Deux reportings côte à côte (par exemple deux arrêtés) : pour chaque indicateur et scénario, la valeur de l’un, de l’autre et l’écart, ainsi que le Tier 1.
deal_detail Une opération retrouvée par sa référence, telle que l’écran de l’opération l’affiche : produit et conditions, montants, taux, dates, contrepartie (sous un pseudonyme, voir Contreparties), classification FINREP. Si plusieurs situations ont une opération de cette référence, l’assistant demande laquelle.
import_anomalies Les anomalies de l’import d’une situation : leur nombre par code d’anomalie, puis les premières avec leur message.

Les variations, le pire choc et les ratios sont calculés par l’application, selon la méthodologie ; le modèle les cite tels quels et ne refait aucun calcul. Il explique un chiffre en s’appuyant sur les sections du manuel qui le définissent.

Exemples : « Quelle est la pire variation d’EVE au 30/09 et son ratio au Tier 1 ? », « Quelles classes FINREP expliquent la baisse d’EVE dans le choc parallèle à la hausse ? », « Qu’est-ce qui a changé depuis l’arrêté de juin ? », « Pourquoi l’opération PEP_2027 n’apparaît-elle pas ? ».

Pour chaque réponse, l’application garde la liste des outils appelés (outil, paramètres, durée, taille du résultat, refus éventuel) : on sait ainsi quels chiffres ont été transmis au fournisseur du modèle. Une réponse ne peut pas appeler plus de 20 outils ni revenir plus de 6 fois aux outils ; au-delà, l’assistant répond avec ce qu’il a.

L’écran d’où vous posez la question

L’assistant sait sur quel écran vous posez votre question. Sous la conversation, la mention À propos de : le rappelle (par exemple « À propos de : Reporting »). Cliquez sur sa croix pour poser la question suivante sans ce contexte ; il revient dès que vous changez d’écran.

Écran Ce que l’assistant en reçoit
Une situation (et l’onglet ouvert) La situation : son nom et sa date.
Une opération L’opération et sa situation, et la génération de flux affichée le cas échéant.
Une génération de flux La génération et sa situation.
Un reporting Le reporting : sa situation, sa date d’évaluation et son en-tête ALCO.
La comparaison de situations Les situations comparées (jusqu’à 10) : leur nom et leur date.
Un import guidé repris La situation en brouillon.
Tous les autres écrans : accueil, liste des situations, imports, guide des fichiers d’import, contexte d’évaluation, configurations client, référentiels de classification, modèles de dossier ALCO, Crédit Logement, notifications, paramètres, profil, utilisateurs, contact L’écran seulement.

Les écrans que le manuel décrit orientent la recherche vers leur page ; la comparaison de situations, les notifications, les paramètres, le profil, les utilisateurs et le contact n’en ont pas.

  • Sans outils activés, seul le nom de l’écran est transmis au modèle. Il sert à chercher d’abord dans la section du manuel qui documente cet écran : « À quoi sert cet onglet ? » trouve la bonne page sans la nommer.
  • Avec les outils, le modèle reçoit aussi ce que l’écran affiche (noms, dates et identifiants ci-dessus). Il peut alors répondre à « Pourquoi l’EVE baisse-t-elle ici ? » sur ce reporting-là, sans que vous ayez à le désigner.

L’application vérifie chaque identifiant avec vos droits : un élément que vous ne pouvez pas voir n’est jamais décrit au modèle.

Limites

  • Sans outils activés, l’assistant ne répond qu’à partir du manuel. Il ne voit alors ni vos situations, ni vos simulations, ni vos chiffres, et ne peut pas expliquer un montant précis de vos résultats.
  • Quand le manuel ne traite pas la question, il le dit, plutôt que d’inventer une réponse.
  • Il peut se tromper. Vérifiez ce qui compte dans les sections citées ; le panneau le rappelle sous chaque échange.
  • Le manuel qu’il consulte peut dater du début de la journée. L’assistant relit le manuel publié à minuit, au début de chaque jour ouvré, du lundi au vendredi : une mise à jour l’atteint à la relecture suivante, au redémarrage de l’application, ou quand un administrateur reconstruit son index (voir Administration).
Avertissement

Une réponse de l’assistant n’est pas une référence méthodologique : en cas de doute, c’est le texte du manuel qui fait foi.

Donner votre avis sur une réponse

Sous chaque réponse, deux pouces indiquent si elle vous a été utile (Réponse utile, Réponse peu utile). Votre choix est enregistré tout de suite ; un clic sur l’autre pouce le change, un second clic sur le même le retire. Vous le retrouvez en rouvrant la conversation. Il reste rattaché à la réponse, aux passages du manuel qu’elle a reçus et à la conversation, et il sert à améliorer l’assistant et le manuel. Votre avis ne modifie pas les réponses suivantes.

Supprimer une conversation supprime aussi les avis qu’elle porte.

Où vont vos questions

  • Votre question et les extraits du manuel retenus sont envoyés au fournisseur de modèle configuré pour l’environnement (OpenAI ou Anthropic).
  • Sans outils activés, aucune donnée client n’est envoyée : ni situation, ni deal, ni résultat. Avec les outils, les chiffres qu’ils renvoient (indicateurs de vos reportings) partent aussi chez ce fournisseur : c’est pourquoi les outils sont désactivés par défaut et activés environnement par environnement.
  • Le nom de l’écran d’où vous posez la question est envoyé avec elle ; avec les outils, ce que l’écran affiche aussi (voir L’écran d’où vous posez la question).
  • Aucune contrepartie n’est envoyée sous son nom : voir Contreparties.
  • Les conversations sont enregistrées dans la base de données de l’application.
  • Les questions auxquelles le manuel ne répond pas sont visibles des administrateurs de votre organisation, sans votre nom, pendant 90 jours (voir Questions sans réponse). Votre question y paraît telle que vous l’avez écrite : si elle nomme une personne ou une contrepartie, ce nom y figure.

Contreparties

Quand un outil lit une opération, sa contrepartie part chez le fournisseur sous un pseudonyme : « Contrepartie A », « Contrepartie B »… (« Counterparty A » dans une conversation en anglais). Ni la référence ni le nom de la contrepartie ne partent, même quand ils figurent dans une colonne propre à votre fichier d’import.

  • Le pseudonyme reste le même pendant toute la conversation : « Contrepartie A » désigne la même contrepartie d’une question à l’autre.
  • La correspondance entre pseudonymes et contreparties est enregistrée avec la conversation, dans la base de données de l’application. Elle ne quitte pas l’environnement.
  • Dans les réponses affichées, y compris pendant leur rédaction, le pseudonyme est remplacé par le nom de la contrepartie (sa référence si elle n’a pas de nom).
  • Une référence de moins de 3 caractères n’est masquée que dans le champ contrepartie : ailleurs, elle ne se distingue pas d’une autre valeur de l’opération.
  • Ce que vous écrivez part tel quel. Si vous nommez une contrepartie dans votre question, ce nom est envoyé.

Messages d’erreur

Message Signification
« L’assistant n’est pas disponible pour le moment. » L’assistant est désactivé dans cet environnement, ou l’index du manuel n’est pas construit.
« L’assistant n’a pas pu répondre. Réessayez dans un instant. » Le fournisseur de modèle n’a pas répondu ou a échoué.

Dans les deux cas, votre question est remise dans la zone de saisie : il suffit de la renvoyer.

Administration

Cette section s’adresse aux administrateurs de la plateforme.

Index du manuel

L’index du manuel est reconstruit à chaque démarrage de risk-app, puis au début de chaque jour ouvré à partir du manuel publié (manual-refresh-cron, par défaut à minuit heure de Paris, du lundi au vendredi ; les jours fériés ne sont pas distingués). Seuls les passages dont le texte a changé repartent chez le service de représentations vectorielles : tant que le manuel ne change pas, une relecture ne lui envoie rien. Si une relecture échoue (manuel inaccessible, service en erreur), l’assistant continue sur l’index précédent, l’état passe à FAILED, et la relecture suivante réessaie. Sur l’environnement d’intégration, un échec envoie aussi une alerte par e-mail à l’équipe de la plateforme.

Deux appels, réservés au rôle HERMES_ADMIN, permettent de le consulter et de le reconstruire tout de suite :

Appel Effet
GET /api/v1/assistant/manual/index État de l’index (READY, FAILED, DISABLED…) et nombre de passages par langue.
POST /api/v1/assistant/manual/index Reconstruit l’index à partir du manuel publié.

Questions sans réponse

Le menu Administration > Questions sans réponse, réservé au rôle HERMES_ADMIN, liste les questions de l’organisation auxquelles le manuel n’a pas su répondre : ce qu’il faudrait y ajouter. L’appel correspondant est GET /api/v1/assistant/unanswered.

  • Comment une question y arrive. Quand les extraits ne répondent pas, le modèle le signale par un marqueur à la fin de sa réponse. L’application le retire avant l’affichage et le stockage, et marque la question. C’est donc l’avis du modèle : il peut en oublier, ou en signaler à tort.
  • Ce qui est affiché. La question et sa date, sans son auteur.
  • Ce qui est limité. Seules les questions de l’organisation courante, et pendant 90 jours (unanswered-retention) ; elles disparaissent aussi quand leur auteur supprime la conversation. La question reste dans la conversation de son auteur après ces 90 jours.
  • Instructions dans Consul. Le marqueur est demandé par les instructions livrées avec l’application. Des instructions placées dans la clé Consul doivent le demander aussi, sinon aucune question n’est plus signalée.

Configuration

Clé Rôle
application.assistant.enabled Active l’assistant (désactivé par défaut).
application.assistant.manual-url Adresse du manuel publié, d’où l’index est construit (https://alm-manual.mladvisory.eu par défaut).
application.assistant.manual-refresh-cron Quand relire le manuel publié : expression cron Spring, en heure de Paris (0 0 0 * * MON-FRI par défaut, soit minuit du lundi au vendredi) ; - désactive la relecture.
application.assistant.rewrite-follow-ups Fait reformuler les questions de suite avant la recherche (activé par défaut) : un appel de plus au modèle par question de suite. Désactivé, la recherche prend la question précédente avec la question de suite.
application.assistant.context-chars Caractères des sections autour de chaque section trouvée que le modèle reçoit avec elle (1 500 par défaut, sections entières uniquement) ; 0 n’en envoie aucune.
application.assistant.unanswered-retention Durée pendant laquelle une question sans réponse reste dans la liste des administrateurs (90d par défaut).
application.assistant.embedding.url, .name, .api-key Service compatible OpenAI qui calcule les représentations vectorielles (recherche par le sens) : adresse, modèle, clé.
application.assistant.chat.provider Fournisseur du modèle de réponse : anthropic (par défaut) ou openai.
application.assistant.chat.name Modèle de réponse ; par défaut claude-opus-5-5 avec le fournisseur anthropic.
application.assistant.chat.api-key Clé d’accès au fournisseur.
application.assistant.chat.effort Effort de réflexion demandé au modèle avant de répondre : low (par défaut), medium ou high ; fournisseur anthropic seulement.
application.assistant.instructions-key La clé Consul (texte brut, config/stress/assistant-instructions par défaut) qui porte les instructions données au modèle (le prompt), communes à tous les clients. Modifiées dans Consul, elles valent dans les 30 secondes (instructions-refresh), sans redémarrage. Clé absente ou vide : les instructions par défaut, livrées avec l’application, s’appliquent. Bonne pratique : ajuster dans Consul pour essayer, puis reporter la version retenue dans les instructions par défaut et vider la clé, car Consul ne garde pas d’historique.
application.assistant.tools.enabled Active les outils sur vos chiffres (désactivés par défaut). Les chiffres qu’ils lisent partent chez le fournisseur du modèle.
application.assistant.tools.max-rounds, .max-calls, .max-result-chars Nombre de fois où le modèle peut revenir aux outils pour une même question (6 par défaut), nombre total d’appels d’outils par réponse (20), et taille maximale d’un résultat d’outil (20 000 caractères).