Conversational agent system

The modular conversational agent system addresses resource and scalability issues by distributing tasks among specialized modules, enhancing efficiency and response quality.

FR3165977A1Pending Publication Date: 2026-03-06ODONATECH
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-30
Publication Date
2026-03-06

AI Technical Summary

Technical Problem

Conversational agent systems based on large language models face challenges such as high resource consumption, inaccurate responses, and limited scalability, often reinforcing stereotypes or propagating erroneous information, and require significant computational resources.

Method used

A modular conversational agent system with distinct modules for finite state machine management, information extraction, conversational content generation, and control, allowing for task distribution and adaptation to specific constraints without modifying the entire system.

Benefits of technology

This architecture minimizes resource consumption, reduces response time, and maintains high-quality responses while enabling flexibility and adaptability to specific domains.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

One aspect of the invention relates to a conversational agent system (100) whose architecture distributes tasks among different modules. Thus, each module has one or more tasks to perform. The control module (140) is notably responsible for organizing the operation of the system (100); it therefore controls the other modules, which can thus be considered as support modules for the control module. The other modules, called support modules, are therefore specialized in a task such as generating conversational content, extracting information, or managing a finite state machine. Figure to be published with the abbreviation: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Conversational agent system TECHNICAL FIELD OF THE INVENTION

[0001] The technical field of the invention is that of conversational agents.

[0002] The present invention relates to a conversational agent system and a method of operating this conversational agent system. TECHNOLOGICAL BACKGROUND OF THE INVENTION

[0003] A conversational agent, also called a dialoguer or "chatbot," is a software agent that interacts with a user. The user is prompted to formulate their request in natural language, which is then refined during a dialogue between the user and the conversational agent. The software agent then interprets, from the messages sent by the user, an operational request understandable by its information system. A conversational agent system, in the present application, is a system adapted to implement a conversational agent. In other words, a conversational agent system is a system comprising the implementation means necessary for the operation of a conversational agent. The dialogue between the user and the conversational agent can be conducted via written messages, as well as via voice or video messages.Thus, the chatbot simulates written, voice, or video human communications to replace a conversation with a real human being.

[0004] Conversational agent systems have enjoyed significant success, particularly since the advent of large language models (LLMs). These LLMs are deep neural networks trained on large amounts of unlabeled text using self-supervised or semi-supervised learning. In this application, for simplicity only, the term "large language model" is also used to refer to a multi-agent system, i.e., a set of large language models working together, such as MetaGPT. It is generally accepted that the quality of the output of LLMs varies depending on the amount of resources provided, such as the size of the parameters, computing power, and the amount of training data.Conversational agent systems are now used in many fields, for example: . • in industry, for example to guide or advise a user during a complex task such as engine maintenance or repair, • in transportation, for example to guide or advise a user during journeys, • in logistics, to help managers navigate a large, constantly changing inventory, • in marketing, to research competitors, or to identify content similar to that produced by the company, • in highly technical fields (chemistry, nuclear, etc.), to obtain very precise technical information, which is otherwise difficult to find on the internet, • in media and publishing, to translate documents, write initial drafts of articles, and sometimes even respond to reader comments more quickly, • in finance, for example to guide or advise a user wishing to invest their savings.

[0005] However, current conversational agent systems based on massive language models have many limitations. First, training and using the massive language models used by these conversational agent systems requires large amounts of resources. For example, in order to limit the response time of massive language models, it is common to increase the computing power of the system implementing the model. In addition, conversational agent systems can provide responses that are more or less appropriate and accurate. For example, it is known that the responses provided by these conversational agent systems can suffer from linguistic biases, reinforce stereotypes, or even propagate erroneous information. Finally, as Siyu Yuan et al. mention,In "EvoAgent: Towards Automatic Multi-Agent Generation via Evolutionary Algorithms" (July 11, 2024), the functional scope and scalability of agent systems remain largely dependent on frameworks designed by the developers. Thus, as Siyu Yuan et al. remind us, providing a conversational agent system capable of solving diverse tasks remains, at present, a significant challenge.

[0006] There is therefore a need to provide a conversational agent system that limits, at least in part, the problems associated with the use of the aforementioned prior art conversational agent systems. Summary of the invention

[0007] The invention offers a solution to the problems mentioned above by providing a conversational agent system whose architecture distributes tasks among different modules. Thus, each module has one or more tasks to perform. The control module's task, in particular, is to organize the system's operation; it therefore controls the other modules, which can thus be considered as support modules for the control module. The other modules, referred to as support modules, are therefore specialized in a task such as generating conversational content, extracting information or managing a finite state machine.

[0008] One aspect of the invention relates to a conversational agent system configured to converse with a user, comprising: • A finite state machine management module configured to identify a current state of the finite state machine from an initial request, the current state corresponding to the state of the machine after receiving the last message sent by the user during the dialogue between the chatbot system and the user, and the initial request comprising: • the finite state machine describing a dialogue logic, • a previous state of the finite state machine, the previous state corresponding to the current state of the machine before receiving the last message sent by the user during the dialogue, • the number of exchanges performed since a transition to the previous state, and • a dialogue history including the entire dialogue, including the last message sent by the user, • An information extraction module configured to extract information from messages sent by the user during the dialogue from a second request, the second request including the history of the dialogue. • A conversational content generation module configured to generate a proposed response to the last message sent by the user based on a third request, the third request including: • The information extracted by the information extraction module, • Information specific to the current state identified by the management module of a finite state machine, • A control module configured for: • Receive messages sent by the user during the dialogue, • Generate the first, second, and third queries, • Obtain the current state of the finite state machine by sending the first request to the finite state machine management module, • Retrieve the extracted information by sending the second request to the information extraction module, • Obtain the proposed response to the last message by sending the third request to the conversational content generation module, and • Reply to the last message sent by the user with a response based on the proposed response generated by the conversational content generation module.

