Configuring artificial intelligence (AI) bots with simulated personas for engaging in automated conversations

CA3302759A1Undetermined Publication Date: 2025-03-13KIMBERLY CLARK WORLDWIDE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CA3302759
Authority / Receiving Office
CA · CA
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-06
Filing Date
2024-09-05
Publication Date
2025-03-13

AI Technical Summary

Technical Problem

Existing technologies lack the ability to accurately simulate human-like conversations between artificial intelligence (AI) bots, leading to uninformative and undynamic interactions that fail to mimic real human interactions effectively.

Method used

Configuring AI bots with simulated personas using system prompts before engaging in conversations, allowing them to simulate the characteristics, preferences, and interests of users, thereby creating more dynamic and insightful interactions.

Benefits of technology

The solution enables AI bots to engage in conversations that more accurately mimic human interactions, providing valuable insights and feedback based on simulated user reactions, which can inform decision-making and improve user experience.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

Artificially intelligent (Al) bots with simulated personas can be used generate feedback about options. For example, a system can receive a selection by a chooser of an option from among a group of options. The system can configure, based on a chooser profile associated with the chooser, a first Al bot to simulate the chooser. The system can also configure, based on an end-user profile, a second Al bot to simulate an end user of the option. The system can then initiate a conversation about the selected option between the first Al bot and the second Al bot. Based on the conversation, the system can generate feedback about the option. The system can then provide the feedback about the option to the chooser.
Need to check novelty before this filing date? Find Prior Art

Description

CONFIGURING ARTIFICIAL INTELLIGENCE (Al) BOTS WITH SIMULATED PERSONAS FOR ENGAGING IN AUTOMATED CONVERSATIONSCROSS-REFERENCE TO RELATED APPLICATION

[0001] This claims priority to U.S. Provisional Application No. 63 / 580,989, filed September 6, 2023, which is hereby incorporated by reference herein.Technical Field

[0002] The present disclosure relates generally to artificial intelligence. More specifically, but not by way of limitation, this disclosure relates to configuring artificially intelligent (Al) bots with simulated personas to engage in automated conversations.Background

[0003] Machine learning and artificial intelligence are revolutionizing various industries by enabling machines to learn from data and make intelligent decisions. At the core of these technologies are neural networks. Neural networks and other machinelearning models are trained on vast datasets to optimize performance and accuracy. Additionally, the model’s hyperparameters can play a crucial role in the performance of the model, such as its ability to simulate complex patterns and make predictions. By carefully fine-tuning these hyperparameters, machine-learning practitioners can enhance the capabilities of artificial neural networks, leading to more sophisticated and effective models that can address a wide range of challenges.

[0004] New types of machine-learning tools are constantly being developed. Among them, Al bots such as ChatGPT by OpenAI® have recently grown in popularity. These Al bots can leverage natural language models, such as large language models (LLMs), to process natural language inputs and provide natural language outputs. LLMs are advanced Al systems designed to understand and generate human language with remarkable accuracy. Utilizing Natural Language Processing (NLP) techniques, LLMs can analyze and interpret text to discern the meaning, sentiment, and context of sentences. These models are capable of generating coherent and contextually relevant responses, making them useful for a variety of applications. For example, in the realm ofaudio, LLMs can be integrated with speech recognition technologies to transcribe spoken words into written text, thus bridging the gap between voice and text-based communication. This functionality is particularly beneficial for phone-based interactions, where understanding and responding accurately to spoken queries is essential.Summary

[0005] On example of the present disclosure can include a computer-implemented method involving providing a user interface through which a chooser can select among a group of options. The method can also involve receiving, via the user interface, a selection of an option from among the group of options by the chooser. The method can also involve configuring, based on a chooser profile associated with the chooser, a first artificial intelligence (Al) bot to simulate the chooser. The method can also involve configuring, based on an end-user profile, a second Al bot to simulate an end user of the option. The method can also involve initiating a conversation about option between the first Al bot and the second Al bot. The method can also involve generating feedback about the option based on the conversation. The method can also involve providing the feedback about the option to the chooser via the user interface.

[0006] Another example of the present disclosure includes a system comprising one or more processors and one or more memories, the one or more memories comprising program code that is executable by the one or more processors for causing the one or more processors to perform operations. The operations can include providing a user interface through which a chooser can select among a group of options. The operations can include receiving, via the user interface, a selection of an option from among the group of options by the chooser. The operations can include configuring, based on a chooser profile associated with the chooser, a first artificial intelligence (Al) bot to simulate the chooser. The operations can include configuring, based on an enduser profile, a second Al bot to simulate an end user of the option. The operations can include initiating a conversation about option between the first Al bot and the second Al bot. The operations can include generating feedback about the option based on the conversation. The operations can include providing the feedback about the option to the chooser via the user interface.

[0007] Yet another example of the present disclosure includes a non-transitory computer-readable medium comprising program code that is executable by one or more processors for causing the one or more processors to perform operations. The operations can include providing a user interface through which a chooser can select among a group of options. The operations can include receiving, via the user interface, a selection of an option from among the group of options by the chooser. The operations can include configuring, based on a chooser profile associated with the chooser, a first artificial intelligence (Al) bot to simulate the chooser. The operations can include configuring, based on an end-user profile, a second Al bot to simulate an end user of the option. The end user can be different than the chooser. The operations can include initiating a conversation about option between the first Al bot and the second Al bot. The operations can include generating feedback about the option based on the conversation. The operations can include providing the feedback about the option to the chooser via the user interface.Brief Description of the Drawings

[0008] FIG. 1 shows a block diagram of an example of a system for configuring artificially intelligent (Al) bots with simulated personas for engaging in an automated conversation according to some aspects of the present disclosure.

[0009] FIG. 2 shows an example of a user interface for selecting among options according to some aspects of the present disclosure.

[0010] FIG. 3 shows examples of input prompts for configuring Al bots according to some aspects of the present disclosure.

[0011] FIG. 4 shows an example of a conversation between Al bots according to some aspects of the present disclosure.

[0012] FIG. 5 shows a flowchart of an example of a process for using Al bots with simulated personas to derive feedback about an option according to some aspects of the present disclosure.

[0013] FIG. 6 shows a flowchart of an example of a process for generating chooser profiles and end-user profiles according to some aspects of the present disclosure.

[0001] FIG. 7 shows a block diagram for an example of a computing device usableto implement some aspects of the present disclosure.Detailed Description

[0015] Certain aspects and features of the present disclosure relate to configuring artificially intelligent (Al) bots with different simulated personas for engaging in an automated conversation about a topic. For example, two Al bots can be deployed from the same large language model (LLM). After the two Al bots are deployed, but before they are allowed to engage in a simulated conversation with one another, they can be configured to have different simulated personas from one another using system prompts. After the Al bots have been configured with the different personas, the Al bots can then be instructed to engage in a conversation with one another about a topic. Because the Al bots were preconfigured with the different simulated personas, their conversation can more accurately mimic two different people speaking with one another. For example, without this preconfiguration, the two Al bots may respond in substantially the same way to various messages about the topic because they are deployed from the same LLM, resulting in a conversation that is not particularly dynamic or insightful. But by preconfiguring the two Al bots with the different personas before the conversation begins, their operation can be improved so that they provide more dynamic, insightful, accurate, and realistic responses during the conversation.

