feat: Léa personnalité humaine + fichiers + fix doublon menu
- Small talk : café, merci, ça va, qui es-tu → réponses chaleureuses - Bouton 📎 dans le chat pour envoyer des fichiers - Polices 13-15pt, fenêtre 600x800 - Fix doublon "Discuter avec Léa" dans le systray - IntentType.SMALL_TALK avec 7 catégories Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -37,6 +37,7 @@ class IntentType(Enum):
|
||||
DENY = "deny" # Refuser une action
|
||||
CLARIFY = "clarify" # Demander une clarification
|
||||
DATA_IMPORT = "data_import" # Importer des données (Excel, CSV)
|
||||
SMALL_TALK = "small_talk" # Conversation informelle (merci, café, ça va...)
|
||||
UNKNOWN = "unknown" # Intention non reconnue
|
||||
|
||||
|
||||
@@ -129,6 +130,24 @@ class IntentParser:
|
||||
r"(?:que\s+sai[st]-(?:tu|vous)\s+faire)",
|
||||
r"mes\s+tâches?",
|
||||
],
|
||||
# SMALL_TALK doit être AVANT QUERY pour que "qui es-tu" ne soit pas
|
||||
# capturé par le pattern générique "qui + ..." de QUERY
|
||||
IntentType.SMALL_TALK: [
|
||||
# Remerciements
|
||||
r"^(?:merci|thanks?|thx|super|génial|parfait|cool|nickel|impec|impeccable|excellent|formidable)(?:\s.*)?$",
|
||||
# Adieux
|
||||
r"^(?:au revoir|à plus|bye|bonne nuit|à bientôt|à demain|ciao|tchao|tchuss|adieu)(?:\s.*)?$",
|
||||
# Compliments
|
||||
r"^(?:bien joué|bravo|top|chapeau|impressionnant|pas mal|bien fait|beau travail|good job|nice|trop bien|magnifique)(?:\s.*)?$",
|
||||
# Mécontentement
|
||||
r"^(?:c'est nul|nul|pas bien|pas top|pas ouf|bof|mauvais|moche|horrible|catastrophe|c'est pas bon|ça craint|erreur|bug|naze|pourri)(?:\s.*)?$",
|
||||
# Humour / café
|
||||
r"(?:un café|café|coffee|fais-moi rire|blague|raconte.+blague|drôle|rigol[eo]|mdr|lol|haha|ptdr|xd|😂|🤣)",
|
||||
# Identité — qui es-tu ?
|
||||
r"(?:qui es[- ]tu|t'es qui|comment tu t'appelles|c'est quoi ton (?:nom|prénom)|t'es quoi|vous êtes qui|tu es quoi|tu t'appelles comment)",
|
||||
# Sentiments — ça va ?
|
||||
r"(?:ça va|comment (?:ça |tu |vous )?va[st]?|comment allez[- ]vous|tu vas bien|la forme|en forme)",
|
||||
],
|
||||
IntentType.QUERY: [
|
||||
# Questions directes avec mots interrogatifs
|
||||
r"(?:comment|pourquoi|quand|où|qui)\s+(.+)\??",
|
||||
@@ -446,8 +465,8 @@ class IntentParser:
|
||||
# Convertir en minuscules
|
||||
normalized = query.lower()
|
||||
|
||||
# Supprimer la ponctuation excessive
|
||||
normalized = re.sub(r'[!.]+$', '', normalized)
|
||||
# Supprimer la ponctuation finale
|
||||
normalized = re.sub(r'[!.?]+$', '', normalized)
|
||||
|
||||
# Normaliser les espaces
|
||||
normalized = re.sub(r'\s+', ' ', normalized).strip()
|
||||
@@ -598,6 +617,7 @@ INTENTIONS POSSIBLES:
|
||||
- greeting: l'utilisateur dit bonjour/salut/hello
|
||||
- confirm: l'utilisateur confirme (oui, ok, go)
|
||||
- deny: l'utilisateur refuse (non, annule)
|
||||
- small_talk: conversation informelle (merci, café, ça va, qui es-tu, bravo, c'est nul)
|
||||
- unknown: impossible à déterminer
|
||||
|
||||
Réponds UNIQUEMENT en JSON valide (pas de texte avant/après):
|
||||
@@ -733,6 +753,15 @@ if __name__ == "__main__":
|
||||
"oui",
|
||||
"annule",
|
||||
"statut",
|
||||
# SMALL_TALK — conversation informelle
|
||||
"merci",
|
||||
"un café",
|
||||
"ça va ?",
|
||||
"qui es-tu ?",
|
||||
"c'est nul",
|
||||
"bravo",
|
||||
"au revoir",
|
||||
"t'es qui",
|
||||
# Fallback — ne doit PAS être EXECUTE
|
||||
"blah blah test",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user