[0009] Thanks to the invention, the conversational agent system limits its resource consumption, particularly in terms of the computing power required for its operation. Furthermore, response time is minimized while maintaining a high quality of response. Finally, this architecture allows the characteristics of each module to be adapted to specific constraints without having to modify the entire conversational agent system.

[0010] In addition to the characteristics mentioned in the preceding paragraph, the system according to one aspect of the invention may have one or more additional characteristics from among the following, considered individually or in all technically possible combinations: • a conversational content correction module configured to determine whether it is necessary to modify or delete the response proposal generated by the conversational content generation module from a fourth request, modification or deletion of the response proposal generated by the conversational content generation module being necessary when the generated response proposal does not comply with a rule from a set of predefined rules, the fourth request including: • the proposed response generated by the conversational content generation module, • the set of predefined rules, in which the control module is further configured to: • Generate the fourth query, • Obtain the command to modify or delete the response proposal generated by the conversational content generation module, and • When the order has been obtained: • Generate a fifth query including: • The information extracted by the information extraction module, • Information specific to the current state identified by the management module of a finite state machine, and • Information regarding a rule that was not followed • additional modules for generating conversational content, each of the additional modules for generating conversational content being configured to generate an additional response suggestion to the last message starting with the third request, and in which the control module is further configured to: • Obtain additional response suggestions to the last message by sending the third request to the additional conversational content generation modules, and • Reply to the user's last message with a response based on: • the proposed response generated by the conversational content generation module, and • Additional response suggestions generated by additional conversational content generation modules. • Additional modules for generating conversational content have a specific performance level, with performance linked to specialization in a specific domain and / or specific resource consumption. • The control module is further configured to select at least one additional conversational content generation module to which to send the third request in order to obtain at least one additional response proposal, the selection being based on the specific performance level of at least one additional conversational content generation module, • The second request also includes a JSON file, and • The information extraction module is further configured to add the extracted information to a JSON file, • The first query also includes the information extracted by the information extraction module, and • The finite state machine management module is further configured to identify the current state of the finite state machine, taking into account the extracted information contained in the first query. • The extracted information contained in the first query is used by the management module of a finite state machine as a condition to transition from the previous state to the current state.

[0011] Another aspect of the invention relates to a method for operating a chatbot system according to the invention, the method comprising, for each iteration of a set of iterations, the steps of: • Receipt, by the control module, of the last message sent by the user during the dialogue between the chatbot system and the user, • Generation, by the control module, of the first query, • The control module sends the first request to the finite state machine management module. • Identification, by the finite state machine management module, of the current state of the finite state machine, • The current state of the finite state machine is sent from the finite state machine management module to the control module. • Generation, by the control module, of the second request to the information extraction module, • Extraction of information, by the information extraction module, from messages sent by the user during the dialogue, • The extracted information is sent by the data extraction module to the control module. • Generation, by the control module, of a third request, • The third request is sent by the control module to the conversational content generation module. • Generation, by the conversational content generation module, of the suggested response to the last message sent by the user, • Sending, via the conversational content generation module, the proposed response to the control module, and • Generation, by the control module, of the response to the last message sent by the user, the response being based on the proposed response generated by the conversational content generation module, and • Sending, via the control module, the response to the last message sent by the user.

[0012] In addition to the characteristics mentioned in the preceding paragraph, the method according to one aspect of the invention may have one or more additional characteristics from among the following, considered individually or in all technically possible combinations: • Initial steps: • The reception, by the conversational content correction module, of the last message sent by the user during the dialogue between the chatbot system and the user is secure. • When the last message does not comply with the rule of the predefined rule set, modification or deletion of the last message by the conversational content correction module.

[0013] An additional aspect of the invention relates to a computer program product comprising instructions which, when the program is executed by the system according to the invention, cause the system to implement a process according to the invention.

[0014] A final aspect of the invention relates to a non-transient, computer-readable data carrier on which a computer program according to the invention is recorded.

[0015] The invention and its various applications will be better understood by reading the following description and examining the accompanying figures. BRIEF DESCRIPTION OF THE FIGURES

[0016] The figures are presented for illustrative purposes only and are in no way limiting of the invention. • Fig. 1 shows a schematic representation of an example of a conversational agent system according to the invention. • Figure 2 is a synoptic diagram illustrating the steps of an example of the method of operating the conversational agent system according to the invention. DETAILED DESCRIPTION

[0017] Unless otherwise specified, the same element appearing on different figures has a unique reference.

[0018] A first aspect of the invention relates to a conversational agent system.

[0019] Figure 1 shows a schematic representation of an example of a conversational agent system 100 according to the invention. The system 100 is configured to converse with a user. The user is, for example, a person needing advice or information to complete a task. Thus, the user can ask one or more questions to the conversational agent system 100 by sending one or more messages 101 as part of a dialogue. The conversational agent system 100 provides one or more answers 102 to the user in order to advise or inform them. The messages 101 and answers 102 can be text, voice, or video.