[0016] As noted above, the Al bots can be used to autonomously converse with one another about a topic. In some examples, such automated conversations may be used to derive feedback about an option. For example, a system can receive a selection from a chooser of an option from among a group of options. The system can then initiate a conversation about the selected option between a first Al bot and a second Al bot. During the conversation, the two bots can transmit messages back-and-forth to engage in a simulated conversation about the option. For example, the first Al bot can ask questions about the option and the second Al bot can respond to the questions. The first Al bot may then reply to the second Al bot with follow-up questions, and so on. After generating the simulated conversation, the system can generate feedback about (e.g., a score for) the option based on at least a portion of the simulated conversation. For example, the system can use a separate analyzer model to help develop the feedbackabout the option based on the conversation. The system can then provide the feedback about the option to the chooser. In some examples, the system can repeat this process for multiple options to provide the chooser with feedback about the options. The feedback can assist the chooser in deciding which options to select or discard.

[0017] In some examples, the system can configure the first Al bot to simulate characteristics (e.g., the demographics, preferences, and interests) of the chooser. For instance, the first Al bot can be configured to simulate the persona of the chooser based on a chooser profile associated with the chooser. Additionally or alternatively, the system can configure the second Al bot to simulate characteristics of an end user of the option. The end user may be different than the chooser. The second Al bot can be configured to simulate the persona of the end user based on an end-user profile associated with the end user. Configuring the first Al bot to simulate the chooser and the second Al bot to simulate the end user can help to capture the unique relationship between the chooser and the end user. Based on these configurations, the first Al bot and the second Al bot can engage in a simulated conversation as if the chooser is speaking to the end user. From this simulated conversation, the system can derive insights about how the end user may perceive and respond to the option. Those insights can then be provided as feedback to the chooser to help the chooser make a selection. This may help avoid the situation where the chooser selects an option that is suboptimal or unacceptable to end users.

[0018] Selecting an option that is unacceptable to end users can have significant negative impacts. For example, if a network administrator deploys software that is unsatisfactory to end users, the network administrator may need to expend considerable time and resources in removing or replacing the software. Removing or replacing the software may also open the network to attack, create network downtime, and consume additional computing resources (e.g., memory, processing power, and bandwidth). As another example, if a software developer deploys a software feature that is unsatisfactory to end users, the software developer may need to expend considerable time and resources in removing or replacing the feature. This may involve reprogramming the software to remove or replace the feature, identifying and debugging problems associated with the feature, and / or updating release notes about the feature.

[0019] Some examples of the present disclosure can avoid one or more of theabovementioned problems by helping the chooser decide among the options by providing feedback about the options, where the feedback is determined based on synthetic conversations generated by Al bots that are configured with simulated personas (e.g., personalities and characteristics). The Al bots can be configured to simulate the chooser and / or the end users. By configuring Al bots to simulate the chooser and / or the end users, insights can be developed into how the end users may react to each option, without having to engage in extensive research or even speak with actual end users. Those insights can then be processed to derive feedback for each option, which can help the chooser easily compare the options and make an informed decision. This can help prevent the chooser from selecting an option that is suboptimal, thereby avoiding the corresponding negative impacts.

[0020] In some examples, the system may automatically modify parameters of a manufacturing process or other physical process based on the feedback about the options. For example, the system can transmit one or more control signals to a manufacturing apparatus based on positive feedback about an option, where the one or more controls signals are configured to cause the manufacturing apparatus to implement the option. For instance, the control signals may instruct the manufacturing apparatus to adjust a color, dimension (e.g., length, width, or heigh), absorbency, weight, pattern, shape, material composition, softness, transparency, adhesiveness, compressive strength, sharpness, and / or other physical characteristic of a manufactured item to implement the option. Examples of the manufacturing apparatus may include a 3D printer, CNC machine, drill, cutter, laser, printer, furnace, heater, cooler, pump, robot, or combinations thereof. In this way, the system can automatically determine feedback about an option and adjust a manufacturing process to implement the option, with little or no human intervention.

[0021] These illustrative examples are given to introduce the reader to the general subject matter discussed here and are not intended to limit the scope of the disclosed concepts. The following sections describe various additional features and examples with reference to the drawings in which like numerals indicate like elements but, like the illustrative examples, should not be used to limit the present disclosure.

[0022] FIG. 1 shows a block diagram of an example of a system 100 for configuringartificially intelligent (Al) bots with simulated personas for engaging in an automated conversation according to some aspects of the present disclosure. The system 100 includes a client device 102, such as a laptop computer, desktop computer, mobile phone, tablet, or wearable device (e.g., a smart watch). The client device 102 can provide a user interface 110, such as a graphical user interface, command-line interface, voice interface, augmented reality (AR) interface, virtual reality (VR) interface, etc. The user interface 110 may be provided by a local application executing on the client device 102 or a remote server system 106, for example if the user interface 110 is a part of website.

[0023] A chooser 108 can interact with the user interface 110 to select among a group of options 150a-c. The chooser 108 can be a human or a non-human entity. For example, a human user may evaluate the options 150a-c to make a choice on their own behalf, in which case the human user is the chooser 108. Alternatively, a human user may evaluate the options 150a-c to make a choice on behalf of a non-human entity such as a corporation, in which case the non-human entity may be the chooser 108.

[0024] Different examples may involve different kinds of options. In some examples, the options 150a-c can include different items. For instance, the options 150a- c can include different brands or types of food, drinks, apparel, electronic devices, hardware components, video games, or furniture. In other examples, the options 150a-c can include different item features. For instance, the options 150a-c can include different features for a robot, a vehicle, a software application, a video game, a website, or a computer. In still other examples, the options 150a-c can include different geographical locations. For instance, the options 150a-c can include different geographical regions for a home, building, or store. In some examples, the options 150a-c can include different educational institutions. For instance, the options 150a-c can include different high schools or universities. In still other examples, the options 150a-c can include different service providers, such as cloud service providers, lawyers, painters, mechanics, or companies. And in still other examples, the options 150a-c can include different treatments, such as physiological treatments or maintenance for electromechanical devices.

[0025] The chooser 108 can interact with the user interface 110 to select among the options 150a-c. The client device 102 can detect a selection of an option 150a andresponsively transmit a communication indicating the selected option 150a to the server system 106, which can include any number of servers. The client device 102 can transmit the communication to the server system 106 via one or more networks 104. Examples of the one or more networks 104 can include a private network such as a local area network (LAN), a public network such as the Internet, or any combination thereof. The server system 106 can receive the communication and, in response, perform an evaluation process to generate feedback 140 for the chooser 108 about the selected option 150a. The feedback 140 can indicate how an end user may react to the selected option 150a.

[0026] More specifically, the server system 106 can select a chooser profile 118 from among a group of chooser profiles 142. The chooser profiles 142 may be stored in a database system 112 containing one or more databases. Each chooser profile 142 may correspond to a different chooser or type of chooser. A “type” of chooser may be a subpopulation of choosers that share one or more of the same characteristics. Each chooser profile 142 can indicate the characteristics of the corresponding chooser or type of chooser. The chooser profiles 118 may have been previously generated based on chooser data 130 collected from one or more sources, as described in greater detail later on with respect to FIG. 6.

