Spaces:
Running
Running
Commit History
Today
-
JASMINE chat sees page controls and answers what-if questions
Capture checkbox/toggle/radio/selectbox/slider/number/date/button labels, options, help and current state (never password fields). System prompt now asks the model to reason about controls from guide_page and formulas instead of answering "no information". Optimizer: pass both trend scenarios (historical vs XGBoost) with the resulting required margin, plus a guide for the XGBoost checkbox. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>4edda61 -
JASMINE chat sees all on-screen text on every page
The chat only received chart data, so it could not answer about recommendations, metrics, alerts or tables shown on a page (Optimizer XGBoost trend case). graphiques_contexte now also captures markdown, caption, titles, info/success/warning/error, metric and dataframe/table, patched on DeltaGenerator so col.* and container.* calls are covered too, and the sidebar is ignored. Charts moved to the same class-level patch (the theme's st.plotly_chart override bypassed the old st-level wrapper). The widget passes the result as texte_affiche_a_l_ecran. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>b10db6c
3 days ago
-
feat(jasmine): le chat lit tous les graphiques de la page (Plotly et natifs), par module
Les graphiques affiches sont captes (core/graphiques_contexte.py) et transmis au chat de leur page via graphiques_affiches ; le chat lit ceux du run precedent. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>2ce0542
6 days ago
-
style(ui): emojis remplaces par des balises tactiques sobres
- [OK] [ECHEC] [ATTENTION] [ALERTE] [REFUS] [STOP] [ANALYSE] [IA] [DOSSIER]... a la place des emojis dans tous les libelles, messages et journaux - puces d'etat (couleurs) remplacees par des carres/ronds geometriques - aucun changement de logique : les tests et la detection des messages suivent la nouvelle forme Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>495d60d
11 days ago
-
feat(exercice): separation de toute l'application par annee civile
- core/exercice.py : source unique (lecture des dates FR/ISO, bornes, selecteur EXERCICE de la barre laterale, regle A : chaque flux dans l'annee de sa propre date, echeancier contractuel, synthese par exercice). - Objectifs de benefice par exercice (2026 = 2,2 M, 2027 = 3,5 M XOF, annees futures = dernier objectif connu), editables par annee. - Dashboard, Optimizer, rapports IA, JASMINE, Digital Twin : chiffres de l'exercice choisi + comparaison N-1 ; benefice = interets + penalites encaisses dans l'annee. - IA : consigne d'exercice dans tous les prompts. ML : variable Annee_Deblocage + erreur hors echantillon par exercice. - Correctif : "2026-03-01" n'est plus lu comme le 3 janvier. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>631cd58
-
fix(security): remove client-list exposure, shared onboarding password, and public JASMINE portfolio access
- client_simulator.py: identify client/guarantor by ID + phone (exact match) instead of a substring name search that listed the whole client base - client_simulator.py/streamlit_app.py: replace hardcoded client/ClientPass onboarding credentials with a single-use emailed token, consumed via a new public /?onboard= route - jasmine_widget.py: add an allowed_tools whitelist enforced server-side (not just via the system prompt), and scope the public simulator's JASMINE widget to no portfolio-wide tools7409b3e
-
Ameliore le widget JASMINE et l'explication IA du Digital Twin
jasmine_widget.py : retire l'emoji de l'expander, rend les messages copiables (st.code avec bouton de copie au survol, pour le texte de l'IA et de l'utilisateur), et ajoute un parametre "actions" optionnel : des outils propres a la page appelante qui AGISSENT reellement (relancent un calcul, mettent a jour st.session_state) plutot que de se contenter de repondre. digital_twin.py : branche deux actions (lancer_simulation, lancer_projection_annuelle) sur le widget, enrichit son contexte avec l'horizon simule et l'objectif annuel (l'ambiguite "est-ce mon benefice de fin d'annee ?" venait du fait que ni l'un ni l'autre n'etaient fournis a l'IA), et remplace le prompt "explique comme a un enfant de 5 ans" par un ton professionnel. Ajoute une infobulle sur "Graine aleatoire". Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>d948878
-
Centralise les appels IA et ajoute des outils de calcul agentiques a JASMINE
Remplace 7 points d'appel Gemini/Groq duppliques (jasmine_agent, AI_Reports, digital_twin, jasmine_optimizer, document_validator, kyc_form, client_simulator) par un client LLM unique (src/core/llm_client.py) avec une seule cascade de repli texte-only. Migre du SDK google-generativeai (deprecie par Google) vers le nouveau SDK officiel google-genai. Ajoute 3 outils de calcul partages (src/agent/calc_tools.py) - previsions de tresorerie, simulation de portefeuille, prediction de taux - branches sur l'agent JASMINE global (Ontology) et corrige au passage l'outil highlight_node qui existait sans etre annonce au LLM. Ajoute un widget JASMINE leger (src/modules/jasmine_widget.py), sans moteur RDF/SPARQL, integre sur Repayments, Digital Twin, Optimizer et le simulateur client public - scope aux donnees deja chargees par la page. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>e3e63b6