DEV Community

Cover image for ⚔️ Embeddings, Chatbots RAG Arena et forfaits Telecom OPT-NC
adriens
adriens

Posted on

⚔️ Embeddings, Chatbots RAG Arena et forfaits Telecom OPT-NC

🎯 LA question centrale

Le but de ce post est de se concentrer sur les challenges clients suivants :

  • "Choisissez le ${produit} qui vous ressemble"
  • "Quelle ${produit} choisir ?"
  • "Comparez et trouvez le ${produit} adapté à vos besoins."

${produit} peut très facilement être remplacé par:

  • Forfait
  • Offre mobile
  • Tout autre produit ou service

Ce sujet avait déja été abordé, ainsi que son potentiel de chatBOT:

✂️ Les forfaits telecom OPT-NC par API ? Pour quoi faire? - YouTube

60 seconds · Clipped by DevOPS LABS · Original video "L'API marketplace en entreprise : définition et cas concrets" by DevOPS LABS

favicon youtube.com

👉 Aujourd'hui, nous allons construire un prototype et jouer avec 🙌

🍿 Pour les impatients

💡 Un deuxième chatBOT ?

Par le passé, j'avais créé un chatBOT connecté à notre API de suivi des colis pour suivre le processus de livraison des colis, via une interface conversationnelle et pour qui j'avais créé un custom tool:

Cette fois-ci on va venir **enrichir la collection avec un chatBOT dans un autre domaine fonctionnel - le Telecom - et avec une autre technologie cette fois.

Ne disposant pas d'API publique, mais uniquement d'un site web - ce qui est très courant -, on va voir comment construire un prototype fonctionnel.

Ensuite, on regardera comment évaluer les performances des chatBOTs...

💭 Pitch

Voici la question centrale qui a suscité la création de ce contenu:

"Quelle serait l'utilité de disposer d'un chatBOT expert dans la connaissance des forfaits telecom d'une entreprise Telecom, et qui saurait efficacement conseiller les prospects sur les forfaits les plus adaptés à leurs usages ?
Et comment en mesurer les performances ?"

Image description

🤔 Le chatBOT : un gadget ?

Nous allons donc adresser très concrètement les points ci-dessous via une expérimentation de bout en bout, dans le but d'illustrer les gains et objectifs stratégiques suivants:

  1. ⚡ Améliorer l'expérience client grâce à des réponses rapides et précises.
  2. ⏳ Améliorer le service client via la gestion de demandes simultanées
  3. 🤗 Personnaliser des offres via la collecte des données sur les préférences des clients
  4. 🗓️ Disponible 24/7 pour une assistance en dehors des heures de bureau
  5. 🤗 Améliorer globalement l'Expérience client : efficacité, personnalisation etdisponibilité accrues
  6. 📊 Evaluer les performances

"Gartner Predicts Chatbots Will Become a Primary Customer Service Channel Within Five Years"

Image description

📜 Déroulé

On va dérouler les étapes suivantes:

  1. Construire un chatBOT très basique en mesure de connaître les forfaits de l'OPT-NC
  2. Déterminer un échantillon de questions étalon (issues de la vraie vie) que des prospects pourraient poser lors de l'achat de nouveau forfait
  3. Evaluer notre chatBOT vs. Cagou en mode "⚔️ Chatbot Arena"
  4. Conclure le classement en mode "Chatbot Arena Leaderboard"

🧰 A propos

Pour créer notre prototype, nous allons nous appuyer sur la stack suivante:

... et pousser le tout sur un Notebook dédié:

Image description

🏅 Classement final

Pour commencer par la fin, ci-dessous, le 🏅 Chatbot Arena Leaderboard résultant:

Rank BOT Score/40 Description 🤖 Eval 🧑 Eval
1 Prototype 36 OpenAI Embedding/ WebPageReader 17 19
2 Cagou 10 CAGOU L'ASSISTANT OPT-NC 5 5