[0027] In some examples, the server system 106 can select the chooser profile 118 based on input from the chooser 108. For example, the chooser 108 may be able to select among a list of predefined chooser profiles 142 via the user interface 110. In response to detecting a selection a chooser profile 118, the client device 102 can transmit a communication indicating the selected chooser profile 118 to the server system 106, which can then perform the rest of the process using the selected chooser profile 118. In other examples, the server system 106 can select the chooser profile 118 based on one or more predefined rules 152 (e.g., settings). In still other examples, the chooser 108 can create a custom chooser profile by filling out a form in the user interface 110 with the chooser’s characteristics.

[0028] After determining the chooser profile 118, the server system 106 can generate a chooser input prompt 120 based on the chooser profile 118. The chooser input prompt 120 is an input prompt usable to configure a first Al bot 122, where the input prompt is generated based on the chooser profile 118. The chooser input prompt 120 canbe configured to cause the first Al bot to simulate the chooser’s characteristics. To generate the chooser input prompt 120, the server system 106 can extract data from the chooser profile 118 and incorporate at least some of that data into the chooser input prompt 120. For example, the server system 106 can incorporate aspects of the chooser’s characteristics defined in the chooser profile 118 into the chooser input prompt 120. The chooser input prompt 120 may be a natural language input. In some examples, the chooser input prompt 120 may be a textual input, a speech (e.g., voice) input, a visual input (e.g., an image or video), or any combination thereof. After generating the chooser input prompt 120, the chooser input prompt 120 may be provided as an input to the first Al bot 122. The chooser input prompt 120 can be input to the first Al bot 122 prior to utilizing the first Al bot 122 to conduct a conversation 134. In this way, the chooser input prompt 120 can be used to configure the first Al bot 122 to simulate the chooser, prior to the first Al bot 122 engaging in a conversation 134.

[0029] The server system 106 can also select one or more end-user profiles 124 from among a group of end-user profiles 144. The end-user profiles 144 may be stored in the database system 112. An end user can be a human or a non-human entity. Each end-user profile 144 may correspond to a different end user or type of end user. A “type” of end user may be a subpopulation of end users that share one or more of the same characteristics. Each end-user profile 144 can indicate the characteristics of the corresponding end user or type of end user. The end-user profiles 144 may have been previously generated based on end-user data 132 collected from one or more sources, as described in greater detail later on with respect to FIG. 6.

[0030] In some examples, the server system 106 can select the end-user profile 124 based on input from the chooser 108. For example, the chooser 108 may be able to select among a list of predefined end-user profiles 144 via the user interface 110. In response to detecting a selection of an end-user profile 124, the client device 102 can transmit a communication indicating the selected end-user profile 124 to the server system 106, which can then perform the rest of the process using the selected end-user profile 124. In other examples, the server system 106 can select the end-user profile 124 based on one or more predefined rules 152. In still other examples, the chooser 108 can create a custom end-user profile by filling out a form in the user interface 110.

[0031] After determining the end-user profile 124, the server system 106 can generate an end-user input prompt 126 based on the end-user profile 124. The end-user input prompt 126 is an input prompt usable to configure a second Al bot 128, where the second Al bot 128 is distinct from the first Al bot 122, and where the input prompt is generated based on the selected end-user profile 124. The end-user input prompt 126 can be configured to cause the second Al bot to simulate the end user’s characteristics. To generate the end-user input prompt 126, the server system 106 can extract data from the end-user profile 124 and incorporate at least some of that data into the end-user input prompt 126. For example, the server system 106 can incorporate aspects of the end user’s characteristics defined in the end-user profile 124 into the end-user input prompt 126. The end-user input prompt 126 may be a natural language input. In some examples, the end-user input prompt 126 may be a textual input, a speech input, a visual input, or any combination thereof. After generating the end-user input prompt 126, the end-user input prompt 126 may be provided as an input to the second Al bot 128. The end-user input prompt 126 may be input to the second Al bot 128 prior to utilizing the second Al bot 128 to conduct a conversation 134. In this way, the end-user input prompt 126 can be used to configure the second Al bot 128 to simulate the end user, prior to the second Al bot 128 engaging in a conversation 134.

[0032] The first Al bot 122 and the second Al bot 128 can be supported by machine-learning models, such as natural language processing (NLP) models. The natural language processing models may be large language models (LLMs), such as generative pretrained transformer (GPT) models. The machine-learning models can be trained prior to using the Al bots 122, 128 to conduct a conversation 134. The first Al bot 122 and second Al bot 128 can be trained based on the same or different training data as one another. For instance, the first Al bot 122 and the second Al bot 128 can both be trained on the training data 114. Examples of such training data 114 can include a corpus of textual content (e.g., documents or snippets) from various sources, such as websites, blog posts, academic papers, e-mails, forum posts, and books. Additionally or alternatively, such training data 114 can include a corpus of audio content (e.g., audio clips) from various sources, including speeches, television broadcasts, podcasts, music, and other audio recordings. Additionally or alternatively, such training data 114 caninclude a corpus of image content from various sources, such as websites, books, academic papers, cartoons, and image libraries. Additionally or alternatively, such training data 114 can include a corpus of video content (e.g., video clips) from various sources, such as websites, movies, television broadcasts, and video libraries.

[0033] In some examples, the first Al bot 122 and second Al bot 128 can be designed to receive natural language inputs. The first Al bot 122 and second Al bot 128 may also be designed to provide natural language outputs. The natural language inputs and outputs may be provided in textual or speech form. Additionally or alternatively, the first Al bot 122 and second Al bot 128 can be designed to receive visual inputs (e.g., images or video files) and / or audio inputs (e.g., audio clips). The first Al bot 122 and second Al bot 128 may also be designed to provide visual outputs and / or audio outputs.

[0034] In some examples, the chooser input prompt 120 and / or the end-user input prompt 126 can be system prompts. A system prompt is a special type of input prompt that can be provided by the computer system to an Al bot (e.g., its LLM) before a conversation begins, but after the Al bot has already been designed, trained, and deployed. The system prompt can configure the Al bot with certain contextual information and response parameters, which guides how the Al bot interprets and / or responds to messages during the subsequent conversation. Configuring an Al bot using a system prompt is different from training the Al bot, adjusting its hyperparameters, or modifying its underlying architecture.

[0035] After configuring the first Al bot 122 using the chooser input prompt 120 and / or the second Al bot 128 using the end-user input prompt 126, the server system 106 can initiate a conversation 134 between the first Al bot 122 and the second Al bot 128. The conversation 134 can include messages about the selected option 150a. For example, the first Al bot 122 may begin the conversation 134 by generating and asking an initial question to the second Al bot 128 about the selected option 150a. The second Al bot 128 may answer the question and / or respond with a follow-up question. This may prompt additional discussion between the bots 122, 128. Because one of the goals may be to investigate how the end user might feel about the option 150a, the first Al bot 122 can be configured to ask open-ended questions about the option 150a. For example, the first Al bot 122 may be configured to ask questions such as “would [the option] be usefulto you?”, “how do you feel about [the option]?”, “have you ever used an item like [the option]?”, and “is there any reason you would not like [the option]?”. Responses from the second Al bot 128 may provide details that spawn additional questions from the first Al bot 122.

