FR 3151108 A1 20250117 FR 2307351 A 20230710 Procédé pour la génération automatique d’une réponse conversationnel en réponse à une requête (4) transmise par un terminal de télécommunication (1), comportant une étape de sélection (11) d’au moins un élément dans une base de connaissances (32) selon un critère de similarité, et une étape de fourniture (12) dudit au moins un élément à un agent conversationnel (33) et de ladite requête (4) pour déterminer une réponse (5) à ladite requête (4). Figure pour l’abrégé : Fig. 1 SERVICE integrant un agent conversationnel et une base de connaissances DOMAINE DE L’INVENTION La présente invention est relative à une plateforme de service pour un réseau de communication tel qu’internet, permettant un dialogue avec un agent conversationnel. Les agents conversationnels (ou « chatbots » selon la terminologie anglo-saxonne) sont aujourd’hui classiquement utilisés pour accéder à du contenu en apportant des réponses qualitatives à des requêtes d’utilisateurs. Plus particulièrement, un agent conversationnel est un système programmé permettant, en utilisant par exemple du texte ou une synthèse vocale, une conversation en ligne avec un utilisateur. Un moteur d’analyse, reposant généralement sur les technologies d’intelligence artificielle, permet à l’agent conversationnel de catégoriser les requêtes qu’il reçoit de l’utilisateur et de répondre en simulant une conversation humaine. De tels agents conversationnels peuvent être utilisés à diverses fins, notamment pour le support de clients parcourant un site web commercial. Quoiqu’en plein développement, les agents conversationnels existants souffrent de différentes insuffisances. Notamment, les agents conversationnels sont entraînés sur des bases de données généralistes et peuvent apporter des réponses qualitatives basées sur ces bases de données. Ce mode de fonctionnement est très intéressant dans de nombreux cas d’application, mais ne permet pas d’apporter des contenus individualisés pour, par exemple, un groupe d’utilisateurs. En particulier, les agents conversationnels actuels ne sont pas prévus pour prendre en compte des données spécifiques dans l’établissement de leurs réponses. Un but général de l’invention est de permettre une expérience utilisateur encore améliorée. L’invention propose pour ce faire un procédé pour la génération automatique d’une réponse conversationnel en réponse à une requête transmise par un terminal de télécommunication, comportant une étape de sélection d’au moins un élément dans une base de connaissances selon un critère de similarité, et une étape de fourniture dudit au moins un élément à un agent conversationnel et de ladite requête pour déterminer une réponse à ladite requête. Selon des modes de réalisation, le procédé selon l’invention peut mettre en œuvre une ou plusieurs des caractéristiques suivantes, individuellement ou en combinaison : Le procédé comporte une étape préalable de constitution de ladite base de connaissances par l’insertion d’éléments déterminés à partir d’un ensemble de documents spécifiques. lesdits éléments comportent des premiers éléments obtenus par découpage de documents parmi ledit ensemble de documents spécifiques, et des seconds éléments obtenus à partir desdits premiers éléments. un élément parmi lesdits éléments est un résumé d’au moins un document spécifique dudit ensemble. un élément parmi lesdits éléments est une collection de questions et réponses correspondant à au moins un document spécifique dudit ensemble. ladite étape de sélection comprend une mesure de similarité entre un vecteur calculé à partir de ladite requête et des vecteurs associés à des éléments de ladite base de connaissances. le procédé comporte une étape d’établissement d’une seconde mesure de similarité entre le contenu de ladite réponse et ledit au moins un élément. ladite base de connaissances est déployé sur un serveur privé. Un autre aspect de l’invention concerne une plateforme comportant au moins un processeur adapté pour mettre en œuvre un procédé tel que précédemment défini. Un autre aspect de l’invention concerne un produit programme d’ordinateur comportant des instructions de code pour la mise en œuvre du procédé tel que précédemment défini lorsque elles sont exécutées sur un ordinateur. En particulier, l’invention permet la prise en compte d’une base de connaissance en amont de l’interrogation de l’agent conversationnel, et, ainsi, de fournir une réponse à une requête qui dépend d’informations spécifiques stockées dans cette base de connaissance. Un avantage particulier de l’invention est de pouvoir être adaptée à tout agent conversationnel, et sans nécessité d’apporter des modifications à celui-ci. BREVE DESCRIPTION DES FIGURES D’autres caractéristiques et avantages de l’invention ressortiront encore de la description qui suit, laquelle est purement illustrative et non limitative, et doit être lue en regard des figures annexées sur lesquelles : la une représentation schématique d’un exemple d’environnement dans lequel l’invention peut être mise en œuvre ; la représente un organigramme illustratif d’un mode de réalisation de l’invention ; la représente une étape préalable de constitution d’une base de connaissances selon un mode de réalisation de l’invention. DESCRIPTION DETAILLEE DE MODES DE REALISATION DE L’INVENTION La illustre une mise en œuvre possible de l’invention. Dans cet exemple de mise en œuvre un terminal de télécommunication 1 peut entrer en communication avec un serveur distant 3 au travers d’un réseau de télécommunication 2. Ce terminal de télécommunication 1 peut être de tout type : ordinateur (fixe ou portable), téléphone mobile de type « smartphone », tablette numérique, etc. D’une façon générale, le terminal de télécommunication est tout dispositif de traitement numérique de l’information adapté pour se connecter à un réseau de télécommunication. Le réseau de télécommunication 2 peut également être de tout type. Il peut notamment s’agir d’un ensemble de réseaux interconnectés, comportant par exemple un réseau d’accès (Ethernet, Wi-Fi, cellulaire…) et le réseau Internet. Il peut aussi s’agir d’un réseau interne à un domicile ou à une entreprise. Le serveur peut être compris comme un serveur logique. Celui-ci peut être mis en œuvre sur un serveur physique ou sur un ensemble de serveurs physiques abstractisés sur une ferme de serveurs ou sur une infrastructure d’informatique en nuage (« cloud computing » en langue anglaise). Ce serveur 3 peut comprendre des moyens de traitement 31 pour permettre la réception de requêtes 4 émises par un terminal de télécommunication 1, et pour l’émission de réponses 5. Ces requêtes et ces réponses peuvent être conformes à différents protocoles de télécommunication, par exemple un protocole de type http (« HyperText Transfer Protocol », en anglais). Le serveur 3 peut notamment être accessible via une interface de type « web ». Ce serveur peut ainsi être accessible sur le web, ou sur un réseau de type « intranet » d’entreprise, par exemple (y compris par le truchement d’un réseau virtuel de type VPN pour « Virtual Private Network », en anglais). Le serveur pouvant être compris dans son acception la plus large, c’est-à-dire une entité logique, il est clair que la base de connaissances 32 et les moyens de traitement 31 peuvent délocalisés sur des entités physiques distinctes. Le serveur peut comporter une base de connaissances 32. Il peut être en communication avec un agent conversationnel 33 avec lequel il peut collaborer. Cet agent conversationnel peut être déployé sur un serveur distinct que le serveur 3 déployant les moyens de traitement 31 et la base de connaissance 32. En particulier les moyens de traitement 31 peuvent interagir avec l’agent conversationnel 33 à travers un réseau de télécommunication (par exemple le réseau de télécommunication 2 permettant également de connecter le serveur au terminal de télécommunication 1). Selon un mode de réalisation alternatif, l’agent conversationnel 33 peut être embarqué sur le même serveur logique 3. Dans cet exemple de mise en œuvre, un terminal de télécommunication 1 transmet une requête 4. Typiquement, cette requête contient une question. La requête peut également contenir des informations contextuelles qui peuvent venir préciser des contraintes ou modalités d’établissement d’une réponse souhaitée. Cette requête peut provenir d’un utilisateur humain du terminal de télécommunication 1. L’utilisateur peut saisir une question afin de l’adresser au serveur 3. Un exemple de question peut être « qu’en est-il des inégalités hommes / femmes dans notre société ? » Un exemple d’informations contextuelles peut être « la réponse doit être rédigée en 3 phrases complètes de moins de 50 mots ». Ce serveur 3 propose un nouveau service, combinant un agent conversationnel avec une base de connaissances, afin d’apporter une réponse spécifique aux requêtes des utilisateurs. Les moyens de traitement, ou orchestrateur, 31 du serveur 3 peuvent mettre en œuvre un procédé 10 tel qu’illustré dans l’exemple de la . Le procédé peut comprendre une étape de sélection 11 d’au moins un élément dans la base de connaissances 32. Dans un cas particulier, un unique élément peut être sélectionné. Le procédé peut ensuite comprendre une étape de fourniture 12 de ce ou ces éléments sélectionnés à l’agent conversationnel 33 pour déterminer la réponse 5 à la requête 4. Cette réponse 5 peut ensuite être traitée par le terminal de télécommunication 1 et, éventuellement, présentée à l’utilisateur à l’origine de la requête 4. L’étape de sélection 11 comprend l’interrogation de la base de connaissances 32. La base de données peut comprendre des éléments (ou « enregistrements » si l’on adopte le vocabulaire issu des bases de données relationnelles) qui peuvent être de différentes natures (textes, images…). Ces éléments peuvent être représentatifs d’une connaissance spécifique que l’on souhaite prendre en compte dans l’établissement des réponses aux requêtes. Les éléments sont sélectionnés sur la base d’un critère de similarité avec un contenu de la requête 4. Ce critère de similarité consiste à mesurer la distance entre un élément de la base de connaissance et un contenu de la requête, puis à sélectionner le ou les éléments minimisant cette distance. Différentes mesures de distance sont possibles (mesures de Dice, de Manhattan, de Bhattacharyya, de Levenstein, en cosinus…). Une étape préalable à la mesure de distance entre éléments peut être la vectorisation de ceux-ci : les éléments contenus dans la base de connaissances 32 ont pu être préalablement vectorisés et on recherche alors à mesure une similarité entre les vecteurs calculés sur les éléments contenus dans la base de connaissance et un vecteur calculé sur la requête 4. Un exemple possible de mise en œuvre est une mesure de similarité en cosinus. Si on considère X et Y les ensembles de sous-éléments (par exemple mots) des éléments à comparer (un élément de la base de connaissances et le contenu de la requête), on peut exprimer cette distance par l’expression Dans une étape 12, cet élément (ou éventuellement, les éléments) est fourni à l’agent conversationnel 33. La question contenue dans la requête 4 est également fournie à l’agent conversationnel 33. Lorsque la requête contient des informations contextuelles, celles-ci peuvent également être fournies à l’agent conversationnel. De façon native, l’agent conversationnel traite les données transmises, c’est-à-dire un élément sélectionné dans la base de connaissance, et la requête 4 (comportant une question et, éventuellement, des informations contextuelles). Il peut alors apporter une réponse et la transmettre au terminal de télécommunication. Cette réponse peut transiter par le serveur 3, celui ayant déclenché l’appel vers l’agent conversationnel. Dans une étape optionnelle 13, la réponse 5 peut être confrontée à l’élément (ou aux éléments) ayant été sélectionné dans l’étape 11. En particulier, on établit une mesure de similarité entre le contenu de ladite réponse 5 et ledit élément sélectionné afin de vérifier la pertinence de cette réponse 5, et, indirectement, du modèle de l’agent conversationnel. On peut en effet supposer que la réponse doit être sémantiquement très liée aux informations qui ont été soumises à l’agent conversationnelle 33, et on peut donc s’attendre à une mesure de similarité très élevée. Si cette mesure de similarité est inférieure à un seuil donné (par exemple 90%), on peut écarter la réponse 5. On peut alors par exemple remplacer cette réponse 5 par une réponse indiquant que le procédé ne peut pas apporter de réponse fiable. L’agent conversationnel 33 peut comprendre un moteur de traitement du langage naturel, NLP (pour « Natural Language Processing » en anglais). Il peut par exemple s’agir d’un moteur de type NLP LUIS.ai ou QnaMaker des Cognitives Services de Microsoft, couplé à un service de compréhension de mots clés réalisé via une approche algorithmique. Il peut également s’agir d’un moteur basé sur un modèle de langage de grande taille (LLM pour « Large Language Model » en anglais). Un tel modèle s'appuie sur de vastes corpus de textes de diverses sources, tels que livres, articles de presse, pages Web, forums, réseaux sociaux, etc. pour prédire, à partir d'un mot donné, les mots et les phrases suivants dans un texte. Ainsi, selon le procédé proposé, aucune modification n’est apportée à l’agent. Celui-ci peut être tout à fait extérieur au procédé mis en œuvre par le serveur 3. Toutefois, la prise en compte des éléments de la base de connaissance 32 l’oblige à prendre en compte des connaissances spécifiques et à apporter une réponse 5 tenant compte de ces connaissances spécifiques. Les connaissances spécifiques peuvent être vues comme des données extérieures à l’agent conversationnel. Il s’agit notamment de données qui n’ont pas donné lieu à apprentissage de l’agent conversationnel. Ainsi, selon un mode de réalisation, la base de connaissances 32 appartient à un domaine informatique distinct de celui de l’agent conversationnel 33. En particulier, la base de connaissances 32 correspond au domaine du gestionnaire du serveur 3. L’agent conversationnel 33 correspond à un domaine n’appartenant pas au gestionnaire du serveur 3. D’une façon générale, afin de pouvoir répondre à une grande variété de requêtes, l’agent conversationnel 33 prend nativement en compte (lors de son apprentissage, par exemple) un grand nombre de données généralistes et publiques. En général, la base de connaissance 32 est spécifique, au sens où elle est constituée de données n’ayant pas été pris en compte pour l’apprentissage de l’agent conversationnel. Ainsi, la base de connaissances forme une source de données distincte de celles prises en compte par l’agent conversationnel 33. Par exemple, la base de connaissances et le serveur 3 peuvent être déployés sur un serveur privé. Les éléments correspondent ainsi au domaine du serveur privé. Par exemple, la base de connaissances peut correspondre à une entreprise, gestionnaire du serveur 3 ; les éléments reflétant alors un ensemble de connaissances spécifiques à cette entreprise. L’agent conversationnel 33 peut appartenir à un réseau public, et prendre en compte des données publiques. Par exemple, il peut être déployé sur un serveur public et être accessible via le réseau Internet. En reprenant l’exemple évoqué précédemment de la requête contenant comme question « qu’en est-il des inégalités hommes / femmes dans notre société ? », le procédé décrit peut d’abord sélectionner des éléments dans la base de connaissances propre à cette société. Ces éléments sont représentatifs, par exemple, de la documentation produite par la société. Le ou les éléments présentant la meilleure similarité avec la question peuvent alors être présentés à l’agent conversationnel. Ces éléments peuvent contenir des données précises et propres à la société (par exemple des données chiffrés, des données relatives à la politique interne, etc.). Ces données sont alors prises en compte par l’agent conversationnel comme données d’entrée et lui serviront pour établir, de façon connue en soi, une réponse. Ainsi, les données spécifiques sont intégrées dans les données d’entrée de l’agent conversationnel afin que celui-ci génère une réponse basée sur ces données spécifiques. Cette connaissance spécifique peut être contenue dans un ensemble de documents. Ces documents peuvent être constitués de tout ou partie de la documentation propre au gestionnaire du serveur 3. Dans une étape préalable, différents types d’éléments peuvent être générés et versés, ou insérés, dans la base de connaissance 32, à partir de ces documents spécifiques. La illustre un mode de réalisation de cette étape préalable de constitution de la base de connaissances 32. La base de connaissances 32 est constituée, ou enrichie, par l’insertion d’éléments déterminés à partir d’un ensemble 100 de documents spécifiques. Ces éléments sont générés par un module de génération 200. Différents types d’éléments peuvent être déterminés par différents sous-modules 200 1 , 200 2 , 200 3 …, 200 n du module de génération 200, n représentant le nombre de sous-modules. Chaque sous-module peut être spécialisé dans la génération d’un type d’éléments. Les différents sous-modules peuvent fonctionner de façon indépendante et parallèle, c’est-à-dire en prenant pour entrée les documents 100 et en générant directement des éléments. Ils peuvent également être interdépendants : par exemple un sous-module donné peut prendre pour entrée les éléments générés par un autre sous-module. Selon un mode de réalisation, on peut distinguer un premier sous-ensemble constitué de sous-modules 200 1 , 200 2 , 200 3 …, 200 i prévus pour découper les documents 100 en blocs, ou « chunks » selon la terminologie en langue anglaise, et un second sous-ensemble constitué de sous-modules 200 i+1 , …, 200 n, prévus pour élaborer des éléments à partir des blocs issus des sous-modules du premier sous-ensemble. Ces blocs représentent des parties textuelles extraites des documents et représentatives de connaissances. Ces blocs peuvent être générés par un découpage phrase par phrase des documents 100. Ils peuvent également être générés par un découpage paragraphe par paragraphe. Dans ce dernier cas, on peut établir une limite à ne pas dépasser par bloc, en nombre de mots. On peut également éviter de couper une phrase en conservant une phrase complète dans un bloc donné, même si sa taille dépasse le nombre de mots fixés. On peut également prévoir de découper les documents 100 en blocs sémantiques. Pour ce faire, on détermine des changements de sujets sémantiques au sein d’un document 100, afin de découper celui-ci en blocs présentant un unique sujet sémantique. Différentes modalités de découpage sont donc possibles, et selon un mode de réalisation, plusieurs sous-modules peuvent être parallèlement mis en œuvre afin de générer différents découpages sur la base d’un même document 100. Un des avantages de découper un document en blocs est de constituer des données moins volumineuses pour le traitement subséquent entrepris par l’agent conversationnel et d’ainsi optimiser les temps de calcul et les ressources computationnelles utilisées. Sur la base de ces blocs, ou indépendamment de ces blocs, d’autres types d’éléments peuvent être déterminés, par le second sous-ensemble de sous-modules, comme par exemple : - des résumés des documents, - des jeux de questions et réponses, - des ensembles de mots-clés, Etc. Ces éléments sont vectorisés par un module de vectorisation 300 avant d’être insérés dans la base de connaissances 32. La vectorisation consiste à transformer un morceau de texte en une représentation numérique. Ces représentations numériques (ou vecteurs, ou encore « embeddings » selon la terminologie en langue anglaise) permettent une meilleure manipulation et, en particulier ici, de faciliter une mesure de similarité. La vectorisation peut être effectuée en utilisant des outils disponibles, tels que par exemple l’outil « text-embedding-ada-002 » disponible sur la plateforme OpenAI (https://openai.com/), ou décrits dans des articles tels que Breitung, Christian and Müller, Sebastian, Global Business Similarity Networks (March 21, 2023) ; https://ssrn.com/abstract=4395079; http://dx.doi.org/10.2139/ssrn.4395079 Une étape de validation humaine peut préalablement être mise en place. La base de connaissances 32 peut ainsi comprendre des éléments de types hétérogènes, afin d’enrichir les possibilités de recherche d’éléments similaires pouvant correspondre à une requête 4. Notamment, la base de connaissances 32 peut comprendre un ou plusieurs blocs correspondant à un document spécifique, un résumé d’un document spécifique, une collection de questions et réponses correspondant à au moins un document spécifique, un ensemble de mots-clés correspondant à au moins un document spécifique, etc. Le mécanisme proposé est ouvert sur les types et le nombre n de types d’éléments pouvant être insérés dans la base de connaissances 32. Un des avantages est d’ailleurs de pouvoir prendre en compte une pluralité d’éléments de nature différente, afin d’améliorer les performances de l’étape de sélection 11. Procédé pour la génération automatique d’une réponse conversationnel en réponse à une requête (4) transmise par un terminal de télécommunication (1), comportant une étape de sélection (11) d’au moins un élément dans une base de connaissances (32) selon un critère de similarité, et une étape de fourniture (12) dudit au moins un élément à un agent conversationnel (33) et de ladite requête (4) pour déterminer une réponse (5) à ladite requête (4). Procédé selon la revendication précédente, comportant une étape préalable de constitution de ladite base de connaissances par l’insertion d’éléments déterminés à partir d’un ensemble de documents spécifiques. Procédé selon la revendication précédente, dans lequel lesdits éléments comportent des premiers éléments obtenus par découpage de documents parmi ledit ensemble de documents spécifiques, et des seconds éléments obtenus à partir desdits premiers éléments. Procédé selon la revendication précédente, dans lequel un élément parmi lesdits éléments est un résumé d’au moins un document spécifique dudit ensemble. Procédé selon l’une des revendications 2 ou 3, dans lequel un élément parmi lesdits éléments est une collection de questions et réponses correspondant à au moins un document spécifique dudit ensemble. Procédé selon l’une des revendications précédentes, dans lequel ladite étape de sélection (11) comprend une mesure de similarité entre un vecteur calculé à partir de ladite requête et des vecteurs associés à des éléments de ladite base de connaissances (32). Procédé selon l’une des revendications précédentes, comportant une étape (13) d’établissement d’une seconde mesure de similarité entre le contenu de ladite réponse (5) et ledit au moins un élément. Procédé selon l’une des revendications précédentes, dans lequel ladite base de connaissances (32) est déployé sur un serveur privé. Plateforme comportant au moins un processeur adapté pour mettre en œuvre un procédé selon l’une des revendications précédentes. Produit programme d’ordinateur comportant des instructions de code pour la mise en œuvre du procédé selon l’une des revendications précédentes lorsqu’elles sont exécutées sur un ordinateur.