ℹ️ Chaque concurrent doit répondre aux challenges suivants (dont la qualité de la réponse sera alors évaluée):

  • 💰 Le forfait "le moins cher"
  • 📶 Besoin d'un "forfait data"
  • 🔒 Forfaits "bloqués"
  • 🎒 "Je suis lycéen et..."

Pour memo : les notes de 1/5 données par les humains ont été accompagnées des commentaires spontanés suivants:

  • "Je ne vois pas le rapport en fait"
  • "Je ne vois pas le rapport avec le contexte"

🔭 Remarques et opportunités

Au cours des expérimentations sont remontées les idées suivantes qui pourraient permettre d'atteindre des niveaux de qualité de réponses bien supérieurs.

En voici quelques unes:

  • Récupération et constitution d'un dataset issu de vraies demandes clients avec les réponses optimales
  • Enrichissement du dataset précédent avec des données synthétiques
  • Automatisaiton du benhcmark Arena
  • Diminution des coûts via l'utilisation de modèles Open Source
  • Tuning de réponses via l'implémentation de Few-shot prompt templates
  • Préparation de datasets structurés pour diminuer les coûts de RUN du bot
  • Création d'un unique textbook markdown de très haute qualité dédié aux forfaits afin de l'utiliser comme source de données pour des BOTs.

🔬 Détails

A ce stade l'article est terminé, mais tous les détails ont été consignés, la suite leur est dédiée.

💰 Le forfait "le moins cher"

La question:

"Je ne téléphone presque pas : quel forfait mobile le moins cher me permet de recevoir des appels ? Donne moi le nom des forfaits répondant à mon besoin. Explique pas à pas."

Réponses de BOTs:

WebPageLoader & OpenAI Cagou OPT
Le forfait mobile le moins cher qui vous permet de recevoir des appels est le "Forfait Bloqué 1000" à 1 060 F TTC par mois. Ce forfait vous offre la possibilité de recevoir des appels à un prix avantageux. Pour répondre à votre besoin de ne pas téléphoner souvent, ce forfait est le plus adapté parmi les options disponibles. Sur quel appareil souhaitez-vous suivre votre conso ?

Image description

Image description

📶 Besoin d'un "forfait data"

La question:

"J'ai besoin d'un forfait data : quelles sont les options disponibles ? Explique pas à pas."

Réponses de BOTs:

WebPageLoader & OpenAI Cagou OPT
Pour obtenir un forfait data, vous avez plusieurs options en fonction de votre situation. Si vous êtes déjà client Mobilis, vous pouvez faire votre demande en ligne, envoyer un mail à l'adresse fournie avec les informations nécessaires, vous rendre dans une boutique partenaire Mobilis ou prendre rendez-vous avec un conseiller télécoms en ligne ou en appelant le 1000. Si vous n'êtes pas encore client Mobilis, vous pouvez prendre rendez-vous avec un conseiller télécoms en ligne ou en appelant le 1000, ou vous rendre dans une boutique partenaire Mobilis. Assurez-vous d'avoir une pièce d'identité, un justificatif de domicile de moins de 3 mois et un RIB si vous optez pour le prélèvement automatique. Pour quel appareil souhaitez-vous consulter nos offres ?

Image description

🔒 Forfaits "bloqués"

La question:

"Je n'ai pas les moyens de payer un forfait mobile chaque mois : donne moi le nom des forfaits répondant à mon besoin ? Explique."

Réponses de BOTs:

WebPageLoader & OpenAI Cagou OPT
Les forfaits qui pourraient répondre à votre besoin sont les forfaits bloqués. Ces forfaits nécessitent un paiement mensuel fixe et offrent des limites claires en termes de coûts. Vous pouvez choisir parmi les forfaits bloqués 1000, 2000, 3000, et 5000 F qui offrent des services à des prix différents tout en vous permettant de contrôler vos dépenses mensuelles de manière plus précise. Sur quel appareil souhaitez-vous suivre votre conso ?