[0036] In some examples, the conversation 134 may be a textual conversation or a voice conversation, in which the bots 122, 128 transmit text messages or voice messages back-and-forth to one another. And in some examples, the conversation 134 can be multi-modal in the sense that the bots 122, 128 can transmit messages in different formats to one another. For instance, the conversation 134 can involve any combination of text data, audio data, image data, and video data. As one particular example, the first Al bot 122 can submit a text question to the second Al bot 128, which can respond to the question with an image. Thus, in this example, the conversation 134 is multi-modal because it includes both visual data and textual data.

[0037] In some examples, the server system 106 can deploy multiple instances of the first Al bot 122 and / or the second Al bot 128. The instances of the first Al bot 122 may be configured using the chooser input prompt 120 to simulate the chooser. The instances of the second Al bot 128 may be configured using one or more end-user input prompts 126 to simulate one or more end users or types of end users. The server system 106 can then initiate any number of conversations about the selected option 150a between any combination of the first Al bots and the second Al bots. For example, the server system 106 can initiate multiple conversations between the first Al bot 122 and the second Al bots, in a one-to-many arrangement. As another example, the server system 106 can initiate multiple conversations between the first Al bots and the second Al bots, in a many- to-many arrangement. As yet another example, the server system 106 can initiate multiple conversations between the first Al bots and a second Al bot 128, in a many-to-one arrangement. Any suitable arrangement may be used to generate any number of conversations about the selected option 150a.

[0038] After generating the one or more conversations 134, the server system 106 can generate feedback 140 based on the conversations 134. For example, the server system 106 may select one or more snippets (e.g., audio, image, video, or text portions) from the conversations 134 and provide the one or more snippets as at least a portion ofthe feedback 140. Additionally or alternatively, the server system 106 can compute one or more metrics 138 based on the conversations 134 and provide the one or more metrics 138 as at least a portion of the feedback.

[0039] In some examples, the server system 106 can apply an analyzer model 136 to the conversations 134 to determine the feedback 140. For instance, the server system 106 can provide some or all of the conversations 134 as input to an analyzer model 136. The analyzer model 136 can include one or more machine-learning models trained using training data 116. The analyzer model 136 can analyze the conversations 134 to derive insights about the conversations 134. For example, the analyzer model 136 can include a sentiment analysis model that is configured to perform sentiment analysis on the conversations 134 to develop a sentiment profile associated with the conversations 134. The analyzer model 136 can then quantify the insights as one or more metrics 138, which may be numerical values output by the analyzer model 136. For example, the analyzer model 136 may output a first metric indicating whether the conversations 134 exhibited an overall positive, negative, or neutral sentiment about the option 150a. Additionally or alternatively, the analyzer model 136 can output other metrics, such as a second metric indicating a likelihood that the end user will use the option 150a, a third metric indicating a likelihood that the end user will complain about the option 150a, and / or a fourth metric indicating whether the end user would recommend the option 150a. In some examples, the analyzer model 136 may identify and output other data in addition to or instead of the metrics 138, such as one or more important parts of a conversation 134 that most influenced the value of a metric 138. Based on the output of the analyzer model 136, the server system 106 can generate feedback 140 about the option 150a.

[0040] As noted above, the feedback 140 may include one or more of the metrics 138 and / or the other data. In some examples, the server system 106 can derive the feedback 140 based on one or more of the metrics 138 and / or the other data. For example, the server system 106 can apply a predefined algorithm to the metrics 138 to compute a score (e.g., an overall score) for the option 150a, where the score can serve as at least a portion of the feedback 140. The algorithm may apply weights to the metrics 138 to compute the score.

[0041] In some examples, the server system 106 can generate the feedback 140in a natural language format to make it easier for the chooser 108 to digest the feedback 140. For example, the server system 106 can generate the feedback 140 by populating a predefined template with the metrics, where the predefined template can include a textual explanation of the metrics and / or additional details in textual form. The feedback 140 can also include snippets from the conversations 134, which may help the chooser 108 better understand the reasons behind the metrics 138, the score, or both.

[0042] After generating the feedback 140, the server system 106 can transmit the feedback 140 to the client device 102 via the network 104. The client device 102 can receive the feedback 140 and output the feedback 140 via the user interface 110. The above process may be repeated for any number of options 150a-c, either automatically or in response to a selection by the chooser 108. The feedback about all of the options 150a-c can be similarly formatted, which can help the chooser 108 perform an apples-to- apples comparison of the options 150a-c. By providing the feedback to the chooser 108 in this way, the chooser 108 can make a more informed decision when selecting among the options 150a-c.

[0043] In the above example, the evaluation process was triggered by the chooser 108 selecting an option 150a (e.g., via the user interface 110). But in other examples, at least some of the evaluation process may be performed automatically. For example, the server system 106 can automatically evaluate some or all of the options 150a-c at any suitable time, for example prior to the chooser 108 accessing the user interface 110. Then when the chooser 108 accesses the user interface 110, the system 100 can present the options 140a-c with their corresponding feedback in the user interface 110 to the chooser 108. That way, the chooser 108 does not need to manually select each option and wait for its evaluation process to complete.

[0044] In some examples, the chooser 108 can be different than the end user. In those examples, the chooser profile 118 may be different than the end-user profile 124. In other examples, the chooser 108 can be the same as the end user. In those examples, the chooser profile 118 may be the same as the end-user profile 124, in which case the first and second Al bots 122, 128 may both be configured to simulate the chooser 108.

[0045] In some examples, the system 100 can include an automation module 146. The automation module 146 may be software located on the client device 102, the serversystem 108, or elsewhere in the system 100. The automation module 146 can obtain feedback 140 about one or more of the options 150a-c, for example by interacting with the server system 106. After collecting the feedback 140 about some or all of the options 150a-c, the automation module 146 may automatically select an option 150a from among the options 150a-c based on the feedback 140. For example, the automation module 146 may apply one or more predefined rules 148 to select among the options 150a-c based on the feedback 140. The automation module 146 may then present the selected option 150a to a human for final authorization before the option 150a is implemented. Alternatively, the automation module 146 may automatically implement the selected option 150a, without receiving prior authorization from a human. In this way, the automation module 146 can serve as the chooser 108 and a fully automated selection system can be provided for choosing among options 150a-c.

[0046] To implement a selected option 150a, the system 100 can control a manufacturing apparatus 158 or other physical device. For example, the automation module 146 can determine an option 150a to implement based on its feedback 140, as described above. The option 150a may be selected because its feedback 140 includes a metric or score that meets or exceeds a predefined threshold, or otherwise suggests that the option 150a should be implemented. Based on this determination and / or other factors (e.g., user approval), the automation module 146 can transmit one or more signals for causing the manufacturing apparatus 158 to implement the option 150a. For instance, the automation module 146 can transmit one or more control signals 156 to a controller 152 of the manufacturing apparatus 158. The control signals 156 can instruct the controller 152 to operate a physical component 154 of the manufacturing apparatus 148 in a certain way that implements the option 150a. For instance, the control signals 156 may include adjustments to one or more operational parameters of the physical component 154 that, when implemented, cause the manufacturing apparatus 158 to realize the option 150a. Examples of the physical component may include a cutter, heater, printer, cooler, injection system, laser, mixer, pump, welder, robot, etc. After the option 150a has actually been implemented, real end users may provide their feedback about the option 150a. That feedback can then be used to further tune the first Al bot 122 and second Al bot 128, thereby improving their accuracy and abilities for future conversations.

