Luca
assistant wiki
Une question sur la compta d'indépendant en Suisse ? Demande-moi, je t'oriente vers les bonnes fiches.
Réponses basées sur le wiki. Pour ta situation précise, l'abonnement macompta.ai te donne Luca + l'appui d'un expert.
Procédure — extraction de faits depuis le chat
Procédure — extraction de faits depuis le chat
Chantier beta 2 #6 (cf. mémoire interne project_beta2_plan.md). Implémentation : lib/v2/extract-facts.ts.
Principe
Toute déclaration de l'user dans le chat (ou en révision) devient une règle persistante, automatiquement réutilisée pour les transactions futures.
Exemples :
- User dit : "Je suis graphiste à Lausanne." → fait persistant
{profil.secteur: 'graphiste', profil.canton: 'VD'}. - User dit : "Mon véhicule est mixte." → fait
{profil.vehicule.usage: 'mixte'}. - User valide : "Tous mes Adobe sont pour le pro." → règle
{marchand.adobe.default: 'pro/6570'}.
Pipeline
- Chaque message user passe par
extractFacts(message, context). - LLM (Sonnet, cache_control sur prompt extracteur) renvoie un JSON typé
{ facts: [...], confidence: ... }. - Facts haute confiance (
>= 0.85) → écriture directe dansdata/state-v2.jsonuser. - Facts moyenne confiance (
0.6-0.85) → proposition affichée user pour validation 1-clic. - Facts basse confiance (
< 0.6) → ignorés.
Schéma de fait
type Fact = { scope: 'profil' | 'marchand' | 'compte' | 'preference'; key: string; // ex: "profil.canton", "marchand.adobe.default" value: any; source: 'chat' | 'revision' | 'onboarding'; ts: string; confidence: number; raw_quote?: string; // citation user pour audit
};
Stockage
- Par user :
data/users/{userId}/facts.json - Versionné append-only (rétroaction utile).
- Lu par toutes les routes V2 au démarrage de session.
Coût LLM
- Appel extracteur par message chat user : ~$0.001/échange (cf. mémoire
project_kb_fiduciaire_ch.md). - Coût négligeable vs valeur (chaque fait évite ~5 reposes de question).
Cas spéciaux
- Contradictions : si nouveau fait contredit ancien fait haute confiance (ex: "je suis graphiste" puis "je suis dev") → demander à l'user lequel est correct.
- Faits sensibles :
salaire,revenu,dettes→ flag privacy, stockage chiffré. - Faits cross-user : alimentent le wiki via 02-pattern-wiki-llm (après anonymisation).
Métrique de succès
| Métrique | Cible |
|---|---|
| Faits captés / session | ≥ 10 |
| Re-posage de questions déjà répondues | < 5% |
| Précision faits (audit) | ≥ 95% |