Image description

📝 La "table des forfaits"

"Liste moi tous les forfaits dans un seul et même tableau."

Réponses de BOTs:

Image description

Image description

🎒 "Je suis lycéen et..."

Question:

"Je viens d'avoir 18 ans, je suis au lycée et j'ai juste besoin d'un forfait mobile pour que mes parents puissent m'appeler et aussi aller un peu sur Instagram : quel forfait me sont adaptés ? Explique."

WebPageLoader & OpenAI Cagou OPT
Le forfait qui vous conviendrait le mieux serait le Forfait Bloqué 1000. Il offre un bon équilibre entre les besoins de communication avec 1 060 F TTC par mois. Ce forfait vous permettra de recevoir des appels de vos parents et d'utiliser un peu d'Internet pour aller sur Instagram. Sur quel appareil souhaitez-vous suivre votre conso ?

Image description

Image description

Les "⚔️ Chatbot Arena"

Les ⚔️ Chatbot Arena (ex celle de https://chat.lmsys.org/) permettent de comparer des BOTs ou des LLMs sur divers challenges.

On pose une même question et en parallèle à deux chatbOTs et on évalue leur réponses respectives.

Deux protocoles sont usités :

  • 100% automatisé : c'est une IA qui évalue la pertinence des réponse des autres chatBOTs
  • Human in the loop : c'est un être humain qui évalue

... et nous allons faire les deux 🤩

📜 Méthode

Que l'on parle à un humain ou à une machine, le protocole (ie. scénario) sera le même afin de disposer de conditions expérimentales identiques pour les évaluateurs (humain ou machine):

  1. *Préparer un PROMPT SYSTEM *: "Je vais te donner une question et tu devras évaluer la qualité de la réponse sur une note allant de 1 à 5, 5 étant la meilleure note."
  2. Enoncer le challenge client
  3. Donner la réponse de notre chatBot à base d'embeddings OpenAI (sans dire que c'est lui) et demander le score
  4. *Donner la réponse de CagouBOT *(sans dire que c'est lui) et demander le score

⚖️ Evaluation par l' IA

Nous allons utiliser un modèle Open Source et accessible gratuitement sur HuggingChat : Nous Hermes 2 Mixtral 8x7B DPO, particulièrement bon pour suivre des directives.

Question OpenAI score Cagou score
💰 Le forfait "le moins cher" 4/5 2/5
📶 Besoin d'un "forfait data" 4/5 1/5
🔒 Forfaits "bloqués" 5/5 1/5
🎒 "Je suis lycéen et..." 4/5 1/5

Image description

⚖️ Evaluation humaine

Pour cette phase de test, j'ai interviewé deux collaborateurs, strictement déroulé le même protocole que pour l'IA et aie noté les notes, les réponses fournies pour évaluation sont fournies en aveugle : la personne humaine ne sait pas qui est l'auteur de la réponse qu'il va évaluer.

ℹ️ La synthèse des deux scores est effectué en donnant la note maximale.

Question OpenAI score Cagou score
💰 Le forfait "le moins cher" 5/5 2/5
📶 Besoin d'un "forfait data" 5/5 1/5
🔒 Forfaits "bloqués" 5/5 1/5
🎒 "Je suis lycéen et..." 4/5 1/5

Image description

🔎 Détail des évaluations

💰 Le forfait "le moins cher"

Image description

📶 Besoin d'un "forfait data"

Image description

🔒 Forfaits "bloqués"

Image description

🎒 "Je suis lycéen et..."

Image description

📖 Résumé des Q&As

Image description

Top comments (4)

Collapse
 
adriens profile image
adriens

Collapse
 
adriens profile image
adriens

Visualiser les embeddings en réduisant les dimensions:

Collapse
 
adriens profile image
adriens

Collapse
 
adriens profile image
adriens

Remembering the teaser...