[0047] In some examples, the client device 102 and the server system 106 may be associated with the same entity. For example, the client device 102 and the server system 106 may be associated with the same corporation (e.g., the chooser 108), which may own or operate the client device 102 and the server system 106. Alternatively, the client device 102 and the server system 106 may be associated with different entities. For example, the client device 102 may be associated with a first entity and the server system 106 may be associated with a second entity, where the second entity is different than the first entity. The second entity may provide the first entity with access to the services described herein, for example as a subscription or otherwise.

[0048] It will be appreciated that there can be various different types of choosers and options. For instance, in some examples the chooser 108 may be a product developer that wants to select among a group of product features to include in a new product. In other examples, the chooser 108 may be a network administrator that wants to select among a group of network security solutions to protect their computer network. In many of these situations, the chooser 108 may want to understand how the end users will react to an option before committing to the option. For example, a product developer may want to understand how an end user of a software product will react to a certain software feature before expending resources to develop that feature. As another example, a network administrator may want to understand how network users will react to certain antivirus software before expending resources to deploy the antivirus software across the network. As another example, a building manager may want to understand how their tenants will react to a certain product in their spaces, before expending resources in installing the product. Without conducting extensive surveys and other research, it can be challenging to predict how an end user may react to an option. And it is often difficult, time consuming, and expensive to perform such research. Additionally, in some scenarios, the chooser 108 is unable to conduct such research because they do not have direct access to the end users. As a result, conventionally, choosers may be forced to select among a group of options with insufficient information to make an informed decision. This may lead to the chooser selecting options that are unacceptable to end users or that are otherwise suboptimal. But the system 100 described herein can avoid those problems by using Al bots to generate feedback about the options, to help the chooser 108 make a selection ina more informed way.

[0049] While the examples described above may use the chooser input prompt 120 and the end-user input prompt 126 to configure the first Al bot 122 and the second Al bot 128 with their respective personas, other examples may configure the bots 122, 128 with their respective personas in other ways. For instance, the input prompts containing messages from the first Al bot 122 to the second Al bot 128, and vice versa, can be modified to include the relevant persona data from the profiles 118, 126. As one specific example, during the conversation 134, the first Al bot 122 can generate a message (e.g., a question or remark) for the second Al bot 122. This message can be packaged into an input prompt, which can also be configured to include persona data from the end-user profile 124. For instance, the persona data may be incorporated into the context header of the input prompt. The input prompt can then be supplied to the second Al bot 122, which can generate a response that complies with the persona data in the input prompt. Incorporating the persona data into the input prompt can control (e.g., limit or otherwise dictate) how the second Al bot 128 responds to the message, so that the response complies with the second Al bot’s intended persona. A similar process can be performed when the second Al bot 128 generates a message for the first Al bot 122, so that the first Al bot’s response complies with its intended persona. Using this technique, the Al bots 122, 128 can be configured with their personas on-the-fly during the conversation 134 (e.g., concurrently with receiving a message), rather than being preconfigured with their personas before the conversation begins.

[0050] In some examples, the system 100 can include a correction module 158. The correction module 158 can be software that evaluates the conversation 134 in real time to detect events and, in response to detecting said events, issues corrections to help improve the conversation 134. For example, while the conversation 134 is ongoing, the correction module 158 can detect that the topic of the conversation 134 has strayed too far from its original intent - e.g., the discussion of an option 150a. The correction module 158 may detect this event based on keywords in the conversation 134. As another example, the correction module 158 may detect that an impermissible feature was mentioned during the conversation 134. The correction module 158 may detect this event based on a predefined set of rules, which may prohibit the discussion of certain featuresfor technical, practical, ethical, or other reasons. As another example, the correction module 158 may detect that the conversation 134 is not progressing, for example because the Al bots 122, 128 have become stuck in some kind of loop. The correction module 158 may detect this event based on repetition in the conversation 134.

[0051] If the correction module 158 detects any of the events described above, it can automatically interact with one or both of the Al bots 122, 128 to help fix the issue. For example, the correction module 158 can inject one or more corrections (e.g., a boundary condition, an instruction, and / or additional information) into one or more subsequent input prompts supplied to one or both of the Al bots 122, 128 during the conversation 134. The corrections can be configured to help guide the conversation 134 in a way that resolves the issue. The correction module 158 may dynamically generate a correction on-the-fly or obtain a correction from a repository of predefined corrections. One example of a correction may be the following text, which can be included in the context header of an input prompt: “The conversation has gotten off track. Revert back to the original goal of evaluating option A. Ignore the last five messages.” Another example of a correction may be the following text, which can be included in the context header of an input prompt: “The feature just mentioned in the previous message is infeasible. Divert away from discussing that feature.” Because the Al bots 122, 128 may otherwise be relatively unbounded in how they converse, the correction program 158 can help ensure that the Al bots 122, 128 do not get off track by progressively and dynamically issuing corrections as the conversation is ongoing.

[0052] Turning now to FIG. 2, shown is an example of a user interface 200 for selecting among options 202a-c according to some aspects of the present disclosure. In this example, the user interface 200 is a graphical user interface. But in other examples, the user interface may be a command-line interface or a voice interface, through which the user can input voice commands.

[0053] FIG. 2 depicts three options 202a-c. But in other examples, the user interface 200 may provide more or fewer options. A chooser can select one of the options to evaluate. In this example, option 202a is selected for evaluation.

[0054] In addition to selecting an option 202a for evaluation, the chooser can also select a chooser profile and / or an end-user profile via the user interface 200. For example,the chooser can select a chooser profile and an end-user profile via graphical input elements 206. Examples of the graphical input elements 206 can include menus, radio buttons, check boxes, text inputs, or any combination of these. The chooser can interact with the graphical input elements 206 to, for example, select a chooser profile from among a list of available chooser profiles and select an end-user profile from among a list of available end-user profiles. The lists can be prepopulated based on the profiles stored in a database system, such as database system 112 of FIG. 1 .

[0055] In some examples, the chooser can create a custom profile via the user interface 200. For example, the chooser can create a custom chooser profile or a custom end-user profile via the user interface 200. To do so, the chooser can select an interface element, such as interface element 212, for creating the custom profile. In response, the user interface 200 can present the chooser with a form containing graphical input elements through which the chooser can input characteristics and save them as a custom profile. The system can then make the custom profile available to the chooser for selection in the user interface 200.

