16 KiB
Optimisation des rôles des agents de support (2025-04-07 15:11:33)
User
Tout dabord le tri d'image fonctionne. Je voudrai modifier le rôle de mon agent_ticket il doit mettre en perspective le nom de la demande ("name") qui est souvent le problème soulevé par le client. Ensuite la "description" du problème si elle est présente qui va ajouter du contexte au problème. Etablir la chronologie de la discussion client/support mettre en avant les questions/réponses qui ressortent des demandes client réponses support bien évidemment il se peut qu'il n'y ait pas de réponse défini. Il afut rester dans une démarche technique, factuelle la réponse va partir en contexte pour analyser en profondeur les images pertinentes. Ensuite le dernier agent agent_report lui va prendre les résultats du agent_ticket_analyser et agent_image_analyser son rôle est d'améliorer cette fonction d'établir clairement les questions/réponses support/client ou vice versa en un tableau markdown dans le rapport. En identifiant brièvement support et client question réponse face à face si elles existe. Il faut épurer les rôles de mes agents pour le moment ils efffectuent des tâches d'analyse et autres dont je n'ai pas besoin pour le moment. JE ne suis peut etre pas très clair
Assistant
Je vais examiner votre agent de génération de rapport et vous proposer des modifications basées sur vos besoins.
Searched codebase "agent_ticket" • **1** results
| File |
|---|
undefined |
Read file: /home/fgras-ca/llm-ticket3/agents/agent_ticket_analyser.py
Read file: /home/fgras-ca/llm-ticket3/agents/agent_ticket_analyser.py
Searched codebase "image_analyser" • **1** results
| File |
|---|
undefined |
Read file: /home/fgras-ca/llm-ticket3/agents/agent_image_analyser.py
Read file: /home/fgras-ca/llm-ticket3/agents/agent_image_analyser.py
Maintenant, je vais modifier les fichiers selon vos besoins. Je vais d'abord modifier le AgentTicketAnalyser pour mettre en perspective le nom de la demande, la description et établir la chronologie des discussions client/support.
self.max_tokens = 1500
self.system_prompt = """Tu es un expert en analyse de tickets pour le support informatique de BRG_Lab.
- Ton rôle est d'extraire et d'analyser les informations importantes des tickets, quelle que soit leur source (JSON ou Markdown).
- Organise ta réponse avec les sections suivantes:
- 1. Résumé du problème
- 2. Informations techniques essentielles (logiciels, versions, etc.)
- 3. Contexte client (urgence, impact)
- 4. Pistes d'analyse suggérées
-
- Sois précis, factuel et synthétique dans ton analyse.
- Vérifie notamment les champs suivants si disponibles :
- - Le logiciel concerné
- - La version du logiciel
- - L'environnement technique
- - La priorité ou urgence du ticket
- - Les étapes de reproduction du problème
+ Ton rôle est d'extraire et d'analyser les informations importantes des tickets.
+
+ Ta mission principale:
+ 1. Mettre en perspective le NOM DE LA DEMANDE qui contient souvent le problème soulevé par le client
+ 2. Analyser la DESCRIPTION du problème qui ajoute du contexte
+ 3. Établir une chronologie claire des échanges client/support en identifiant précisément:
+ - Les questions posées par le client
+ - Les réponses fournies par le support
+ - Les informations techniques fournies par chaque partie
+
+ Sois factuel et reste dans une démarche technique. Ton analyse sera utilisée comme contexte pour l'analyse des images pertinentes.
+
+ Structure ta réponse:
+ 1. Analyse du problème initial (nom de la demande + description)
+ 2. Informations techniques essentielles (logiciels, versions, configurations)
+ 3. Chronologie des échanges client/support avec identification claire des questions/réponses
"""
{ticket_formate}
+
+ Concentre-toi sur:
+ 1. L'analyse du problème initial décrit dans le nom de la demande et la description
+ 2. L'extraction des informations techniques importantes
+ 3. L'établissement d'une chronologie claire des échanges client/support en identifiant précisément les questions posées et les réponses fournies
Ce ticket provient d'un fichier au format {source_format.upper()}.
"""
# Initialiser avec les informations de base
- info = f"## TICKET {ticket_data.get('code', 'Inconnu')}: {ticket_data.get('name', 'Sans titre')}\n\n"
+ ticket_name = ticket_data.get('name', 'Sans titre')
+ ticket_code = ticket_data.get('code', 'Inconnu')
+
+ info = f"## TICKET {ticket_code}: {ticket_name}\n\n"
+ info += f"## NOM DE LA DEMANDE (PROBLÈME INITIAL)\n{ticket_name}\n\n"
# Ajouter la description
description = ticket_data.get('description', '')
if description:
- info += f"## DESCRIPTION\n{description}\n\n"
+ info += f"## DESCRIPTION DU PROBLÈME\n{description}\n\n"
# Ajouter les informations du ticket (exclure certains champs spécifiques)
champs_a_exclure = ['code', 'name', 'description', 'messages', 'metadata']
- info += "## INFORMATIONS DU TICKET\n"
+ info += "## INFORMATIONS TECHNIQUES DU TICKET\n"
for key, value in ticket_data.items():
if key not in champs_a_exclure and value:
info += "\n"
- # Ajouter les messages (conversations)
+ # Ajouter les messages (conversations) avec un formatage amélioré pour distinguer client/support
messages = ticket_data.get('messages', [])
if messages:
- info += "## ÉCHANGES ET MESSAGES\n"
+ info += "## CHRONOLOGIE DES ÉCHANGES CLIENT/SUPPORT\n"
for i, msg in enumerate(messages):
# Vérifier que le message est bien un dictionnaire
date = msg.get('date', 'Date inconnue')
content = msg.get('content', '')
+
+ # Identifier si c'est client ou support
+ sender_type = "CLIENT" if "client" in sender.lower() else "SUPPORT" if "support" in sender.lower() else "AUTRE"
# Formater correctement la date si possible
pass # Garder la date d'origine en cas d'erreur
- info += f"### Message {i+1} - De: {sender} - Date: {date}\n{content}\n\n"
+ info += f"### Message {i+1} - [{sender_type}] De: {sender} - Date: {date}\n{content}\n\n"
# Ajouter les métadonnées techniques si présentes
Maintenant, je vais modifier l'agent_report_generator.py pour qu'il mette en avant la chronologie des échanges client/support dans un tableau Markdown et s'assure de bien identifier les questions/réponses :
self.max_tokens = 2500
self.system_prompt = """Tu es un expert en génération de rapports techniques pour BRG_Lab.
- Ta mission est de synthétiser toutes les analyses (JSON et images) en un rapport structuré et exploitable.
+ Ta mission est de synthétiser les analyses (ticket et images) en un rapport structuré et exploitable.
- Structure ton rapport ainsi:
- 1. Résumé exécutif: Synthèse du problème et des conclusions principales
- 2. Analyse du ticket: Détails extraits du ticket client
- 3. Analyse des images: Résumé des images pertinentes et leur contribution
- 4. Diagnostic technique: Interprétation consolidée des informations
- 5. Recommandations: Actions suggérées pour résoudre le problème
-
- Chaque section doit être factuelle, précise et orientée solution.
- Inclus tous les détails techniques pertinents (versions, configurations, messages d'erreur).
- Assure une traçabilité complète entre les données sources et tes conclusions."""
+ IMPORTANCE DES ÉCHANGES CLIENT/SUPPORT:
+ - Tu dois impérativement présenter les échanges client/support sous forme d'un TABLEAU MARKDOWN clair
+ - Chaque ligne du tableau doit contenir: Date | Émetteur | Type (Question/Réponse) | Contenu
+ - Identifie clairement qui est l'émetteur (CLIENT ou SUPPORT)
+ - Mets en évidence les questions posées et les réponses fournies
+
+ Structure ton rapport:
+ 1. Résumé exécutif: Synthèse du problème initial (nom de la demande + description)
+ 2. Chronologie des échanges: TABLEAU des interactions client/support
+ 3. Analyse des images: Ce que montrent les captures d'écran et leur pertinence
+ 4. Diagnostic technique: Interprétation des informations techniques pertinentes
+
+ Reste factuel et précis. Ne fais pas d'analyses inutiles ou de recommandations non fondées.
+ Ton rapport doit mettre en avant la chronologie des échanges et les informations techniques clés."""
# Appliquer la configuration au LLM
prompt += f"""
Ton rapport doit être structuré avec les sections suivantes:
- 1. Résumé exécutif
- 2. Analyse détaillée du ticket
- 3. Analyse des images pertinentes
- 4. Diagnostic technique
- 5. Recommandations
-
- Fournir le rapport en format Markdown, avec des titres clairs et une structure cohérente.
- Assure-toi d'inclure toutes les informations techniques importantes et les liens entre les différentes analyses.
+ 1. Résumé exécutif: Synthèse concise du problème initial (reprend le nom de la demande + description)
+ 2. Chronologie des échanges: PRÉSENTE IMPÉRATIVEMENT SOUS FORME DE TABLEAU MARKDOWN, avec colonnes: Date | Émetteur (CLIENT/SUPPORT) | Type (Question/Réponse) | Contenu
+ 3. Analyse des images pertinentes: Ce que montrent les captures d'écran
+ 4. Diagnostic technique: Points clés et interprétation technique
+
+ IMPORTANT:
+ - Le tableau de chronologie doit être formaté correctement en Markdown (|---|---|---|---|)
+ - Tu dois clairement identifier qui est CLIENT et qui est SUPPORT
+ - Ne fais pas de recommandations génériques, reste factuel
+ - Utilise le format Markdown pour structurer ton rapport avec des titres clairs
+
+ Fournis un rapport concis, factuel et technique.
"""
Enfin, je vais modifier l'agent_image_analyser.py pour simplifier son rôle et le concentrer sur l'analyse factuelle des images en relation avec le contexte du ticket :
self.max_tokens = 1200
self.system_prompt = """Tu es un expert en analyse d'images pour le support technique de BRG_Lab.
- Ta mission est d'analyser des captures d'écran ou des images techniques en tenant compte du contexte du ticket.
-
- Pour chaque image, structure ton analyse ainsi:
- 1. Description factuelle: Ce que contient l'image (interface, message d'erreur, etc.)
- 2. Éléments techniques importants: Versions, codes d'erreur, paramètres visibles
- 3. Interprétation: Ce que cette image révèle sur le problème client
- 4. Relation avec le ticket: Comment cette image aide à résoudre le problème décrit
-
- IMPORTANT: Ne commence JAMAIS ta réponse par "Je n'ai pas accès à l'image" ou "Je ne peux pas directement visualiser l'image".
- Si tu ne peux pas analyser l'image, réponds simplement "ERREUR: Impossible d'analyser l'image".
-
- Concentre-toi sur les éléments techniques pertinents pour le support logiciel."""
+ Ta mission est d'analyser des captures d'écran en lien avec le contexte du ticket de support.
+
+ Structure ton analyse d'image de façon factuelle:
+ 1. Description objective: Ce que montre l'image (interface, message d'erreur, code, etc.)
+ 2. Éléments techniques clés: Versions, codes d'erreur, paramètres visibles, messages du système
+ 3. Relation avec le problème: Comment cette image se rapporte au problème décrit dans le ticket
+
+ IMPORTANT:
+ - Ne fais PAS d'interprétation complexe ou de diagnostic
+ - Ne propose PAS de solutions ou recommandations
+ - Reste strictement factuel et objectif dans ta description
+ - Concentre-toi uniquement sur ce qui est visible dans l'image
+ - Ne répète pas les informations du ticket sauf si elles sont visibles dans l'image
+
+ Ton analyse sera utilisée comme élément factuel pour un rapport technique plus complet."""
# Appliquer la configuration au LLM
{contexte}
- Fournis une analyse structurée de l'image avec les sections suivantes:
- 1. Description factuelle de ce que montre l'image
- 2. Éléments techniques identifiables (messages d'erreur, versions, configurations visibles)
- 3. Interprétation de ce que cette image révèle sur le problème décrit dans le ticket
- 4. En quoi cette image est pertinente pour la résolution du problème
-
- Sois précis et factuel. Ne fais pas de suppositions non fondées.
+ Fournis une analyse STRICTEMENT FACTUELLE de l'image avec les sections suivantes:
+ 1. Description objective: Ce que montre concrètement l'image
+ 2. Éléments techniques visibles: Messages d'erreur exacts, versions, configurations, paramètres
+ 3. Relation avec le problème: Comment cette image se rapporte au problème décrit
+
+ IMPORTANT:
+ - NE fais PAS d'interprétation ou de diagnostic
+ - NE propose PAS de solutions
+ - Reste strictement factuel dans ta description
+ - Décris UNIQUEMENT ce qui est visible dans l'image
+ - Cite les textes exacts visibles dans l'image (messages d'erreur, etc.)
"""
{contexte}
- Fournis une analyse structurée de l'image avec les sections suivantes:
- 1. Description factuelle de ce que montre l'image
- 2. Éléments techniques identifiables (messages d'erreur, versions, configurations visibles)
- 3. Interprétation de ce que cette image révèle sur le problème décrit dans le ticket
- 4. En quoi cette image est pertinente pour la résolution du problème
-
- Sois précis et factuel. Ne fais pas de suppositions non fondées.
+ Fournis une analyse STRICTEMENT FACTUELLE de l'image avec les sections suivantes:
+ 1. Description objective: Ce que montre concrètement l'image
+ 2. Éléments techniques visibles: Messages d'erreur exacts, versions, configurations, paramètres
+ 3. Relation avec le problème: Comment cette image se rapporte au problème décrit
+
+ IMPORTANT:
+ - NE fais PAS d'interprétation ou de diagnostic
+ - NE propose PAS de solutions
+ - Reste strictement factuel dans ta description
+ - Décris UNIQUEMENT ce qui est visible dans l'image
+ - Cite les textes exacts visibles dans l'image (messages d'erreur, etc.)
"""
Voici un résumé des modifications apportées à vos agents :
-
Agent Ticket Analyser :
- Modification du prompt système pour mettre en perspective le nom de la demande et la description
- Restructuration du formatage des tickets pour identifier clairement la chronologie client/support
- Ajout d'étiquettes CLIENT/SUPPORT pour faciliter l'identification des intervenants
- Focus sur l'établissement de questions/réponses précises
-
Agent Image Analyser :
- Simplification du rôle pour se concentrer uniquement sur l'analyse factuelle des images
- Suppression des interprétations et recommandations
- Focus sur la description objective des éléments visibles dans l'image
- Meilleure mise en relation avec le contexte du ticket
-
Agent Report Generator :
- Ajout d'une présentation des échanges client/support sous forme de tableau Markdown
- Restructuration du rapport pour mettre en avant la chronologie des échanges
- Suppression des recommandations génériques non fondées
- Focus sur la factualité et la précision technique
Ces modifications permettent de :
- Mieux identifier qui est client et qui est support
- Présenter clairement les questions/réponses dans un tableau
- Rester factuel dans l'analyse des images
- Se concentrer sur les données objectives plutôt que sur des interprétations
Souhaitez-vous d'autres modifications ou clarifications sur les rôles des agents ?
User
comme tu peux le voir dans le rapport final toutes les demandes ne sont pas réalisés es ce que les résultats des différents agents sont bien transmis au dernier agent. De plus je souhaiterai améliorer mes rapports en ajoutant les différentes étapes à l'intérieur de mon markdown c'est à dire le tri , l'analyse du ticket, l'analyser ticket+image pertinente et enfin agent report comme actuelelment avec les réglages tels quels à la fin du fichier.
Assistant
Je vois le problème. Je vais améliorer votre générateur de rapport pour qu'il intègre toutes les étapes d'analyse dans le fichier markdown et s'assure que les résultats de tous les agents soient bien transmis au dernier agent.
Cancelled