Brief IA : Agents IA : révolution du SAV avec 6 fichiers Python

Agents IA : révolution du SAV avec 6 fichiers Python

Brief IA
Tom Levy·7 min·1 vues

Un système multi-agents a été développé pour optimiser la gestion des demandes clients en utilisant 6 fichiers Python, permettant d'améliorer la rapidité et la qualité du service client. Cette technologie transforme le service après-vente des entreprises en augmentant la satisfaction client et l'efficacité opérationnelle, surpassant les méthodes traditionnelles.

En bref
1Un système multi-agents IA améliore la gestion des demandes clients complexes en les traitant plus rapidement.
2Chaque agent IA a un rôle spécifique, comme la logistique ou la finance, pour résoudre des problèmes clients.
3La mise en place nécessite Python 3.10, Pip, et une clé API OpenAI pour le fonctionnement optimal.
💡Pourquoi c'est importantCette approche innovante optimise le service client, réduisant les délais et améliorant la satisfaction des utilisateurs.
Le brief IA que lisent les pros

Tu suis la course aux modèles IA ?

Chaque sortie (GPT, Claude, Gemini, Mistral…) décryptée le soir même, en 5 min. Gratuit.

Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.

Choisis ton rythme

Gratuit · Pas de spam · Désabonnement en 1 clic

📄
L'analyse en français

Une nouvelle ère pour le service client : les agents IA collaboratifs

Dans le domaine de la relation client, les entreprises ont souvent recours à des chatbots pour gérer les interactions de base. Cependant, ces outils traditionnels montrent rapidement leurs limites lorsqu'il s'agit de traiter des demandes complexes. C'est ici qu'intervient le système multi-agents, une solution qui permet de créer des "équipes" d'agents spécialisés. Ces agents collaborent pour résoudre de manière autonome des problèmes clients plus sophistiqués, allant au-delà de la simple réponse automatique. Cet article vous guide à travers la création d'un tel système pour le service après-vente (SAV), en utilisant un cas concret : la gestion des remboursements pour des produits défectueux.

Exemple concret : le remboursement d'un produit défectueux

Imaginons qu'un client demande un remboursement après avoir reçu un produit cassé. Dans ce scénario, un agent spécialisé en logistique vérifiera les détails de la livraison, un agent SAV confirmera l'état du produit, et un agent financier initiera le remboursement. Cette répartition des tâches permet de traiter la demande de manière rapide et efficace.

Comprendre le fonctionnement d'un système multi-agents

Pour assurer une interaction fluide et continue, le système multi-agents utilise une mémoire à court et long terme, intégrée via le RAG (Retrieval-Augmented Generation). Les échanges sont structurés en format JSON pour garantir une interopérabilité optimale. Des boucles de rétroaction permettent à un "agent critique" de valider les réponses avant qu'elles ne soient envoyées au client, assurant ainsi la qualité du service.

Répondre aux demandes complexes : une approche pas à pas

Pour illustrer cette technologie, nous allons construire un système multi-agents dédié à la relation client. Ce projet se décompose en plusieurs étapes : la création du dossier racine, la configuration du fichier de sécurité, la mise en place du cerveau du système, du moteur, de l'interface et de la mémoire. Voici à quoi ressemble l'arborescence finale de notre projet :

C:\Users\admin\MonProjetCrew\
├── venv/ # L’environnement Python isolé
├── knowledge/ # Les PDF et guides internes
├── .env # La clé [API](/glossaire/api) secrète
├── customer_service_crew.py # La définition des Agents et des Tâches
├── main.py # Pour tester en mode console
└── app.py # Pour lancer l'interface Web (Streamlit)

Pour suivre ce tutoriel, il est essentiel de disposer de Python 3.10 ou d'une version supérieure, du gestionnaire de paquets Pip, et d'une clé API pour un LLM (ici, OpenAI).

1. Préparation du dossier racine

Sous Windows, commencez par ouvrir le terminal avec PowerShell. Créez votre espace de travail en entrant la commande suivante :

mkdir C:\Users\admin\MonProjetCrew

Ensuite, déplacez-vous dans ce répertoire :

cd C:\Users\admin\MonProjetCrew

Créez un environnement virtuel (venv) avec la commande :

python -m venv venv

Activez cet environnement :

.\venv\Scripts\activate

Enfin, installez les bibliothèques nécessaires :

pip install crewai langchain-openai streamlit

2. Configuration du fichier de sécurité : .env

À la racine de votre dossier, créez un fichier texte nommé .env. Ce fichier ne doit pas avoir d'extension .txt. Pour obtenir votre clé API, rendez-vous sur platform.openai.com, sélectionnez "API", et non "ChatGPT". Notez qu'OpenAI ne propose plus de crédits gratuits automatiques à l'inscription. Vous devrez ajouter un montant minimum pour activer votre clé. Une fois cela fait, copiez votre clé dans le fichier .env :

OPENAI_API_KEY=sk-proj-VOTRE_CLE_ICI

3. Le cerveau du système : customer_service_crew.py

Pour lancer le "cerveau" de votre système, créez un fichier nommé customer_service_crew.py dans VS Code. Ouvrez le dossier MonProjetCrew via File > Open Folder... et créez un nouveau fichier en cliquant sur l'icône "+" à côté du nom de votre dossier. Insérez-y le code suivant et enregistrez-le :

from crewai import Agent, Task, Crew, Process
from dotenv import load_dotenv
load_dotenv() # Charge les variables d'environnement du fichier .env

