Improve router
This commit is contained in:
42
app.py
42
app.py
@@ -52,35 +52,10 @@ histories = {}
|
||||
session_contexts = {}
|
||||
|
||||
SYSTEM_PROMPT = """Tu es l'assistant personnel vocal de Laurent.
|
||||
Tu peux discuter normalement en francais et aider a envoyer des emails via Gmail.
|
||||
|
||||
Quand l'utilisateur veut envoyer un email, collecte les informations manquantes :
|
||||
destinataire, sujet, contenu.
|
||||
|
||||
Quand tu as toutes les informations pour envoyer un email, reponds uniquement avec ce JSON :
|
||||
{"action": "envoyer_email", "destinataire": "...", "sujet": "...", "corps": "..."}
|
||||
|
||||
Quand l'utilisateur veut ajouter, memoriser ou modifier un contact email, collecte le nom et l'adresse email.
|
||||
Quand tu as les deux informations, reponds uniquement avec ce JSON :
|
||||
{"action": "ajouter_contact", "nom": "...", "email": "..."}
|
||||
|
||||
Tu disposes aussi d'une memoire professionnelle persistante pour les clients, projets, taches, notes et depots Git.
|
||||
Quand l'utilisateur te demande de noter, memoriser, ajouter ou associer une information professionnelle, reponds uniquement avec un JSON.
|
||||
Actions disponibles :
|
||||
{"action": "ajouter_client", "nom": "...", "notes": "...", "statut": "actif"}
|
||||
{"action": "supprimer_client", "nom": "..."}
|
||||
{"action": "ajouter_projet", "nom": "...", "client": "...", "statut": "...", "resume": "...", "prochaine_action": "..."}
|
||||
{"action": "ajouter_tache", "titre": "...", "client": "...", "projet": "...", "details": "...", "echeance": "..."}
|
||||
{"action": "terminer_tache", "id": 123}
|
||||
{"action": "ajouter_repo", "nom": "...", "projet": "...", "chemin": "...", "url": "...", "branche": "..."}
|
||||
{"action": "ajouter_note", "contenu": "...", "sujet": "...", "client": "...", "projet": "...", "type": "note"}
|
||||
{"action": "interroger_base", "sql": "SELECT ...", "question": "..."}
|
||||
|
||||
Si une phrase contient plusieurs choses a enregistrer, utilise :
|
||||
{"actions": [{...}, {...}]}
|
||||
|
||||
Quand l'utilisateur demande ce que tu sais d'un client, d'un projet, d'une tache ou d'un depot, utilise chercher_memoire.
|
||||
Si l'utilisateur dit "pour CLIENT" en ajoutant une tache, renseigne toujours le champ client avec CLIENT.
|
||||
Tu peux discuter normalement en francais et aider Laurent avec sa memoire professionnelle.
|
||||
Le routage des actions, des lectures SQL et des confirmations est gere avant toi.
|
||||
Si tu recois une question generale, reponds naturellement avec le contexte fourni.
|
||||
Si une information manque pour repondre correctement, demande une precision.
|
||||
|
||||
Pour tout le reste, reponds en francais naturel, avec des phrases courtes.
|
||||
N'utilise pas d'anglais sauf si l'utilisateur le demande explicitement.
|
||||
@@ -143,8 +118,10 @@ Regles :
|
||||
- Pour retirer/enlever/supprimer un client de la liste, utilise supprimer_client.
|
||||
- Pour "quel client a le plus de taches", utilise interroger_base avec COUNT, GROUP BY, ORDER BY.
|
||||
- Pour "quelles sont mes taches", "mes taches a faire", "taches pour mes clients", utilise interroger_base sur tasks avec clients/projects.
|
||||
- Si l'utilisateur dit "lui", "ce client", "ce projet" ou "cette tache", utilise le contexte de conversation en cours.
|
||||
- Si l'utilisateur demande "que dois-je faire pour lui ?", "c'est quoi comme tache ?" ou "quelle est la tache ?", utilise interroger_base avec le dernier client/projet connu.
|
||||
- Le dernier message est prioritaire, mais tu dois interpreter les pronoms et references implicites avec toute la conversation fournie.
|
||||
- Si l'utilisateur dit "lui", "le", "la", "ca", "ça", "ce client", "ce projet" ou "cette tache", retrouve l'objet vise dans l'historique recent avant de choisir l'action.
|
||||
- Si tu ne peux pas identifier clairement l'objet vise, type="clarification".
|
||||
- Les questions de suivi courtes doivent etre resolues avec l'historique recent avant de choisir interroger_base, une action directe ou une clarification.
|
||||
"""
|
||||
|
||||
|
||||
@@ -309,7 +286,7 @@ def demander_au_llm(session_id, texte):
|
||||
|
||||
|
||||
def router_intention(session_id, texte):
|
||||
historique = histories.get(session_id, [])[-12:]
|
||||
historique = histories.get(session_id, [])[-20:]
|
||||
messages = [
|
||||
{"role": "system", "content": ROUTER_PROMPT},
|
||||
{
|
||||
@@ -1106,7 +1083,6 @@ def traiter_message(session_id, texte, avec_audio=False):
|
||||
reponse = decision["reply"]
|
||||
if not reponse:
|
||||
reponse = demander_au_llm(session_id, texte)
|
||||
else:
|
||||
ajouter_echange_historique(session_id, texte, reponse)
|
||||
|
||||
audio_url = None
|
||||
|
||||
Reference in New Issue
Block a user