ChattyWS

, par Bertrand Degoy

ChattyWS est le démonstrateur d’un service web d’IA générative conçu pour être intégré à une application textuelle. Par exemple, il peut répondre aux questions, apporter automatiquement des corrections aux textes fournis et s’opposer aux contenus inappropriés. Et beaucoup plus encore ...

ChattyWS est un web service au standard WSGI (Web Server Gateway Interface) répondant à chaque question qui lui est posée par HTTP.
Comme ChattyBot, il intègre les données d’une entité selon la méthode RAG (Retrivial Augmented Generation).

Le service est construit en Python avec LLama Index et avec Flask + Gevent pour répondre au standard WSGI (Web Server Gateway Interface). Il est fait appel aux API Gpt de OpenAI pour l’ analyse sémantique et la génération du texte.

Ce service est purement statique (RestFull) : aucun statut (état, paramètre) n’est mémorisé, il n’y a donc pas de session ni de cookie. C’est une différence importante avec ChattyBot qui prend en compte le dialogue antérieur dans le contexte de la question, ce qui implique session et cookie.

ChattyWS est un service multilingue, répondant dans la langue dans laquelle il est interrogé et capable d’effectuer des traductions.

Les Thèmes et les Modes permettent de configurer ChattyWS afin d’effectuer toutes tâches d’IA générative sur les données de différentes entités.

Le démonstrateur est plus particulièrement configuré pour appliquer automatiquement des corrections au texte fourni et s’opposer aux contenus inappropriés.
Ceci en fait un composant idéal pour, par exemple :
 assurer la qualité de rédaction d’un site Web,
 assurer automatiquement la modération d’un forum,
 répondre à une question dans le cas d’une FAQ etc.

Thèmes

ChattyBot et ChattyWS utilisent les mêmes données (le même Vector Store). Ces deux services
sont capables de sécuriser les données de plusieurs entités en les isolant dans des espaces de données spécifiques, matérialisés sur le serveur par un répertoire portant le nom du thème :
/home/iadnc/public_html/data/theme [1].

Les données de l’entité (thème) sont conservées sur le serveur d’i-Tego ou un serveur dédié à l’entité. Elles ne sont pas utilisées par OpenAI pour alimenter le modèle de langage (LLM). Cela est possible grâce à la méthode RAG (Retrieval Augmented Generation ou génération augmentée de récupération), contrairement à des méthodes d’entraînement du LLM comme le "fine tuning".

Différents thèmes pourraient être utilisés par une même entité pour segmenter des groupes de données. Cela peut être fait pour séparer des domaines très différents et éviter des hallucinations. Cela peut également être utilisé pour séparer des données réservées à l’usage interne de l’entreprise de celles destinées au public.

Modes

ChattyWS est hautement configurable afin de répondre aux objectifs particuliers d’une application donnée.

Dans le cadre de ce démonstrateur, ChattyWS a permis de configurer les modes suivants :
- answer : L’assistant doit fournir une réponse à la question posée.
- summarize : L’assistant doit résumer et corriger un texte donné.
- correct : L’assistant doit corriger l’orthographe et la grammaire d’un texte.
- improve : L’assistant doit améliorer un texte en éliminant les répétitions.
- complete : L’assistant doit compléter une question en se basant sur un contexte donné.
- extend : L’assistant doit développer un texte en détaillant chaque phrase.

Tous les modes s’opposent à une question inappropriée (vulgarité, racisme, sexisme, conflictualité etc.) en générant un message d’erreur.

Tester ChattyWS : Réponse au format JSON à un POST

La page Test ChattyWS 1 présente un formulaire qui permet d’adresser une requête HTTP POST au web service.

Tester ChattyWS : modération et traduction

La page Test ChattyWS 2 présente un formulaire qui permet d’effectuer un traitement de modération et de traduction sur les données du thème ’securite’.

La configuration de ChattyWS pour cette application de démonstration est décrite ici : ChattyWS 2 : exemple de configuration et de codage.

Accès réservé : connectez vous pour en savoir plus.

Notes

[1Les thèmes disponibles dans le prototype comprennent notamment : "itego", "ardennes", ... :
itego : (thème par défaut) intègre la totalité des données d’i-Tego diffusées sur le Web (plus de 500 pages A4).
ardennes : intègre une extraction des données de DATAtourisme pour le département des Ardennes (plus de 2500 points d’intérêt), ainsi que quelques documents historiques et culturels pertinents.
.

[2Dans l’état actuel du développement, toutes les erreurs ne sont pas signalées par chat_error. C’est notamment le cas des dysfonctionnements internes signalés par une valeur de retour http_code = 500 ou des erreurs du groupe 4. Un test de la valeur de retour HTTP code = 200 est donc la meilleure façon de s’assurer qu’il n’y a pas d’erreur.

[3Dans l’état actuel du développement, toutes les erreurs ne sont pas signalées par chat_error. C’est notamment le cas des dysfonctionnements internes signalés par une valeur de retour http_code = 500 ou des erreurs du groupe 4. Un test de la valeur de retour HTTP code = 200 est donc la meilleure façon de s’assurer qu’il n’y a pas d’erreur.