[0020] System 100 can, for example, be a computer or any system comprising a processor coupled with memory and a graphical user interface (GUI), the memory having stored a computer program containing instructions to implement the process. The memory can also store a database. Memory is any hardware suitable for such storage, possibly comprising several distinct physical parts. The finite state machine can, for example, be stored in the memory of system 100. System 100 can also have a distributed architecture with all the modules of system 100 running on a server configured to: • receive 101 messages from the user, sent via a client system of said server, and • send 102 replies to the user.

[0021] Alternatively, in a distributed architecture, some modules of system 100 can be executed on the server and other modules directly on the user's client system. In one example, the conversational content correction module 150 is executed on the user's client system while the other modules of system 100 are executed on a server.

[0022] System 100 includes a module 110 for managing a finite state machine. Module 110 is configured to identify a current state in a finite state machine. The term "finite state machine" in this application describes any tool for describing the logic of a possible conversation between the user and the agent system 100 and for organizing the operation of system 100 accordingly. Each state of the finite state machine can therefore correspond to a state in the dialogue between the user and the agent system 100. For example, a first state of a finite state machine could correspond to a free-flowing discussion or user introduction stage. Subsequent stages could correspond to states of advice or information in a specific domain.Identifying the current state in the finite state machine therefore corresponds to determining whether the last message 101 sent by the user and received by the agent system 100 requires a change in the current state. In other words, if the received message does not allow a change of state, then the current state corresponds to the previous state. Conversely, if the received message allows a change of state, then the current state corresponds to a state following the previous state in the finite state machine. The previous state in the finite state machine corresponds to the current state of the machine before the receipt of the last message 101. For example, for a finite state machine comprising two states: an initial state and a final state, the previous state could be the initial state, and identifying the current state in the finite state machine corresponds to determining whether the received message 101 allows us to consider the current state as now the final state or, conversely, that the current state remains the initial state.The finite state machine can also be implemented by a module responsible for coordinating the other modules by taking into account the last message 101, the conversation history and the data from module 120. The module can, for example, coordinate the other modules by referring to one or more finite state machines in a more flexible way, for example by not deterministically respecting the conditions for transitioning from one state to another or by creating a new state, for example by hybridizing two states of a finite state machine, etc. Such a module can be obtained, for example, by calling on one or more massive language models whose prompt indicates to perform tasks, for example, weighting, freedom. or hybridization, taking into account contextual information from the conversation such as the last message received, the history, and information from databases. It is also possible to implement such a module more explicitly, for example, by weighting the relevance of several states of the state machine and asking a massive language model to generate a prompt combining the different states with the indicated weighting. Module 110 is further configured to receive an initial request. This initial request includes various elements that allow Module 110 to have the necessary information to manage a finite state machine. Specifically, the initial request includes the finite state machine describing the dialogue logic. It also includes information to identify the previous state of the finite state machine, such as the name or identifier of the previous state.The first query also includes the number of exchanges that have occurred since the transition to the previous state and / or since the start of the conversion. Thus, if a large number of exchanges, i.e., messages exchanged, have already occurred in the previous state, the transition to another state can be facilitated or even enforced. This limits the number of messages exchanged and therefore prevents unnecessary resource consumption. Finally, the first query includes the dialogue history, that is, all the messages sent by the user to system 100 and all the responses 102 generated by system 100. Optionally, the set of states that could be the current state can also be added to the first query. The set of states that could be the current state corresponds to the set of states following the previous state in the finite state machine.When the set of possible states that could constitute the current state is specified, module 110 is guided to identify the current state, which can reduce the time required to identify it. The initial query can also include additional information available to system 100, such as user information (e.g., authorization to enter a particular state of the finite state machine) or various variables (e.g., the user's location within a warehouse).Other specialized modules, such as the other modules of system 100, such as module 120, can also transmit information to module 110, for example to determine if a value has been provided to system 100, for example a scanned barcode in the case of logistics, or if certain information is available in the Retrieval Augmented Generation (RAG) database, commonly known as RAG for "Retrieval-augmented generation", in order for example to exploit a frequently asked questions (FAQ), facilitating answers to common questions, and thus allowing the use of a massive economic language model or even no massive language model if the entry into the FAQ. The question corresponds exactly to the user's message. The first query can also include any other information available and necessary to determine the current state, whether in a database, produced by another module of system 100, or transmitted to module 110 by any means, such as a programming interface. For example, a finite state machine state might only be accessible when a variable v takes a certain value V: therefore, module 110 must receive this value V, for example, provided by module 140, or obtained by module 110 via a database, an API, or other means.

[0023] In one example, module 110 can be implemented in a purely deterministic manner. Thus, the transition from one state to another of the finite state machine depends on a predetermined condition. For example, the transition from a first state to a second state may depend on the agent system receiving one or more pieces of information. Alternatively, module 110 can be implemented using a neural network specifically developed and trained to manage a finite state machine. The neural network can even be specifically trained to manage a type of finite state machine or even a predefined finite state machine, for example, a finite state machine describing the logic of a dialogue for a user needing financial advice. An example of a neural network is a classic three-layer neural network.The first layer of a classical neural network can receive an embedding of previous messages and the identifier of the previous state of the state machine, called state n. The second layer of the classical neural network is smaller than the first layer. The third layer of the classical neural network encodes the next state of the state machine, called state n+1. This network is trained in a supervised manner on conversation histories. Thus, the target variable, i.e., state n+1, is pre-defined, for example by humans, in the data used to train the classical neural network. Alternatively, Module 110 can also be implemented using generative artificial intelligence, such as a neural network like Llama 3.1 70B or Mistral Large. In this case, a training dataset is not required.On the contrary, it is sufficient to provide module 110 with a prompt allowing it to decide on the next state by analyzing the previous exchanges. The prompt can include different parts. The first part of the prompt can explain to the bot that the task to perform is state machine management. The second part of the prompt can include the history of previous exchanges. The third part of the prompt can indicate state n. The fourth part of the prompt can indicate the possible states n+1. The fifth part of the prompt can specify the information that the bot must provide in return. The fifth part can by An example could be a sentence such as: "Taking into account the information above, respond with a number corresponding to the identifier of state n+1 that the automaton should now assume." This approach is very economical because the cost, in terms of resources consumed, of generative artificial intelligences depends on the length of their response; here, the response can be a single number. Finally, it is also possible to use "pooling," that is, to have several Mi modules predicting state n. Each Mi module can have a slightly different prompt and can rely on a different generative artificial intelligence. State n is then chosen by combining the responses given by the Mi modules. For example, the most frequent response among the responses of the Mi modules. This implementation example allows for "smoothing out" the errors of each Mi module, and therefore resulting in a more reliable module 110.Furthermore, by using small generative artificial intelligence models for each Mi module, it is possible to avoid additional energy costs.

[0024] The system 100 also includes an information extraction module 120. Module 120 is configured to extract information from the messages sent by the user during the dialogue. Module 120 is further configured to receive a second request. The second request includes the elements necessary for Module 120 to extract information from the messages sent by the user during the dialogue. In particular, the second request includes the dialogue history, that is, all the messages 101 sent by the user to the system 100 and all the responses 102 generated by the system 100. Optionally, the second request can also include the current state of the finite state machine. Thus, Module 120 can extract information specific to the current state.For example, when a condition for transitioning from the first to the second state of the finite state machine is knowing the user's age, module 120 can search for and extract this information. In other words, when the current state is the first state, module 120 can specifically search for and extract the user's age from the dialogue history. Information extraction can also involve inferring information that is not necessarily explicitly stated in the user's messages. For example, if the user specifies that they drive a car, module 120 can extract information such as the user having a driver's license and being over 18 years old if the user is French. The second query can also include other data known to system 100.For example, the second query may include information about the user, for example from databases or previously extracted by module 120. For example, if a user indicates that he is repairing a car in message m, then specifies the model of the car in message m+5, module 120 will be able to understand that the variable "user action" needs to be amended. For example, the command might change from "repair a car" to "repair a 2001 Renault Twingo 2." Another example is when a list of options is available. For instance, when module 120 knows a list of heat pump models, it will more easily recognize in the messages that the reference "IKKK455U-BH" is a heat pump reference. To obtain this information, module 120 can autonomously access databases, programming interfaces, and other RAG systems, or it can delegate this task to module 140, which will simply transmit the results. Module 120 is generally implemented using artificial intelligence but can be implemented deterministically when the expected possible values ​​are precisely known.It is also possible to combine several artificial intelligences: one using Named Entity Recognition (NER) techniques to identify the type of information present in messages, and a second analyzing the values ​​themselves. This can lead to better recognition and / or naming of the values ​​found in messages, as well as more effective subsequent use of this information. In particular, it is possible to enrich conversation history with the information generated by Named Entity Recognition.

[0025] In an example consistent with the preceding examples, module 120 can be used in "read" mode and in "write" mode. In "read" mode, module 120 can extract and structure data from the exchanges carried out during the conversation in order, for example, to send this data to a third-party system, such as a database, a customer relationship management (CRM) system, or an enterprise resource planning (ERP) system such as SAP. In "write" mode, the system is used to enrich the prompt or to determine transitions. Furthermore, a third-party system, such as a CRM, can also add to or modify the data in module 120 at any stage of process 100.

[0026] In an example, compatible with the preceding examples, module 120 can be implemented by a neural network. The neural network can be specifically developed and trained to extract information, or even to extract information in a specific domain. This neural network could be a generative artificial intelligence. An example of a prompt provided to this artificial intelligence could be: "Collect from the user's last message m, and taking into account the conversation history h, any information that will be useful to accomplish task t. I have already collected some information, which is as follows, in a JSON file: [file]. Respond in the form of a structured JSON file, respecting this same syntax. Finally, be aware that I expect the user "Indicates a car model in their response. If so, complete my file above, indicating the model and brand (if you know it), without modifying the details provided by the user. If they provide other information, add it, unless it is personal, medical, financial, or confidential data." It should be noted that in some cases, it is possible to implement Module 120 deterministically. For example, when the keywords to be identified are known, it is possible to perform a syntactic analysis of the messages to search for these keywords. In the case of coupling Module 110 and Module 120, it is not uncommon that, depending on the task and the finite state machine involved, some states require complex analysis via artificial intelligence, while others require trivial deterministic analysis.

[0027] In an example consistent with the preceding examples, the information extracted by module 120 is added to a file. This file can therefore contain all the information extracted since the beginning of the dialogue. Alternatively, the file can be specific to a user or even to an activity or company of which the user is an employee or customer. The file can be added in the second request. For example, the file is of type JSON. Thus, module 120 is configured to add the extracted information to the JSON file. This file can then be stored in the memory of the chatbot system 100. Thus, instead of storing the entire dialogue, only the relevant information is stored by the system 100. Furthermore, the extraction of information can allow compliance with certain rules such as data anonymization, the use of access rights, and / or data encryption.Finally, the storage method can vary. Thus, storing information in a file can be replaced by storing information in a structured or unstructured database or any other compatible storage method.

[0028] In an example consistent with the preceding examples, the information extracted by module 120 is added to the first query. Thus, in this example, module 110, which manages a finite state machine, is further configured to identify the current state of the finite state machine, taking into account the extracted information included in the first query. For example, the presence of one or more pieces of information among the extracted data can be used as a condition for transitioning from one state to another, i.e., from the previous state to the current state. Furthermore, module 120 can be connected, either directly or via module 140, to a CRM, or any other database, both to initialize its knowledge base and to update the database. Thus, there is a means of communication between unstructured and structured data.

[0029] The system 100 further includes a conversational content generation module 130. This module 130 is configured to generate a proposed response to the last message 101 sent by the user. This module 130 is also configured to receive a third request. The third request includes the elements necessary for module 130 to generate a proposed response to the last message 101. The third request includes the information extracted by module 120. This information can be integrated directly into the response, for example, when the extracted information is the user's name, or indirectly, for example, to generate a contextualized response based on a characteristic of the user. The third request also includes information specific to the current state. In one example, the specific information could be related to a task to be performed specific to the current state.For example, in a finite state machine where different states are specific to a task, task-specific information, such as repairing or restarting a vehicle's engine, can be included in the third request. For instance, one state of the state machine could be dedicated to reading a barcode. The prompt for module 130 could be determined from this state, containing only the instructions for reading the barcode. Furthermore, data relevant to the task could be passed to module 130, such as RAG access to a knowledge base and reading information from module 120 or the file it generated. Part of the prompt could read: "If json.barcode is equal to null, read a barcode; otherwise, tell the user that you already know the barcode and they can continue."The third request may also include user-specific information, for example their gender to address them appropriately by matching words, or instructions sent by other modules such as module 150. The third request may also include information from calls to a RAG, to programming interfaces or any other dynamic information that can be obtained on the fly, because it requires real time, or depends on information obtained recently, for example the last message 101, information obtained by other modules.

[0030] In an example, consistent with the preceding examples, module 130 can be implemented using generative artificial intelligence, for example, a GPT-3 neural network. It should be noted that resource-efficient artificial intelligence is indicated here, made possible by all the work of the upstream modules, which enabled the construction of precisely the correct prompt and the provision of precisely the correct data, thus facilitating the execution of the task of module 130.

[0031] In an example compatible with the preceding examples, the system 100 may also include additional modules 160 for generating conversational content. Each of the additional content generation modules 160 The conversational system is configured to generate an additional response suggestion to the last message 101 based on the third request. Modules 160 are also configured to receive a third request. Furthermore, these additional conversational content generation modules 160 can operate in parallel with module 130, so generating additional response suggestions does not require extra time. When multiple additional response suggestions are generated, the response 102 to the last message 101 sent to the user can be based on a set of response suggestions that includes both the additional response suggestions and the response generated by module 130. For example, response 102 could be a selected response suggestion from the set of response suggestions.In a second example, answer 102 may be based on a selected answer from the set of answer proposals, the selected answer proposal being modified before being submitted as answer 102. In a third example, answer 102 may be based on at least two selected answer proposals from the set of answer proposals, or on a synthesis of the answers, or any other deterministic or non-deterministic combination.

[0032] In an example, compatible with the preceding examples, the additional 160 modules for generating conversational content have different characteristics. For example, each 160 module has a specific performance level. In a first example, each 160 module is specialized in a specific domain. In a second example, compatible with the first example, each 160 module has a specific resource consumption. It is also possible to send slightly different responses from the 130 module to each 160 module. An example could be that each prompt pl, p2, ..., pi of the 160 modules ml, m2, ..., mi would contain data from a knowledge base derived from a RAG (with p1 being the 1 nearest neighbors, ..., pi the i nearest neighbors, for example). This would therefore give the system 100 the ability to diverge more or less from the user's message 101.Introducing such diversity allows for a diversity of responses, and therefore increases the chances of obtaining a quality answer 102 in the output.

[0033] In an example compatible with the preceding examples, the system 100 may include a conversational content correction module 150 configured to determine whether it is necessary to modify or delete the proposed response generated by the conversational content generation module 130. Furthermore, when the system 100 includes additional conversational content generation modules 160, the conversational content correction module 150 is also configured to determine whether it is necessary to modify or delete The additional response suggestions generated by Module 160. Module 150 is configured to receive a fourth request. This fourth request includes the elements necessary for Module 150 to generate an order to modify or delete a response suggestion. The fourth request includes the response suggestion or the additional response suggestion, as well as the set of predefined rules. Optionally, the fourth request can include the dialogue history, the identified current state, and information specific to the identified current state. The fourth request can also include all the data that Module 150 may need to determine whether information in the candidate response is correct and / or suitable for the user.This may require, for example, calls to a RAG, to programming interfaces (for example, to obtain real-time data or to verify the correctness of a calculation), or to query databases. Using the data contained in the fourth query, Module 150 can determine whether it is necessary to send a modification order or even to delete the proposed answer or the additional proposed answer, for example, when a rule from the predefined rule set is violated. For example, Module 150 can detect potentially manipulative, illegal, or inappropriate responses. It can also verify certain facts listed in the proposed answer. Finally, Module 150 can learn from responses that the user has deemed invalid or inappropriate.

[0034] In an example compatible with the preceding examples, module 150 can also be configured to receive message 101 sent by the user and to correct it, by modifying (or rewording) it or even deleting it entirely. Module 150 can therefore protect the other modules of system 100 against potentially dangerous messages 101 or messages sent as part of a cyberattack against system 100. Thus, a set of predefined rules can be used to determine whether message 101 should be modified or even deleted in order to protect the other modules of system 100.

[0035] In an example compatible with the preceding examples, module 150 can be implemented with a generative artificial intelligence tasked with determining whether the answer correctly addresses the user's question. To make this determination, this generative artificial intelligence could be augmented with RAG-type capabilities, particularly useful for fact-checking and thus for combating hallucinations, or even web search capabilities, as in the case of tools such as SearchGPT, Perplexity, or Gemini. Finally, the implementation of module 150 can include a machine learning phase, based on a history of messages that have satisfied (or not) users, to determine in advance whether a response has a high probability of satisfying (or displeasing) the user.

[0036] The system 100 also includes a control module 140. Module 140 is configured to receive messages 101 sent by the user and to respond with a reply 102 based on the proposed reply generated by module 130 and optionally on additional proposed replies generated by modules 160. Furthermore, module 140 is, as illustrated in [Fig. 1], configured to exchange data with all other modules of the system 100. For example, it is configured to generate the various requests and send them to the different modules. It is also configured to obtain: • the current state of the finite state machine sent by the finite state machine management module 110, • the extracted information sent by the information extraction module 120, • the proposed response sent by the conversational content generation module 130, and • the additional response suggestions sent by the 160 additional conversational content generation modules, and • the order to modify or delete the proposed response sent by the conversational content correction module 150.

[0037] Module 140 is further configured to obtain the predefined state machine. The state machine is, for example, stored in memory on system 100 and defines, in particular, all possible states and transitions, as well as the conditions for moving from one state to another. The term "obtain" in this application can mean "receive," "access memory," or even "calculate" or "generate."

[0038] When one of modules 110, 120, 130, 150, or 160 is implemented using a neural network, the request sent to that module can correspond to a prompt specifically configured to be sent to that module. Thus, module 140 can include a prompt optimization submodule, notably to reduce the size of the prompt but also to add information specific to the implementation of the module in question. Therefore, with this prompt optimization submodule, module 140 can learn from the behavior of the other modules in order to optimize the prompt it sends them.

[0039] When the system 100 includes modules 160, the module 140 can further be configured to: • Obtain additional response suggestions to the last message 101 by sending the third request to the additional 160 conversational content generation modules, and • Reply to the last message 101 sent by the user with a response 102 based on: • the proposed response generated by the conversational content generation module 130, and • Additional response suggestions generated by additional conversational content generation modules.

[0040] When the system 100 includes additional conversational content generation modules 160 with different characteristics, the control module 140 is further configured to select at least one additional conversational content generation module to which to send the third request in order to obtain at least one additional response proposal. The selection is based on the different characteristics of the modules 160. In one example, the selection may be based on the specific performance level of each module 160. For example, when the current state is a state dedicated to a specific domain, the control module 140 may select a module 160 that performs well in that specific domain. In another example, consistent with the previous one, depending on the resources available at a given time, the module 140 may select a module 160 that is compatible with that level of available resources.For example, a naive implementation might consist of sending short questions to resource-efficient modules and long questions to more powerful, and therefore less resource-efficient, artificial intelligences.

[0041] When the system 100 includes a conversational content correction module 150, module 140 is further configured to generate the fourth request and to obtain the order to modify or delete the proposed answer and / or additional answer suggestions. Moreover, once the order has been obtained by module 140, module 140 generates a fifth request. This fifth request may be identical to the third request that obtained the proposed answer and / or additional answer suggestions to be modified or deleted. Alternatively, the fifth request may be different from the third request that obtained the proposed answer and / or additional answer suggestions to be modified or deleted. For example, the fifth request may include the elements of the third request as well as information relating to the rule that was violated.For example, the fifth request might specify that the previous suggested answer was eliminated because it was offensive or not age-appropriate. The fifth request can therefore also include any information necessary to improve the next suggested answer. This might include, for example, details about the patterns used in the previous request and / or the... The fifth query may also include information about the AI's configuration parameters, such as the model's temperature, in the previous attempt. For example, the last attempt may have used less powerful AIs. Furthermore, the fifth query may include data extracted from RAGs, databases, files, or application programming interfaces.

[0042] In an example compatible with the preceding examples, module 140 can further be configured to obtain feedback from the user. For example, the user can express satisfaction or another feeling after receiving a response 102. Module 140 can then transmit this feedback to other modules by adding it to the requests.

[0043] In an example compatible with the preceding examples, module 140 can be implemented by one or more neural networks such as GPT3 or Llama. Optionally, module 140 can also be based on a retrieval-augmented generation architecture, commonly known as RAG. Thus, the neural network(s) of module 140 can use external data sources to enhance their capabilities, particularly in generating appropriate queries and responding to the user.

[0044] In an example compatible with the preceding examples, the system 100 can include several modules 140. Each of the modules 140 can be executed in parallel after receiving the message 101. Thus, each of the modules 140 can generate an initial request and send it to the module 130. Furthermore, the system 100 can also include several modules 130, with, for example, one module 130 corresponding to each module 140. In this example, each module 140 can send the initial request to the corresponding module 130. These architectures make it possible to maintain a short response time while having a wide variety of response options available to generate the response 102. Finally, each pair "module 140-module 130" can also have a corresponding module 110 for managing a finite state machine.This architecture allows for more nuanced responses, meaning the user will be guided less predictably, which detracts from the realism of the chatbot. Once all the responses from the 140 modules are known, or a sufficient number, a final processing step must choose the best response or combine the responses, which can be performed by a massive language model.

[0045] In an example consistent with the preceding examples, the system 100 may include an additional module configured to perform calculations. For example, this additional module may be a programming interface to calculators. deterministic systems, such as banking simulators, can be used. The other modules of System 100 can therefore delegate calculations to reliable deterministic simulators by providing the additional module with the input variables. This approach allows, in particular, the transfer of the complexity of certain calculations to the additional module, which reduces the overall power consumption of System 100 and can also enable, in a distributed architecture, the use of generative artificial intelligence running on the client system.

[0046] A second aspect of the invention relates to a method for operating the chatbot system 100. Figure 2 is a block diagram illustrating the steps of an example of the method 200 for operating the chatbot system 100 according to the invention. The mandatory steps of the example of method 200 are indicated by a solid rectangle, and the optional steps are indicated by a dashed rectangle.

[0047] The process 200 is iterative. Thus, an iteration such as described below can be executed each time the user sends a message 101 to the system 100.

[0048] The method 200 may include an optional step 205 of receiving, by the conversational content correction module 150, the last message 101 sent by the user during the dialogue between the chatbot system and the user is secure. For example, the system 100 may ensure that message 101 has an authorized format, an authorized size, that it originates from an authorized user, or decrypt message 101 when an encryption system has previously encrypted message 101.

[0049] The process 200 may include an optional step 210 of modifying or deleting the last message 101. This step is performed by the conversational content correction module 150 when the last message 101 does not comply with a rule from a set of predefined rules, for example, to ensure the integrity of the chatbot system 100. For example, modifying the last message 101 could be translating the message 101 into another predetermined or randomly chosen language. This modification thus makes it possible to considerably complicate certain computer attacks involving prompt insertion and / or theft.

[0050] The method 200 includes a step 215 for receiving the last message 101 sent by the user during the dialogue between the chatbot system and the user. Step 215 is implemented by the control module 140. When steps 205 and 210 are implemented, message 101 is received by module 140 only if module 15 has not deleted it. Furthermore, message 101 can be transmitted by module 150, particularly if the latter has modified it.

[0051] The process 200 includes a step 220 of generating the first query by the control module 140. The first query can be generated using the elements mentioned above.

[0052] The process 200 includes a step 225 of sending, by the control module 140, the first request to the finite state machine management module 110.

[0053] The process 200 includes a step 230 for identifying the current state of the finite state machine. Step 230 is implemented by the finite state machine management module 110 using the data from the first request received.

[0054] The process 200 includes a step 235 of sending, by the finite state machine management module 110, the current state of the finite state machine to the control module 140. Note that, in addition to returning the current state, an example of implementation could consist of returning associated information, such as prompts or information necessary for processing that state.

[0055] The process 200 includes a step 240 of generating, by the control module 140, the second query. The second query can be generated using the elements mentioned above.

[0056] The process 200 includes a step 245 for extracting information from the messages sent by the user during the dialogue. Step 245 is implemented by the finite information extraction module 120 using the data from the second query.

[0057] The process 200 includes a step 250 of sending the extracted information from the information extraction module 120 to the control module 140. It should be noted that the order of the steps can be reversed, by calling module 120 before module 110. This reversal can be preferred for the entire automaton, or based on the previous step in the conversation, or even on other variables. In short, the order of the steps between 110 and 120 can be chosen dynamically.

[0058] The process 200 includes a step 255 of generating, by the control module 140, the third query. The third query can be generated using the elements mentioned above.

[0059] The process 200 includes a step 260 of sending, by the control module 140, the third request to the conversational content generation module 130.

[0060] The process 200 can also include an optional step 265 of sending, by the control module 140, the third request to the additional conversational content generation modules 160.

[0061] The process 200 includes a step 270 of generating the proposed response to the last message 101. Step 270 is implemented by the module 130 of generating conversational content with the elements of the third request.

[0062] The process 200 includes a step 275 of sending the proposed response to the last message 101. The sending is carried out by the conversational content generation module 130 to the control module 140.

[0063] The process 200 may include an optional step 280 of generating additional response proposals to the last message 101. Step 280 is implemented by the additional modules 160 of generating conversational content with the elements of the third request.

[0064] The process 200 may include an optional step 285 of sending additional response proposals to the last message 101. The sending is carried out by the additional conversational content generation modules 160 to the control module 140.

[0065] The method 200 includes a step 290 for generating the response to the last message 101 sent by the user. Step 290 is implemented by the control module 140. The response is based on the proposed response generated by the conversational content generation module 130 and optionally on additional proposed responses generated by the additional conversational content generation modules 160.

[0066] The method 200 includes a step 295 of sending the response 102 by the control module 140.

[0067] When the user receives response 102, the user can, for example, begin their task or modify their task execution. For example, response 102 can specify the next step to be taken in a complex task, such as repairing a vehicle engine.

[0068] A third aspect of the invention concerns the stacking of layers of several systems 100. Indeed, any generative artificial intelligence can be replaced by a system 100 (which would then be considered a high-quality generative artificial intelligence). It is therefore possible to build systems that combine several systems 100, for example by implementing system 130 with, instead of a simple massive language model, a system 100. This ability to recursively use systems 100 could be called a network of generative artificial intelligences.

Claims

1. Demands Conversational agent system (100), comprising a processor coupled to memory and a graphical user interface (GUI), configured to converse with a user comprising: - A module (110) for managing a finite state machine configured to identify a current state of the finite state machine from a first request, the current state corresponding to the state of the machine following the receipt of a last message (101) sent by the user during the dialogue between the chatbot system and the user, and the first request comprising: • the finite state machine describing a dialogue logic, • a previous state of the finite state machine, the previous state corresponding to the current state of the machine before receiving the last message (101) sent by the user during the dialogue, • the number of exchanges performed since a transition to the previous state, and • a dialogue history including the entire dialogue, including the last message (101) sent by the user, - A module (120) for information extraction configured to extract information from messages sent by the user during the dialogue from a second request, the second request including the history of the dialogue. - A conversational content generation module (130) configured to generate a proposed response to the last message (101) sent by the user from a third request, the third request comprising: • The information extracted by the information extraction module (120), • Information specific to the current state identified by the module (110) for managing a finite state machine, - A control module (140) configured for:

2. • Receive messages (101) sent by the user during the dialogue, • Generate the first, second, and third queries, • Obtain the current state of the finite state machine by sending the first request to the finite state machine management module (110), • Obtain the extracted information by sending the second request to the information extraction module (120), • Obtain the proposed response to the last message (101) by sending the third request to the conversational content generation module (130), and • Reply to the last message (101) sent by the user with a response (102) based on the proposed response generated by the conversational content generation module (130). A conversational agent system (100) according to claim 1 further comprising a conversational content correction module (150) configured to determine whether it is necessary to modify or delete the response proposal generated by the conversational content generation module (130) from a fourth request, the modification or deletion of the response proposal generated by the conversational content generation module (130) being necessary when the generated response proposal does not comply with a rule from a set of predefined rules, the fourth request comprising: - the proposed response generated by the conversational content generation module (130), - the set of predefined rules, and in which the control module (140) is further configured to: - Generate the fourth query, - Obtain the order to modify or delete the proposed response generated by the conversational content generation module (130), and - When the order has been obtained: • Generate a fifth query including: • The information extracted by the information extraction module (120), • The information specific to the current state identified by the finite state machine management module (110), and • Information relating to the rule not respected.

3. A conversational agent system (100) according to claim 1 or 2 further comprising additional conversational content generation modules (160), each of the additional conversational content generation modules (160) being configured to generate an additional response proposal to the last message (101) from the third request, and wherein the control module (140) is further configured to: - Obtain the additional responses to the last message (101) by sending the third request to the additional conversational content generation modules (160), and - Respond to the last message (101) sent by the user with a response (102) based on: • the response proposal generated by the conversational content generation module (130), and • the additional response proposals generated by the additional conversational content generation modules.

4. A conversational agent system (100) according to any one of the preceding claims, wherein: - the additional conversational content generation modules (160) have a specific performance level, the performance being linked to specialization in a specific domain and / or specific resource consumption, - the control module (140) is further configured to select at least one additional module (160) of generation of conversational content to which to send the third request to obtain at least one additional response proposal, the selection being based on the specific performance level of at least one additional (160) conversational content generation module.

5. A conversational agent system (100) according to any one of the preceding claims in which: - the second request further includes a JSON file, and - the information extraction module (120) is further configured to add the extracted information to the JSON file.

6. Conversational agent system (100) according to any one of the preceding claims wherein: - the first request further includes information extracted by the information extraction module (120), and - the finite state machine management module (110) is further configured to identify the current state of the finite state machine taking into account the extracted information included in the first request.

7. A conversational agent system (100) according to the preceding claim, wherein the extracted information included in the first request is used by the management module (110) of a finite state machine as a condition for passing from the previous state to the current state.

8. A method (200) for operating a conversational agent system according to any one of the preceding claims, the method comprising, for each iteration of a set of iterations, the steps of: - Receiving (215), by the control module (140), the last message (101) sent by the user during the dialogue between the conversational agent system and the user, Generation (220), by the control module (140), of the first query, Sending (225), by the control module (140), of the first request to the finite state machine management module (110), Identification (230), by the finite state machine management module (110), of the current state of the finite state machine, Transmission (235), by the finite state machine management module (110), of the current state of the finite state machine to the control module (140), Generation (240), by the control module (140), of the second query to the information extraction module (120), Extraction (245) of information, by the information extraction module (120), from the messages sent by the user during the dialogue, Sending (250), by the information extraction module (120), of the extracted information to the control module (140), Generation (255), by the control module (140), of a third query, Sending (260), by the control module (140), of the third request to the conversational content generation module (130), Generation (270), by the conversational content generation module (130), of the proposed response to the last message (101) sent by the user, Sending (275), by the conversational content generation module (130), of the proposed response to the control module (140), and Generation (290), by the control module (140), of the response to the last message (101) sent by the user, the response being based on the proposed response generated by the conversational content generation module (130), and - Sending (295), by the control module (140), of the response (102) to the last message (101) sent by the user.

9. Method (200) of operation according to the preceding claim further comprising initial steps: - Reception (205), by the conversational content correction module (150), of the last message (101) sent by the user during the dialogue between the conversational agent system and the user is secure, - When the last message (101) does not comply with the rule of the predefined rule set, modification or deletion (210) of the last message (101) by the conversational content correction module (150).

10. Product computer program comprising instructions which, when the program is executed by the system according to any one of claims 1 to 7, cause the system to implement a process according to claim 8 or 9.

11. A non-transient, computer-readable data carrier on which a computer program according to the preceding claim is recorded.