# 1. Définition des Agents
classifier_agent = Agent(
    role='Classificateur de Demandes Client',
    goal='Analyser les demandes clients entrantes, identifier l\'intention (technique, facturation, information) et le niveau d\'urgence (faible, moyen, élevé).',
    backstory='Expert en analyse sémantique, il est le premier point de contact avec le client. Sa mission est de comprendre rapidement la nature de chaque requête pour la diriger vers le bon spécialiste.',
    allow_delegation=False # Cet agent ne délègue pas, il classifie
)

specialist_agent = Agent( role='Spécialiste Support Technique', goal='Fournir des solutions précises aux problèmes techniques identifiés par le classificateur, en utilisant une base de connaissances interne.', backstory='Ingénieur expérimenté, il maîtrise les produits et services de l'entreprise. Il est capable de diagnostiquer et de proposer des solutions techniques détaillées.', allow_delegation=True # Peut déléguer si besoin de plus d'informations )

response_agent = Agent( role='Rédacteur de Réponses Client', goal='Formuler des réponses claires, concises, professionnelles et empathiques basées sur les informations fournies par les autres agents.', backstory='Maître de la communication écrite, il s'assure que chaque réponse client est parfaitement rédigée, respecte le ton de l'entreprise et apporte une solution satisfaisante.', allow_delegation=False # Cet agent rédige la réponse finale )

2. Définition des Tâches

classify_task = Task( description='Analyser la demande client suivante : "{{ customer_request }}" pour déterminer son intention et son urgence.', expected_output='Un dictionnaire JSON avec les clés "intention" (e.g., "technique", "facturation", "information") et "urgence" (e.g., "faible", "moyen", "élevé").', agent=classifier_agent )

research_task = Task( description='Basé sur l'intention "{{ intention }}" et l'urgence "{{ urgence }}" de la demande client, rechercher la solution la plus pertinente. La demande originale était : "{{ customer_request }}".', expected_output='Un résumé détaillé de la solution trouvée, incluant les étapes à suivre ou les informations pertinentes.', agent=specialist_agent )

write_response_task = Task( description='Rédiger une réponse professionnelle et empathique au client. La demande originale était : "{customer_request}"', expected_output='Le texte complet de l'email de réponse au client.', agent=response_agent, context=[research_task] # <--- C'est cette ligne qui permet au rédacteur de recevoir la "solution" trouvée par l'agent précédent )

3. Assemblage du Crew

customer_service_crew = Crew( agents=[classifier_agent, specialist_agent, response_agent], tasks=[classify_task, research_task, write_response_task], process=Process.sequential, # Les tâches s'exécutent séquentiellement )

4. Lancement du processus

customer_request = "Mon internet ne fonctionne plus depuis ce matin, et j'ai un rendez-vous important en visio dans 1 heure !"

Exécution de la première tâche pour obtenir l'intention et l'urgence

initial_output = customer_service_crew.kickoff(inputs={'customer_request': customer_request}) print("\n### Réponse Finale du Système Multi-Agents :\n") print(initial_output)


Dans ce système, chaque demande client est traitée par une chaîne d'agents, chacun ayant un rôle bien défini. L'agent classificateur trie et évalue l'urgence, tandis que l'agent spécialiste cherche la solution technique. Enfin, l'agent rédacteur transforme ces informations en une réponse client polie et empathique.

### 4. La mémoire : le dossier knowledge

Créez un dossier nommé **knowledge** à la racine de votre projet. Ajoutez-y un fichier PDF, par exemple **conditions_remboursement.pdf**. Dans le fichier **customer_service_crew.py**, configurez l'agent spécialiste pour qu'il utilise un outil de lecture, comme **PDFSearchTool**, qui pointera vers ce dossier.

### 5. Le moteur : main.py

Ce fichier convertit le script Python en une application web interactive capable de lire les documents PDF grâce au **RAG**. La "bibliothèque" (**pdf_source**) doit pointer vers le fichier **conditions_remboursement_exercice.pdf**. **Streamlit**, une bibliothèque Python, est utilisée pour la visualisation des données. Adaptez le nom du PDF selon vos besoins.

```python
import streamlit as st
from dotenv import load_dotenv
from crewai import Agent, Task, Crew
# --- NOUVEAU : Import pour le PDF ---
from crewai.knowledge.source.pdf_knowledge_source import PDFKnowledgeSource

# 1. Configuration de la page
st.set_page_config(page_title="Mon Assistant SAV", layout="centered")
st.title("???? Chat avec l'expert Remboursements")

# --- NOUVEAU : Configuration de la source de connaissances ---
pdf_source = PDFKnowledgeSource(
    item_id="politique_remboursement",
    file_paths=["conditions_remboursement_exercice.pdf"]
)

# 2. Zone de saisie pour l'utilisateur
user_question = st.text_input("Posez votre question sur les remboursements :", placeholder="Ex: Quel est le délai pour un remboursement ?")

# 3. Créer l'agent (Modifié pour utiliser le Knowledge)
chercheur = Agent(
    role="Expert en Service Client",
    goal="Fournir des réponses précises basées exclusivement sur les documents de remboursement fournis",
    backstory="Tu travailles au service après-vente. Ta force est de trouver la règle exacte dans les PDF pour aider les clients.",
    allow_delegation=False,
    knowledge_sources=[pdf_source] # <--- On lie le PDF à l'agent ici
)

# 4. Lancer l'action
if st.button("Envoyer"):
    if user_question:
        with st.spinner("Recherche dans les documents en cours..."):
            description = f"En utilisant les documents à ta disposition, réponds

Suivez Brief IA

L'actu IA du jour, aussi dans votre fil.

Commentaires