[0056] After selecting an option 202a and the profiles, the chooser can press a button 208 to trigger the evaluation process described above. In response, the system can deploy and configure the first and second Al bots. The system can then initiate one or more conversations between the Al bots about the selected option 202a. The system can use the one or more conversations to generate feedback 210 about the selected option 202a. After generating the feedback, the system can output the feedback 210 in the user interface 200 for the chooser. In this example, the feedback 210 is a numerical score in a range from 1-100, where a lower value may be less desirable and a larger value may be more desirable. This process may be repeated any number of times for any number of options 202a-c, for example based on the chooser changing their option selection and / or their profile selections. Once the system is done evaluating some or all of the options 202a-c, the system may shut down the Al bots to conserve computing resources (e.g., so the Al bots do not consume memory and other resources when they are not in use).

[0057] Turning now to FIG. 3, shown are examples of a chooser input prompt 300 and an end-user input prompt 302 according to some aspects of the present disclosure.As shown, the input prompts 300, 302 can be provided in a natural language format, such as in a textual sentence format in the English language. The input prompts 300, 302 can each be formatted as directives or guidance describing the characteristics (e.g., preferences, interests, motivations, desires, etc.) of the character to be simulated by the corresponding Al bot. By providing the input prompts 300, 302 to the respective Al bots, the system can configure the Al bots to behave like the characters described in the input prompts 300, 302.

[0058] As noted above, the input prompts 300, 302 can be generated based on the respective profiles selected by the chooser. For instance, the system may have one or more predefined templates that define the input prompts 300, 302. The predefined templates may have empty fields, which the system can populate based on the content of the selected profiles to generate the final input prompts 300, 302.

[0059] Turning now to FIG. 4, shown is an example of a conversation 400 between a first Al bot and a second Al bot according to some aspects of the present disclosure. The conversation 400 may include a sequence of messages 402, 406, 410 generated by the first Al bot. The conversation 400 may also include a sequence of messages 404, 408, 412 generated by the second Al bot. As shown, the conversation 400 can be about an option. In this example, the option is a leaderboard feature for a mobile game, but other examples may involve a discussion about other options. From the conversation 400, it is possible to derive insights about how the end user (represented by the second Al bot) may react to the leaderboard feature. For example, based on the conversation 400, it can be gleaned that the end user would probably not use a leaderboard at all and would rarely, if ever, use a personal score tracker. This may help the game developer evaluate whether to expend the time and resources to develop either of those features.

[0060] FIG. 5 shows a flowchart of an example of a process for using Al bots with simulated personas to derive feedback about an option according to some aspects of the present disclosure. Other examples may include more operations, fewer operations, different operations, or a different order of operations than is shown in FIG. 5. For instance, some examples may exclude block 510 and thus not intentionally configure the first Al bot to simulate the chooser. FIG. 5 will now be described below with reference to the components of FIG. 1 described above.

[0061] In block 502, a system 100 trains a first machine-learning model associated with a first Al bot 122. The first machine-learning model may include one or more deep neural networks. For example, the first machine-learning model may include a recurrent neural network, a transformer model, a generative adversarial network, or a combination thereof. The system 100 can train the first machine-learning model using training data. For instance, the server system 106 can train the first machine-learning model using training data 114 that includes a corpus of textual documents and / or audio files. In some examples, the first machine-learning model may undergo multiple training phases, such as an unsupervised learning phase, a supervised learning phase, and a reinforcement learning phase.

[0062] In block 504, the system 100 trains a second machine-learning model associated with a second Al bot 128. The second machine-learning model may be the same as, or different from, the first machine-learning model. The second machinelearning model may include one or more deep neural networks. For example, the second machine-learning model may include a recurrent neural network, a transformer model, a generative adversarial network, or a combination thereof. The system 100 can train the second machine-learning model using training data, which may be the same as or different from the training data used to train the first machine-learning model. For instance, the server system 106 can train the second machine-learning model using training data 114 that includes a corpus of textual documents and / or audio files. In some examples, the second machine-learning model may undergo multiple training phases, such as an unsupervised learning phase, a supervised learning phase, and a reinforcement learning phase.

[0063] In block 506, the system 100 provides a group of options 150a-c to a chooser 108. The group of options 150a-c can include any number of options that is greater than one. The system 100 may provide the group of options 150a-c to the chooser 108 via a user interface 110, an application programming interface, or another type of interface. For instance, the server system 106 can generate a webpage that includes the group of options 150a-c and provide the webpage to the client device 102, which can render the webpage in a website browser.

[0064] In block 508, the system 100 receives a selection of an option 150a, fromamong the group of options 150a-c, by the chooser 108. For example, the chooser 108 can select one of the options 150a-c in a webpage provided by the server system 106. The client device 102 can detect the selection and transmit a communication indicating the selection to the server system 106.

[0065] In block 510, the system 100 configures one or more instances of the first Al bot 122 based on a chooser profile 118 associated with the chooser 108. For example, the server system 106 can receive a selection of the chooser profile 118 from the chooser 108. Additionally or alternatively, the server system 106 can select the chooser profile 118 using predefined rules 152. After determining the chooser profile 118, the server system 106 can generate a chooser input prompt 120 based on the chooser profile 118. The server system 106 can then configure one or more instances of the first Al bot 122 to simulate the chooser 108, for example by providing the chooser input prompt 120 as input to the instances. In this way, the different instances may be configured to simulate the same chooser or the same type of chooser.

[0066] In block 512, the system 100 configures one or more instances of the second Al bot 128 based on one or more end-user profiles 124 associated with one or more end users of the selected option 150a. For example, the server system 106 can receive one or more selections of one or more end-user profiles 124 from the chooser 108. Additionally or alternatively, the server system 106 can select one or more end-user profiles 124 using predefined rules 152. After determining the one or more end-user profiles 124, the server system 106 can generate one or more end-user input prompts 126 based on the one or more end-user profiles 124. The server system 106 can then configure one or more instances of the second Al bot 128 to simulate the one or more end users, for example by providing the one or more end-user input prompts 126 as input to the instances. In this way, the different instances may be configured to simulate different end users or different types of end users. This may allow the system 100 to investigate (e.g., concurrently) the reactions of multiple different end users, or multiple different types of end users, to the selected option 150a.

[0067] In block 514, the system 100 initiates one or more conversations 134 about the selected option 150a between one or more instances of the first Al bot 122 and one or more instances of the second Al bot 128. For example, the server system 106 candirect multiple instances of first Al bot 122 to converse in parallel with multiple instances of the second Al bot 128, thereby creating a number of parallel conversations about the option. Performing the conversations in parallel may significantly decrease the amount of time it takes to complete the conversations.

[0068] In block 516, the system 100 generates feedback 140 about the option 150a based on the one or more conversations 134.

[0069] In some examples, the feedback 140 can include one or more metrics 138, which can be determined by analyzing the one or more conversations 134. For example, the server system 106 can use an analyzer model 136 to evaluate the conversations 134 and generate the metrics 138. In some examples, the analyzer model 136 may be configured to identify the presence of key words in the conversations 134, their frequency in the conversations 134, and other related information to generate the metrics 138. The analyzer model 136 can include one or more trained machine-learning models, which may or may not be different from the first and second machine-learning models described above. For example, the analyzer model 136 may include a deep neural network such as a sentiment analysis model, a classifier (e.g., a support vector machine or a Naive Bayes classifier), a clusterer (e.g., a k-means clusterer), and / or a decision tree. The system 100 can train the analyzer model 136 using training data 116, which may be the same as or different from the training data used to train the first and / or second machine-learning models. For instance, the server system 106 can train the analyzer model 136 using training data 116 that includes a corpus of textual documents and / or audio files. In some examples, the analyzer model 136 may undergo multiple training phases, such as an unsupervised learning phase, a supervised learning phase, and a reinforcement learning phase.

[0070] After determining the metrics 138, in some examples the server system 106 determine one or more scores for the option 150 based on the metrics 138. For instance, the server system 106 can determine an overall score for the option 150a by taking the weighted or unweighted sum of the metrics 138. The overall score may serve as at least a portion of the feedback 140.

[0071] In some examples, the server system 106 can include one or more conversation snippets in the feedback 140. The conversation snippets may be selectedfrom one or more of the conversations 134 for any suitable reason. For instance, the conversation snippets may be selected from one or more of the conversations 134 based on the snippet’s relevance to (e.g., impact on) the metrics 138 or scores, which may help the chooser 108 better understand the reasons for the metrics or scores. In some examples, the conversation snippets can also allow the chooser 108 to gain additional insights that may not be readily available from metrics / scores alone. For example, while the metrics 138 or scores may indicate that the option 150a is a “good option,” at least a portion of the conversations 134 may indicate an unappreciated or unarticulated disadvantage that the chooser 108 may not have previously realized and that the chooser 108 may wish to avoid. By being tipped off about this potential disadvantage, the chooser 108 may avoid certain unanticipated repercussions. As another example, while the metrics 138 may indicate that the option 150a is a “bad option,” at least a portion of the conversations 134 may indicate an unappreciated or unarticulated advantage that the chooser 108 may not have previously realized and that may sway the decision. These types of additional insights may be gleaned by the chooser 108 upon viewing portions of some or all of the conversations 134.

[0072] In block 518, the system 100 provides the feedback 140 to the chooser 108. The system 100 may provide the feedback 140 to the chooser 108 via a user interface 110, an application programming interface, or another type of interface. For instance, the server system 106 can generate a webpage that includes the feedback 140 and provide the webpage to the client device 102, which can render the webpage in a website browser.

[0073] In block 520, the system 100 can implement the option 150a, either automatically or at the direction of a user (e.g., the chooser 108). For example, the system 100 can transmit one or more control signals 156 to a manufacturing apparatus 158, which may include a single device or combination of devices capable of implementing the option 150a. The one or more control signals 156 may include adjustments to one or more operating parameters of the manufacturing apparatus 158, or other instructions for the manufacturing apparatus 158, that effect the implementation of the option 150a. The system 100 may be preprogrammed with data indicating that certain types of adjustments to certain operating parameters produce certain tangible results. The system 100 cantherefore rely on this preprogramming to determine which control signals 156 to issue to the manufacturing apparatus 158 to implement the option 150a.

[0074] FIG. 6 shows a flowchart of an example of a process for generating chooser profiles and end-user profiles according to some aspects of the present disclosure. Other examples may include more operations, fewer operations, different operations, or a different order of operations than is shown in FIG. 6. FIG. 6 will now be described below with reference to the components of FIG. 1 described above.

[0075] In block 602, the system 100 receives chooser data 130 from one or more sources. The one or more sources may include a human user that inputs at least some of the chooser data 130, a database system 112 in which at least a portion of the chooser data 130 is stored, one or more sensors configured to collect sensor data associated with the chooser 108, or any combination thereof. The system 100 can receive the chooser data 130 from the one or more sources via the one or more networks 104.

[0076] The chooser data 130 can indicate one or more characteristics of a chooser 108 or a type of chooser. For example, chooser data 130 can indicate the demographics, such as age, work experience, occupation or role, geographical location (e.g., address), sex, income, ethnicity, and religion. Additionally or alternatively, the chooser data 130 can include interests, such as certain types of products or topics (e.g., robotics, computers, engines, pumps, etc.), hobbies, and goals (e.g., reduced production time). Additionally or alternatively, the chooser data 130 can include physiological conditions. Additionally or alternatively, the chooser data 130 can include preferences of the chooser 108 or the type of chooser. Examples of preferences can include risk tolerance, favored or disfavored geographical locations (e.g., regions), favored or disfavored products or product features, and favored or disfavored treatments.

[0077] In some examples, the chooser data 130 may be collected via one or more surveys or other research methods that involve interacting with the chooser 108. For instance, the chooser data 130 may be collected using one or more sensors associated with the chooser 108. Examples of such sensors can include blood pressure sensors, heartbeat sensors, perspiration sensors, temperature sensors, electrocardiogram sensors, electromyography sensors, oxygen sensors, accelerometers, global positioning system (GPS) units, pressure sensors, cameras, gyroscopes, and inclinometers.

[0078] In block 604, the system 100 generates a chooser profile 118 based on the chooser data 130. For example, the server system 106 can extract at least some of the chooser data 130 and incorporate it into the chooser profile 118. The server system 106 may analyze and extract the chooser data 130 based on one or more predefined rules 152. The server system 106 can then store the chooser profile 118 in a database system 112 for subsequent use.

[0079] In block 606, the system 100 receives end-user data 132 from one or more sources. The one or more sources may include a human user that inputs at least some of the end-user data 132, a database system 112 in which at least a portion of the enduser data 132 is stored, a remote system associated with another entity that interacts with the end users, one or more sensors configured to collect sensor data associated with the end users, or any combination thereof. The system 100 can receive the end-user data 132 from the one or more sources via the one or more networks 104.

[0080] The end-user data 132 can indicate one or more characteristics of an end user or type of end user. For example, end-user data 132 can indicate the demographics, interests, physiological conditions, and preferences associated with the end user or the type of end user. In some examples, the end-user data 132 may be collected via one or more surveys or other research methods that involve interacting with the end-user. For instance, the end-user data 132 may be collected using one or more sensors associated with an end user. Examples of such sensors can include blood pressure sensors, heartbeat sensors, perspiration sensors, temperature sensors, electrocardiogram sensors, electromyography sensors, oxygen sensors, accelerometers, GPS units, pressure sensors, cameras, gyroscopes, and inclinometers.

[0081] In block 608, the system 100 generates an end-user profile 124 based on the end-user data 132. For example, the server system 106 can extract at least some of the end-user data 132 and incorporate it into the end-user profile 124. The server system 106 may analyze and extract the end-user data 132 based on one or more predefined rules 152. The server system 106 can then store the end-user profile 124 in a database system 112 for subsequent use. For example, after generating the chooser profile 118 and the end-user profile 124, they may be used in the evaluation process described above.

[0082] Turning now to FIG. 7, shown is a block diagram for an example of a computing device 700 usable to implement some aspects of the present disclosure. In some examples, the computing device 700 may correspond to the client device 102 or the server system 106 of FIG. 1 .

[0083] The computing device 700 includes a processor 702 coupled to a memory 704 via a bus 706. The processor 702 can include one processing device or multiple processing devices. Examples of the processor 702 include a Field-Programmable Gate Array (FPGA), an application-specific integrated circuit (ASIC), a microprocessor, or any combination of these. The processor 702 can execute instructions 708 stored in the memory 704 to perform operations. Examples of such operations can include any of the techniques described above to evaluate an option. In some examples, the instructions 708 can include processor-specific instructions generated by a compiler or an interpreter from code written in any suitable computer-programming language, such as C, C++, C#, Python, or Java.

[0084] The memory 704 can include one memory device or multiple memory devices. The memory 704 can be volatile or non-volatile, such that the memory 704 retains stored information when powered off. Examples of the memory 704 include electrically erasable and programmable read-only memory (EEPROM), flash memory, or any other type of non-volatile memory. At least some of the memory device includes a non-transitory computer-readable medium from which the processor 702 can read instructions 708. A computer-readable medium can include electronic, optical, magnetic, or other storage devices capable of providing the processor 702 with computer-readable instructions or other program code. Examples of a computer-readable medium can include magnetic disks, memory chips, ROM, random-access memory (RAM), an ASIC, a configured processor, optical storage, or any other medium from which a computer processor can read the instructions 708.

[0085] The computing device 700 may also include input and output (I / O) components 710. Examples of the input components can include a mouse, a keyboard, a microphone, a trackball, a touch pad, a touch-screen display, or any combination of these. Examples of the output components can include a visual display such as a LCD display or a touch-screen display, an audio display such as speakers, a haptic displaysuch as a piezoelectric device or an eccentric rotating mass (ERM) device, or any combination of these.

[0086] The foregoing description of certain examples, including illustrated examples, has been presented only for the purpose of illustration and description and is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Numerous modifications, adaptations, and uses thereof will be apparent to those skilled in the art without departing from the scope of the disclosure. For instance, some examples described herein can be combined with other examples to yield further examples.

Claims

Claims1. A computer-implemented method, comprising: receiving, via a user interface, a selection of an option from among a group of options by a chooser; configuring, based on a chooser profile associated with the chooser, a first artificial intelligence (Al) bot to simulate the chooser; configuring, based on an end-user profile, a second Al bot to simulate an end user of the option; initiating a conversation about option between the first Al bot and the second Al bot; generating feedback about the option based on the conversation; and providing the feedback about the option to the chooser via the user interface.

2. The method of claim 1 , wherein the option is a physical object, and wherein the group of options includes a group of objects that are deployable at one or more physical locations associated with the chooser.

3. The method of claim 1 , wherein the option is an object feature, and wherein the group of options includes a group of object features.

4. The method of claim 1 , further comprising: configuring, based on one or more end-user profiles, a plurality of second Al bots to simulate a plurality of end users of the option; initiating a plurality of conversations about the option between the first Al bot and the plurality of second Al bots; and generating the feedback based on the plurality of conversations.

5. The method of claim 1 , further comprising: configuring, based on the chooser profile, a plurality of first Al bots to simulate the chooser;configuring, based on one or more end-user profiles, a plurality of second Al bots to simulate a plurality of end users of the option; initiating a plurality of conversations about the option between the plurality of first Al bots and the plurality of second Al bots; and generating the feedback based on the plurality of conversations.

6. The method of claim 1 , further comprising: providing the conversation as input to an analyzer model that is different than the first Al bot and the second Al bot, the analyzer model including a machine-learning model that is configured to output a metric based on the conversation, the metric being different than the feedback; and generating the feedback based on the metric.

7. The method of claim 1 , further comprising: receiving, via the user interface, a selection of the chooser profile by the chooser, the chooser profile being selected from among a group of chooser profiles available for selection in the user interface; and based on receiving the selection, and prior to initiating the conversation, configuring the first Al bot to simulate the chooser by providing an input prompt with data from the chooser profile to the first Al bot.

8. The method of claim 1 , further comprising: receiving, via the user interface, a selection of the end-user profile by the chooser, the end-user profile being selected from among a group of end-user profiles available for selection in the user interface; and based on receiving the selection, and prior to initiating the conversation, configuring the second Al bot to simulate the end user by providing an input prompt with data from the end-user profile to the second Al bot.

9. The method of claim 1 , further comprising generating the chooser profile based on collected data about the chooser.

10. The method of claim 1 , further comprising generating the end-user profile based on collected data about one or more end users, the one or more end users being different than the chooser.11 . The method of claim 1 , wherein the first Al bot and the second Al bot include large language models (LLMs).

12. A system comprising: one or more processors; and one or more memories comprising program code that is executable by the one or more processors for causing the one or more processors to perform operations including: receiving, via a user interface, a selection of an option from among a group of options by a chooser; configuring, based on a chooser profile associated with the chooser, a first artificial intelligence (Al) bot to simulate the chooser; configuring, based on an end-user profile, a second Al bot to simulate an end user of the option; initiating a conversation about option between the first Al bot and the second Al bot; generating feedback about the option based on the conversation; and providing the feedback about the option to the chooser via the user interface.

13. The system of claim 12, wherein the operations further comprise: configuring, based on one or more end-user profiles, a plurality of second Al bots to simulate a plurality of end users of the option; initiating a plurality of conversations about the option between the first Al bot and the plurality of second Al bots; and generating the feedback based on the plurality of conversations.

14. The system of claim 12, wherein the operations further comprise: configuring, based on the chooser profile, a plurality of first Al bots to simulate the chooser; configuring, based on one or more end-user profiles, a plurality of second Al bots to simulate a plurality of end users of the option; initiating a plurality of conversations about the option between the plurality of first Al bots and the plurality of second Al bots; and generating the feedback based on the plurality of conversations.

15. The system of claim 12, wherein the operations further comprise: providing the conversation as input to an analyzer model that is different than the first Al bot and the second Al bot, the analyzer model being a machine-learning model that is configured to output a metric based on the conversation, the metric being different than the feedback; and generating the feedback based on the metric.

16. The system of claim 12, wherein the operations further comprise: receiving, via the user interface, a selection of the chooser profile by the chooser, the chooser profile being selected from among a group of chooser profiles available for selection in the user interface; and based on receiving the selection, and prior to initiating the conversation, configuring the first Al bot to simulate the chooser by providing an input prompt with data from the chooser profile to the first Al bot.

17. The system of claim 12, wherein the operations further comprise: receiving, via the user interface, a selection of the end-user profile by the chooser, the end-user profile being selected from among a group of end-user profiles available for selection in the user interface; and based on receiving the selection, and prior to initiating the conversation, configuring the second Al bot to simulate the end user by providing an input prompt with data from the end-user profile to the second Al bot.

18. The system of claim 12, wherein the operations further comprise generating the chooser profile based on collected data about the chooser.

19. The system of claim 12, wherein the operations further comprise generating the end-user profile based on collected data about one or more end users, the one or more end users being different than the chooser.

20. A non-transitory computer-readable medium comprising program code that is executable by one or more processors for causing the one or more processors to perform operations including: receiving, via a user interface, a selection of an option from among a group of options by a chooser; configuring, based on a chooser profile associated with the chooser, a first artificial intelligence (Al) bot to simulate the chooser; configuring, based on an end-user profile, a second Al bot to simulate an end user of the option, the end user being different than the chooser; initiating a conversation about option between the first Al bot and the second Al bot; generating feedback about the option based on the conversation; and providing the feedback about the option to the chooser via the user interface.