system
A system using a generative AI model for dependency analysis and selective updates with automated testing and emotional feedback ensures stable and user-friendly software updates.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- SOFTBANK GROUP CORP
- Filing Date
- 2024-12-16
- Publication Date
- 2026-06-26
AI Technical Summary
Existing systems lack automation for efficiently updating software components while maintaining system stability and user experience, particularly in environments where frequent updates are necessary, such as industrial facilities, home environments, and modern information systems, often leading to system instability and degraded user experience due to unanticipated impacts of updates.
A system utilizing a generative artificial intelligence model to analyze dependencies, evaluate the impact of updates, and perform selective updates with automated testing and rollback mechanisms, accompanied by user notification tailored to emotional states.
Enables rapid, secure, and efficient software updates that maintain system stability and enhance user experience by predicting update impacts and providing emotionally considerate notifications.
Smart Images

Figure 2026105470000001_ABST
Abstract
Description
Technical Field
[0001] The technology of the present disclosure relates to a system.
Background Art
[0002] Patent Document 1 discloses a method for controlling a persona chatbot, which is performed by at least one processor and includes steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of a character of the chatbot, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance.
Prior Art Documents
[0006] A "software component" is a constituent unit of a program used to implement a specific function, and includes libraries, modules, packages, and so on.
[0007] "Means for automatically obtaining the latest information" refers to a mechanism for periodically obtaining the latest version information of software components that are publicly available via a network.
[0008] A "means for analyzing dependencies" refers to a function for identifying which elements of software components depend on other elements and for evaluating the impact of those dependencies.
[0009] A "generative artificial intelligence model" is an artificial intelligence model that generates information based on given input and performs inference using data that has been previously learned.
[0010] A "means for performing selective updates" is a process for updating only the necessary software components based on pre-assessed impacts.
[0011] "Means for running tests and recording the results" refers to a function that verifies the functionality and performance of the updated system, checks whether it is working correctly, and saves the results.
[0012] A "rollback mechanism" is a system that restores the system to a previous stable state if problems occur due to an update.
[0013] "Means of notifying users" refers to methods for communicating information to users regarding the update status of software components, test results, and the occurrence of problems. [Brief explanation of the drawing]
[0014] [Figure 1] This is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] This is a conceptual diagram showing an example of the essential functions of a data processing device and a smart device according to the first embodiment. [Figure 3] This is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] This is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] This is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] This is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] This is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] This is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] This shows an emotion map where multiple emotions are mapped. [Figure 10] This shows an emotion map where multiple emotions are mapped. [Figure 11] This is a sequence diagram showing the processing flow of the data processing system in Example 1. [Figure 12] This is a sequence diagram showing the processing flow of the data processing system in Application Example 1. [Figure 13]It is a sequence diagram showing the processing flow of the data processing system in Embodiment 2 when the emotion engine is combined. [Figure 14] It is a sequence diagram showing the processing flow of the data processing system in Application Example 2 when the emotion engine is combined.
Mode for Carrying Out the Invention
[0015] Hereinafter, an example of an embodiment of the system according to the technology of the present disclosure will be described with reference to the accompanying drawings.
[0016] First, the terms used in the following description will be explained.
[0017] In the following embodiments, the numbered processor (hereinafter simply referred to as "processor") may be a single arithmetic unit or a combination of multiple arithmetic units. Also, the processor may be a single type of arithmetic unit or a combination of multiple types of arithmetic units. Examples of arithmetic units include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), an APU (Accelerated Processing Unit), and the like.
[0018] In the following embodiments, the numbered RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a work memory by the processor.
[0019] In the following embodiments, the numbered storage is one or more non-volatile storage devices that store various programs and various parameters, etc. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), or magnetic tapes, etc.
[0020] In the following embodiments, the signed communication interface (I / F) is an interface that includes a communication processor and an antenna, etc. The communication interface manages communication between multiple computers. Examples of communication standards applicable to the communication interface include wireless communication standards such as 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).
[0021] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." That is, "A and / or B" means that it may be A alone, or B alone, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" applies when expressing three or more things linked by "and / or."
[0022] [First Embodiment]
[0023] Figure 1 shows an example of the configuration of the data processing system 10 according to the first embodiment.
[0024] As shown in Figure 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0025] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0026] The smart device 14 comprises a computer 36, a reception device 38, an output device 40, a camera 42, and a communication interface 44. The computer 36 comprises a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The reception device 38, output device 40, and camera 42 are also connected to the bus 52.
[0027] The reception device 38 is equipped with a touch panel 38A and a microphone 38B, etc., and receives user input. The touch panel 38A receives user input by detecting contact with an object (e.g., a pen or finger). The microphone 38B receives user input by detecting the user's voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0028] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form perceptible to the user 20 (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0029] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.
[0030] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0031] As shown in Figure 2, in the data processing device 12, a specific processing is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" related to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0032] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0033] In the smart device 14, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The reception output program 60 is used in conjunction with a specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0034] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0035] In an embodiment of this invention, the following series of processes are performed by the server, terminal, and user.
[0036] First, the server periodically accesses public software repositories on the internet to collect the latest information about the software components it is using. This information includes version numbers, update history, and dependency changes, and is stored in a local database. The server then performs basic filtering and classification to analyze this information.
[0037] Next, the system analyzes the current dependencies within the project based on the latest information received by the terminal. It reads the dependency file, compares the current system state with the latest information obtained from the server, and identifies which software components are updatable. The analysis results include potentially impactful updates and items requiring immediate attention.
[0038] The AI agent receives these analysis results and uses a generative artificial intelligence model to evaluate the impact of the changes in detail. Specifically, it infers how the updates may affect the source code, performing data analysis and inference. This establishes guidelines for the system to continue functioning correctly.
[0039] The server uses a built-in update module to selectively update the software components it deems necessary. After the update is performed, a test script is automatically executed on the terminal. This verifies that the update is compatible with the current system and that it is functioning correctly.
[0040] The tests include unit tests, integration tests, and regression tests, and the terminal records the results of these tests. If a test fails, a rollback mechanism is immediately activated, restoring to a previous stable version.
[0041] Finally, the user is notified of the results of this series of operations. If the update was successful, the user will be able to understand the details, and if it failed or a problem occurred, they will be able to understand the summary and the measures taken.
[0042] As a concrete example, consider a scenario where a terminal manages multiple external libraries used in a project. If the server detects that a critical security patch has been applied to one of these libraries, an AI agent analyzes the impact and takes steps to ensure the terminal safely updates. In this way, rapid and secure system maintenance can be achieved.
[0043] The following describes the processing flow.
[0044] Step 1:
[0045] The server periodically accesses the online repository to obtain the latest information on the software components it is using. This includes using APIs to collect version information, update history, and other data, and saving it to a local database.
[0046] Step 2:
[0047] The terminal reads the dependency files within the project and compares the current software component versions with the latest information obtained from the server. This determines which components can be updated and lists the entries that need updating.
[0048] Step 3:
[0049] Based on the entries listed in Step 2, the AI agent analyzes the impact of the software components scheduled for update on the system. A generative artificial intelligence model is used to evaluate the potential impact of the changes on the source code.
[0050] Step 4:
[0051] Based on the results of the analysis in step 3, the server selectively downloads the software components that it determines require updating and applies them to the local environment. It then applies a dependency resolution algorithm to check for compatibility and necessary dependencies.
[0052] Step 5:
[0053] Automated test scripts are executed on the terminal to verify the stability of the updated system. The tests include unit tests, integration tests, and regression tests, and their results are recorded. A mechanism is included to quickly notify if a test fails.
[0054] Step 6:
[0055] Based on the success or failure of the test, the server uses rollback mechanisms for any components that failed the test, restoring the system to a stable state prior to the update.
[0056] Step 7:
[0057] Users will be notified with detailed reports on the results of updates, the success or failure of tests, and any rollbacks performed if necessary. This allows users to stay informed about the latest status of the system.
[0058] (Example 1)
[0059] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0060] In today's information environment, information components are frequently updated, and new or known security issues often arise. In this environment, automated systems for updating, testing, and notification are required to ensure timely and effective updates of information components and to maintain the continuous operation of systems while maintaining security. Furthermore, there is a challenge in that it is necessary to use generative artificial intelligence technology to predict the impact of updates on the entire system in advance, thereby enabling the rapid implementation of appropriate countermeasures.
[0061] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0062] In this invention, the server includes means for periodically accessing public information sources for information storage devices to collect the latest information on information components, means for analyzing dependencies between information components based on the collected information and evaluating modifications based on that analysis, and means for generating instruction statements and predicting the impact of modifications using generative artificial intelligence technology. This enables stable operation of the entire system while maintaining effective management and security of information components.
[0063] An "information storage device" is a system that has the function of accessing public information sources and collecting and storing data on information components.
[0064] An "information component" is a specific unit of data or program used within a system, and these elements may have interdependent relationships with one another.
[0065] "Dependency" refers to a relationship that exists between multiple information components, indicating a relationship in which one element depends on another.
[0066] "Generative artificial intelligence technology" is a type of artificial intelligence that has the ability to generate natural language and decision-making processes similar to those of humans, based on large amounts of data.
[0067] An "instruction statement" is an explanatory text created using generative artificial intelligence technology to predict and evaluate the flow and impact of a process.
[0068] "Modification" refers to updating or changing information components, and it is an operation that requires evaluation of its impact.
[0069] Embodiments for carrying out this invention are described below.
[0070] The server accesses public information sources via the internet and periodically collects the latest data on information components. The specific software technologies used include HTTP requests and API access, implemented using common programming languages and network protocols. The collected data includes version information, dependencies, and change history, which the server stores in a local database. A relational database management system may be used as the database at this stage.
[0071] The terminal analyzes the dependencies between information components within its own system based on information received from the server. For this purpose, dependency management tools and scripts are used. These tools analyze dependent files through APIs they provide, compare the current system's version status with the latest information from the server, and identify which components can be updated.
[0072] Furthermore, the AI agent uses generative artificial intelligence technology to evaluate the impact of the changes. Specifically, a natural language processing model receives the analysis results and uses prompts such as "Evaluate and report the impact on the entire code when dependencies change" to estimate the scope of the impact.
[0073] The server performs updates to information components deemed necessary. Automation tools are used to ensure a secure and consistent update process, and backup operations are performed during updates to ensure security. After the update is complete, the terminal automatically runs test scripts to verify the impact of the update. Testing includes unit tests, integration tests, and regression tests, each performed using dedicated test frameworks and tools.
[0074] Ultimately, users receive notifications based on the results of these processes, detailing successful updates and the causes and solutions for any failures. Specific examples of such notifications might include messages like, "The latest security patches have been applied, and all tests were successful; therefore, the system is operating securely." This invention automates the management and maintenance of information components, enabling reliable operation.
[0075] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0076] Step 1:
[0077] The server periodically accesses public information sources on the internet to obtain the latest data on information components. The input is access credentials for the public information sources, and the output is version information, dependencies, and change history of the information components. The server downloads this data via HTTP requests and stores it in a local database. During this process, it filters some of the data, retaining only the necessary information.
[0078] Step 2:
[0079] The terminal analyzes the dependencies of information components within its own system based on information received from the server. The input is the latest information list obtained from the server, and the output is a list of updatable information components. The terminal analyzes the dependency file, compares the current system state with the latest information from the server, and determines which components can be updated. The analysis results are obtained using a dependency management tool.
[0080] Step 3:
[0081] The terminal provides analysis results to the AI agent, which uses generative artificial intelligence technology to evaluate the impact of the changes. The input is a list of updatable information components, and the output is an evaluation of the impact of the changes on the entire system and instructions for doing so. The AI agent generates a prompt such as, "Evaluate and report the impact on the entire code if there are changes to dependencies," performs the analysis through its artificial intelligence model, and returns the results.
[0082] Step 4:
[0083] The server updates the information components deemed necessary based on the AI agent's evaluation results. The input is a list of information components to be updated, determined based on the impact assessment, and the output is the state of the updated information components. The server uses automation tools to perform safe and consistent updates and also performs backup operations to verify the safety of the updates.
[0084] Step 5:
[0085] Upon receiving an update completion notification, the device automatically executes a test script to verify the impact of the update. The input is the state of the updated information components, and the output is the test result. Verification is performed using a test framework, including unit tests, integration tests, and regression tests. If a test fails, an automatic rollback is performed, reverting to the previous stable version.
[0086] Step 6:
[0087] The user is notified of the results of a series of processes performed by the system. The input is test results and information on whether the update was successful or not, and the output is a notification message provided to the user. Specific message content may include information such as, "The latest security patches have been applied and all tests were successful, so the system is operating securely," providing the user with a means to confirm reliable system operation.
[0088] (Application Example 1)
[0089] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0090] In modern industrial facilities, the control software for automated machinery needs frequent updates, but doing so without compromising safety and efficiency is challenging. Furthermore, it is essential that the automated machinery continues to operate without unexpected shutdowns during the update process. To address these challenges, a system is needed that enables automatic and safe updates of control software.
[0091] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0092] In this invention, the server includes means for automatically acquiring the latest information on software components, means for analyzing dependencies and evaluating impacts based on the acquired information, and means for collecting update information on control software in multiple automated machinery devices in real time and guiding the update procedures in these automated machinery devices. This enables the continuous operation of automated machinery devices while safely and efficiently updating their control software.
[0093] "Software components" are the basic units, such as individual programs and libraries, that make up a software system.
[0094] "Means for automatically obtaining the latest information" refers to a function that automatically performs the process of obtaining the latest information from the internet or databases.
[0095] "Methods for analyzing dependencies and evaluating impacts" refers to methods that use algorithms to analyze software dependencies and evaluate the impact of changes on the entire system.
[0096] "Means of performing selective updates" refers to procedures for updating part or all of a system as needed.
[0097] "Means for testing the system state after an update and recording the results" refers to the process of testing whether the updated software is functioning correctly and recording the results as data.
[0098] "Means to roll back updates if necessary" refers to procedures for restoring to a previous stable state if problems arise due to an update.
[0099] "Means of notifying users of results" refers to a function that informs users of system update results and other important information.
[0100] "A means of collecting real-time update information on control software in multiple automated machinery and guiding update procedures for these automated machinery" refers to a function that constantly monitors the update status of control software in multiple automated devices and provides timely update instructions.
[0101] The system for implementing this invention consists of a server, a terminal, and a user. The server collects the latest information on software components and performs dependency analysis and impact assessment based on that information. This process utilizes a generative artificial intelligence model using TENSORFLOW®. The server sets up a script implemented in Python as a Cron job and periodically retrieves data from a public software repository. The collected information is converted into a data frame using Pandas and basic analysis is performed using SciKit-Learn.
[0102] The terminal performs selective updates of software components based on analysis results received from the server. During the update process, bidirectional communication is performed using a Flask API, and automated tests are conducted to verify the system state after the update. Upon completion of the update, the terminal automatically runs unit tests, integration tests, and regression tests, and records the results to ensure that the update is compatible with the entire system.
[0103] Users are notified of the results via smartphones or other devices. In particular, they are shown the procedures for rollback if necessary and details of successful updates, enabling proper management. A concrete use case is when updating the software of multiple automated machines deployed on a factory line; this process is used to ensure that each machine is safely updated.
[0104] An example of a prompt statement is, "Analyze the impact of the latest security patch on the robot's positioning algorithm." By inputting this statement into an AI model and analyzing the results, an approach is provided to enable rapid and safe updates to automated machinery in factories.
[0105] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0106] Step 1:
[0107] The server periodically accesses public software repositories on the internet to collect information on the latest software components. Using the repository URL and authentication information via an API as input, it retrieves data in JSON format, including the latest version number, update history, and dependencies. This data is then converted into a DataFrame using Pandas.
[0108] Step 2:
[0109] The server analyzes the collected dataframes and predicts the impact of changes and updates to dependencies. During this process, it performs preprocessing and feature extraction using SciKit-Learn to evaluate the need for updates based on the data. The output generates a list of software components that require updates.
[0110] Step 3:
[0111] The server uses a generative AI model based on TensorFlow to input the prompt "Analyze the impact of the latest security patch on the robot's positioning algorithm" into the collected data and estimate the impact of the change on the entire system. This model utilizes natural language processing techniques to analyze the potential downsides of the update to the system. The output is a detailed impact assessment report.
[0112] Step 4:
[0113] The terminal checks the update information and impact assessment report received from the server and performs selective updates of the relevant software components. During this process, it communicates with the server via Flask to download and extract the update packages. The input requires identification information of the software to be updated, and the output generates a notification regarding the updated state.
[0114] Step 5:
[0115] After the update is complete, the device automatically runs unit tests, integration tests, and regression tests. Test scripts for each step are prepared in advance, and the consistency of the updated content is verified. The test script is executed as input, and a test result log is generated as output.
[0116] Step 6:
[0117] The user receives notifications of the entire update process from their device. This is displayed as an alert via the GUI, indicating whether the update was successful or failed, and suggesting any necessary corrective actions. The output is generated for the user as a notification message.
[0118] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0119] This invention improves system usability and user satisfaction by incorporating an emotion engine that recognizes user emotions, in addition to the software component update process.
[0120] First, the server, like other processes, periodically retrieves the latest information on its software components from an internet repository. This data is stored in a local database and used for later analysis.
[0121] Next, the terminal compares the current dependency list with the latest data collected by the server to identify software components that require updating. Simultaneously, an AI agent uses a generative artificial intelligence model to assess the potential impact of the update on the system. If the impact is significant, it selects a method to perform a partial update.
[0122] Once the update is complete, the terminal runs a pre-configured test script. This script performs a series of tests, including unit tests, integration tests, and regression tests, and the results are recorded. If a test fails, the server uses a rollback mechanism to restore the system to its previous stable state.
[0123] Furthermore, this invention incorporates an emotion engine that dynamically adjusts the content of notifications to users regarding update results or system status according to the user's emotional state. For example, if a user feels concern or dissatisfaction due to an update, the emotion engine can detect this and provide a detailed and reassuring message.
[0124] For example, if updated software components include security improvements and the user's emotional state is somewhat anxious, the user will receive a notification that carefully explains the details of the security measures and their effectiveness to alleviate their anxiety. In this way, by making full use of the emotion engine, it is expected that the user experience will be improved and trust in the system will increase.
[0125] The following describes the processing flow.
[0126] Step 1:
[0127] The server accesses software repositories on the internet and retrieves the latest information on the software components it is using via an API. This information, including the latest version number, update details, and other metadata, is stored in a local database.
[0128] Step 2:
[0129] The terminal analyzes the project's dependency files and compares them with the latest information obtained from the server. This creates a list of software components that need updating. The analysis allows you to see all the libraries you are directly using and their underlying dependencies.
[0130] Step 3:
[0131] The AI agent uses a generative artificial intelligence model to evaluate the impact of the updates identified in Step 2 on the entire system. For areas where impact is predicted, it recommends the optimal update method to avoid risks and dependency breakdowns caused by the changes.
[0132] Step 4:
[0133] Based on the analysis results from step 3, the server performs selective updates. It updates necessary software components and implements version control of dependencies to maintain system integrity.
[0134] Step 5:
[0135] After a device is updated, fully automated tests are performed. A series of test scripts, including unit tests, integration tests, and regression tests, are executed to monitor for any abnormalities in the system's operation. Test results are recorded in a database.
[0136] Step 6:
[0137] Based on the test results, the server will use rollback mechanisms as needed to restore the system to a stable state. If the test fails, this mechanism will be executed quickly.
[0138] Step 7:
[0139] The emotion engine recognizes the user's emotional state and adjusts how test results and updates are communicated to the user. This engine analyzes user responses and includes reassuring messages and additional information as needed.
[0140] Step 8:
[0141] Users receive notifications and understand the update results and system status. Thanks to an emotion engine, notifications are tailored to the user's emotions.
[0142] (Example 2)
[0143] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0144] The problem that this invention aims to solve is to accurately evaluate the complexity of dependencies and the impact of updates on the system during the software system update process, and to appropriately provide information that takes into account the user's emotional state as needed. Conventional update systems have suffered from problems such as system instability being compromised and user experience degrading due to overlooking dependencies or insufficient prediction of the impact of updates.
[0145] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0146] In this invention, the server includes means for an information processing device to automatically acquire component information from information resources, means for storing the acquired information in a storage means and analyzing its dependencies, and means for evaluating the impact based on the analysis results using a generative artificial intelligence model. This enables the system to accurately determine the need for updates and evaluate potential impacts in advance. Furthermore, by having an emotion analysis function and providing information that is considerate of the user, the user experience can be improved.
[0147] An "information processing device" is a device that has the function of receiving, storing, and analyzing data, and automatically performing processing based on that data.
[0148] "Information resources" refer to external repositories and databases that provide information about data and software components that exist on the internet.
[0149] "Component information" refers to a collection of data that includes version information and dependency information about individual software components that make up a software system.
[0150] "Memory means" refers to data storage or memory used for the purpose of saving acquired information for later use.
[0151] "Dependency" refers to a relationship where certain software components cannot function without other components or libraries.
[0152] A "generative artificial intelligence model" refers to a machine learning model that learns using a vast dataset and can make predictions and generate new data based on it.
[0153] "Emotion analysis function" refers to an algorithm or system that estimates emotions from input data in order to evaluate the user's emotional state.
[0154] "User experience" refers to the overall satisfaction and quality of the experience that users gain while using a system.
[0155] This invention provides a system for efficiently managing the components of a software system and optimizing the update process. The system mainly consists of servers, terminals, and users.
[0156] The server automatically retrieves software component information from information resources on the internet. In this process, the server uses the HTTP protocol to collect data from public repositories (e.g., Git repositories) and stores it in local storage. This allows the system state to be kept constantly up-to-date.
[0157] The terminal uses standard analysis software and scripts (e.g., Python scripts) to parse component information sent from the server and to check dependencies based on the acquired information. Here, a generative artificial intelligence model is used to evaluate the information and predict the impact of software component updates. This model is trained using machine learning libraries and runs locally on the terminal. During this process, the AI model can be instructed using prompts such as "What impact will the update have on performance?"
[0158] Next, the terminal performs a selective update, followed by a series of tests using pre-configured test scripts for unit, integration, and regression evaluations. If the tests are successful, the new state is maintained; if they fail, the server rolls back to a previous stable state.
[0159] Finally, the user receives notifications about the update results and potential impacts via a device equipped with sentiment analysis capabilities. This function uses a generative artificial intelligence model to assess the user's emotional state and provide appropriate information. For example, by using a prompt such as, "If the user is feeling anxious about the system update, generate a detailed explanation to alleviate that anxiety," it is possible to dynamically provide information that reassures the user.
[0160] Thus, the present invention improves the efficiency and reliability of the software update process and significantly enhances the user experience.
[0161] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0162] Step 1:
[0163] The server retrieves software component information from information resources on the internet. Here, the server uses the HTTP protocol to call an API and retrieve the latest component information from the information resources. The retrieved data includes component versions and metadata and is stored in JSON format on local storage. This process allows the server to understand the latest software state.
[0164] Step 2:
[0165] The terminal analyzes the component information sent from the server. The terminal reads locally stored information and uses dependency analysis software to compare the current software environment with the latest information obtained. This comparison identifies which components require updates, and the results are output as a list. It also sends prompts to a generative artificial intelligence model to evaluate the potential impact of each update on the system. For example, it might use a prompt such as, "How will this affect the system's response time?"
[0166] Step 3:
[0167] The terminal performs selective updates of software components based on the analysis results. Specifically, the terminal downloads and installs new versions of the specified components. This update process is automated by a script, and if successful, the new state is recorded in the local database. The terminal can also minimize the impact by choosing partial updates.
[0168] Step 4:
[0169] After the update, the terminal automatically executes the configured test script. The tests include unit evaluation, integration evaluation, and regression evaluation to verify software stability. The results of each test are output to a log file and used for re-evaluation. If a test fails, the terminal sends the results to the server after the test to notify that a rollback is necessary.
[0170] Step 5:
[0171] The user receives notifications based on sentiment analysis. The device uses a generative artificial intelligence model to determine the user's emotional state and generate appropriate notification content. For example, if the user is feeling anxious about an update, a notification such as "This update enhances security" is sent to reassure them. The notification content is dynamically adjusted based on the system state and the impact of the update.
[0172] (Application Example 2)
[0173] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as a "server" and the smart device 14 as a "terminal".
[0174] In modern home environments, there is a demand for information provision and environmental adjustments that are tailored to the emotions and needs of individual residents. However, conventional systems struggle to dynamically consider and respond to users' emotions. As a result, users may feel anxious when information is updated, or home systems may not function properly. The challenge is to solve this problem and improve the user experience.
[0175] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for automatically acquiring the latest information on software components, means for analyzing dependencies and evaluating their impact, means for recognizing the user's emotions and dynamically adjusting notification content, and means for adjusting the home environment based on the family's emotions. This makes it possible to provide flexible and reassuring information that responds to the emotions of the residents.
[0176] "Software components" refer to individual elements in a computer system, such as programs, libraries, and configuration files, and are fundamental units necessary to realize a specific function.
[0177] "Dependency" refers to a relationship that shows the interdependence between software components, and describes a state in which one component depends on another.
[0178] "Means of assessing impact" refers to a method or process for analyzing and evaluating the scope and degree of the impact that a particular update or change has on the entire system.
[0179] "Means for dynamically adjusting notification content" refers to technologies that change and optimize messages and information sent from the system in real time according to the user's emotions and circumstances.
[0180] "Means of adjusting the home environment" refers to the process of adjusting the physical and sensory environment of the home, such as sound, lighting, and temperature, based on the emotional state of the residents.
[0181] In this invention, the server first periodically obtains the latest information on software components via the internet and stores it in a local database. Based on the stored information, the server analyzes dependencies and evaluates the impact on the system. In this process, a generative AI model can be used to predict potential impacts. For example, this can be used to evaluate the impact of a specific software update on system stability.
[0182] The terminal selects the necessary software updates based on the latest information provided by the server. After the updates are complete, the terminal runs test scripts to verify the new system state. This process includes unit tests, integration tests, and regression tests. If the test results are unsuccessful, the server rolls the system back to its previous stable state.
[0183] Furthermore, this invention incorporates an emotion engine that analyzes the user's emotions in real time. For example, if the user is feeling anxious about an update, the emotion engine will detect that emotion and provide a detailed explanation and a reassuring message. If the user is feeling stressed at home, the robot can speak to them gently or adjust the home environment by changing the lighting to a warmer color.
[0184] For example, if a family feels tired after dinner, the robot could play calming music and speak to them in a relaxing voice. In this way, a comfortable and harmonious home environment tailored to the residents' emotions and needs is created.
[0185] Examples of prompts for the generating AI model include: "If a family member is feeling stressed, please provide advice on how a home robot should provide reassurance. Please also provide examples of voice messages the robot could use."
[0186] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0187] Step 1:
[0188] The server retrieves the latest information on software components from the internet. The input is data from a repository, and the output is update information stored in a local database. This allows the server to maintain the most up-to-date software version information.
[0189] Step 2:
[0190] The server analyzes the information stored in the local database and evaluates dependencies. The input is the stored update information, and the output is a list of system components affected by it. This allows the server to understand the impact of the update on the entire system.
[0191] Step 3:
[0192] The terminal receives data provided by the server and identifies software components that need updating. Here, a generative AI model is used to evaluate the potential impact of the update. The input is a list of dependencies, and the output is the identification of the software to be updated and the results of the impact evaluation.
[0193] Step 4:
[0194] The terminal executes the selected update, changing the system to the new state. The input is the software to be updated, and the output is the updated system state. This step also applies a test script to verify system stability.
[0195] Step 5:
[0196] The terminal executes test scripts to verify the accuracy of the new system state. This includes unit tests, integration tests, and regression tests. The input is the updated system, and the output is the test result. The success or failure of the test determines the next step.
[0197] Step 6:
[0198] If the test fails, the server rolls the system back to its previous stable state. The input is the failed test result, and the output is the restored system state. This ensures stable system operation.
[0199] Step 7:
[0200] The user receives the update results, the emotion engine analyzes the emotion, and dynamically adjusts the notification content. The input is the user's emotion data, and the output is the adjusted message. This process includes explanations to provide reassurance.
[0201] Step 8:
[0202] The emotion engine adjusts the environment according to the emotions of the household residents. The input is emotion evaluation data, and the output is the adjusted home environment (e.g., music selection and lighting color). This step creates a more relaxed home environment.
[0203] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0204] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0205] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart device 14.
[0206] [Second Embodiment]
[0207] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0208] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0209] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0210] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.
[0211] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0212] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0213] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0214] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0215] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0216] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0217] In the smart glasses 214, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0218] Next, the identification processing performed by the identification processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0219] In an embodiment of this invention, the following series of processes are performed by the server, terminal, and user.
[0220] First, the server periodically accesses public software repositories on the internet to collect the latest information about the software components it is using. This information includes version numbers, update history, and dependency changes, and is stored in a local database. The server then performs basic filtering and classification to analyze this information.
[0221] Next, the system analyzes the current dependencies within the project based on the latest information received by the terminal. It reads the dependency file, compares the current system state with the latest information obtained from the server, and identifies which software components are updatable. The analysis results include potentially impactful updates and items requiring immediate attention.
[0222] The AI agent receives these analysis results and uses a generative artificial intelligence model to evaluate the impact of the changes in detail. Specifically, it infers how the updates may affect the source code, performing data analysis and inference. This establishes guidelines for the system to continue functioning correctly.
[0223] The server uses a built-in update module to selectively update the software components it deems necessary. After the update is performed, a test script is automatically executed on the terminal. This verifies that the update is compatible with the current system and that it is functioning correctly.
[0224] The tests include unit tests, integration tests, and regression tests, and the terminal records the results of these tests. If a test fails, a rollback mechanism is immediately activated, restoring to a previous stable version.
[0225] Finally, the user is notified of the results of this series of operations. If the update was successful, the user will be able to understand the details, and if it failed or a problem occurred, they will be able to understand the summary and the measures taken.
[0226] As a concrete example, consider a scenario where a terminal manages multiple external libraries used in a project. If the server detects that a critical security patch has been applied to one of these libraries, an AI agent analyzes the impact and takes steps to ensure the terminal safely updates. In this way, rapid and secure system maintenance can be achieved.
[0227] The following describes the processing flow.
[0228] Step 1:
[0229] The server periodically accesses the online repository to obtain the latest information on the software components it is using. This includes using APIs to collect version information, update history, and other data, and saving it to a local database.
[0230] Step 2:
[0231] The terminal reads the dependency files within the project and compares the current software component versions with the latest information obtained from the server. This determines which components can be updated and lists the entries that need updating.
[0232] Step 3:
[0233] Based on the entries listed in Step 2, the AI agent analyzes the impact of the software components scheduled for update on the system. A generative artificial intelligence model is used to evaluate the potential impact of the changes on the source code.
[0234] Step 4:
[0235] Based on the results of the analysis in step 3, the server selectively downloads the software components that it determines require updating and applies them to the local environment. It then applies a dependency resolution algorithm to check for compatibility and necessary dependencies.
[0236] Step 5:
[0237] Automated test scripts are executed on the terminal to verify the stability of the updated system. The tests include unit tests, integration tests, and regression tests, and their results are recorded. A mechanism is included to quickly notify if a test fails.
[0238] Step 6:
[0239] Based on the success or failure of the test, the server uses rollback mechanisms for any components that failed the test, restoring the system to a stable state prior to the update.
[0240] Step 7:
[0241] Users will be notified with detailed reports on the results of updates, the success or failure of tests, and any rollbacks performed if necessary. This allows users to stay informed about the latest status of the system.
[0242] (Example 1)
[0243] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0244] In today's information environment, information components are frequently updated, and new or known security issues often arise. In this environment, automated systems for updating, testing, and notification are required to ensure timely and effective updates of information components and to maintain the continuous operation of systems while maintaining security. Furthermore, there is a challenge in that it is necessary to use generative artificial intelligence technology to predict the impact of updates on the entire system in advance, thereby enabling the rapid implementation of appropriate countermeasures.
[0245] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0246] In this invention, the server includes means for periodically accessing public information sources for information storage devices to collect the latest information on information components, means for analyzing dependencies between information components based on the collected information and evaluating modifications based on that analysis, and means for generating instruction statements and predicting the impact of modifications using generative artificial intelligence technology. This enables stable operation of the entire system while maintaining effective management and security of information components.
[0247] An "information storage device" is a system that has the function of accessing public information sources and collecting and storing data on information components.
[0248] An "information component" is a specific unit of data or program used within a system, and these elements may have interdependent relationships with one another.
[0249] "Dependency" refers to a relationship that exists between multiple information components, indicating a relationship in which one element depends on another.
[0250] "Generative artificial intelligence technology" is a type of artificial intelligence that has the ability to generate natural language and decision-making processes similar to those of humans, based on large amounts of data.
[0251] An "instruction statement" is an explanatory text created using generative artificial intelligence technology to predict and evaluate the flow and impact of a process.
[0252] "Modification" refers to updating or changing information components, and it is an operation that requires evaluation of its impact.
[0253] Embodiments for carrying out this invention are described below.
[0254] The server accesses public information sources via the internet and periodically collects the latest data on information components. The specific software technologies used include HTTP requests and API access, implemented using common programming languages and network protocols. The collected data includes version information, dependencies, and change history, which the server stores in a local database. A relational database management system may be used as the database at this stage.
[0255] The terminal analyzes the dependencies between information components within its own system based on information received from the server. For this purpose, dependency management tools and scripts are used. These tools analyze dependent files through APIs they provide, compare the current system's version status with the latest information from the server, and identify which components can be updated.
[0256] Furthermore, the AI agent uses generative artificial intelligence technology to evaluate the impact of the changes. Specifically, a natural language processing model receives the analysis results and uses prompts such as "Evaluate and report the impact on the entire code when dependencies change" to estimate the scope of the impact.
[0257] The server performs updates to information components deemed necessary. Automation tools are used to ensure a secure and consistent update process, and backup operations are performed during updates to ensure security. After the update is complete, the terminal automatically runs test scripts to verify the impact of the update. Testing includes unit tests, integration tests, and regression tests, each performed using dedicated test frameworks and tools.
[0258] Ultimately, users receive notifications based on the results of these processes, detailing successful updates and the causes and solutions for any failures. Specific examples of such notifications might include messages like, "The latest security patches have been applied, and all tests were successful; therefore, the system is operating securely." This invention automates the management and maintenance of information components, enabling reliable operation.
[0259] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0260] Step 1:
[0261] The server periodically accesses public information sources on the internet to obtain the latest data on information components. The input is access credentials for the public information sources, and the output is version information, dependencies, and change history of the information components. The server downloads this data via HTTP requests and stores it in a local database. During this process, it filters some of the data, retaining only the necessary information.
[0262] Step 2:
[0263] The terminal analyzes the dependencies of information components within its own system based on information received from the server. The input is the latest information list obtained from the server, and the output is a list of updatable information components. The terminal analyzes the dependency file, compares the current system state with the latest information from the server, and determines which components can be updated. The analysis results are obtained using a dependency management tool.
[0264] Step 3:
[0265] The terminal provides analysis results to the AI agent, which uses generative artificial intelligence technology to evaluate the impact of the changes. The input is a list of updatable information components, and the output is an evaluation of the impact of the changes on the entire system and instructions for doing so. The AI agent generates a prompt such as, "Evaluate and report the impact on the entire code if there are changes to dependencies," performs the analysis through its artificial intelligence model, and returns the results.
[0266] Step 4:
[0267] The server updates the information components deemed necessary based on the AI agent's evaluation results. The input is a list of information components to be updated, determined based on the impact assessment, and the output is the state of the updated information components. The server uses automation tools to perform safe and consistent updates and also performs backup operations to verify the safety of the updates.
[0268] Step 5:
[0269] Upon receiving an update completion notification, the device automatically executes a test script to verify the impact of the update. The input is the state of the updated information components, and the output is the test result. Verification is performed using a test framework, including unit tests, integration tests, and regression tests. If a test fails, an automatic rollback is performed, reverting to the previous stable version.
[0270] Step 6:
[0271] The user is notified of the results of a series of processes performed by the system. The input is test results and information on whether the update was successful or not, and the output is a notification message provided to the user. Specific message content may include information such as, "The latest security patches have been applied and all tests were successful, so the system is operating securely," providing the user with a means to confirm reliable system operation.
[0272] (Application Example 1)
[0273] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0274] In modern industrial facilities, the control software for automated machinery needs frequent updates, but doing so without compromising safety and efficiency is challenging. Furthermore, it is essential that the automated machinery continues to operate without unexpected shutdowns during the update process. To address these challenges, a system is needed that enables automatic and safe updates of control software.
[0275] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0276] In this invention, the server includes means for automatically acquiring the latest information on software components, means for analyzing dependencies and evaluating impacts based on the acquired information, and means for collecting update information on control software in multiple automated machinery devices in real time and guiding the update procedures in these automated machinery devices. This enables the continuous operation of automated machinery devices while safely and efficiently updating their control software.
[0277] "Software components" are the basic units, such as individual programs and libraries, that make up a software system.
[0278] "Means for automatically obtaining the latest information" refers to a function that automatically performs the process of obtaining the latest information from the internet or databases.
[0279] "Methods for analyzing dependencies and evaluating impacts" refers to methods that use algorithms to analyze software dependencies and evaluate the impact of changes on the entire system.
[0280] The means for performing selective updates is a procedure for updating part or all of the system as needed.
[0281] The means for testing the state of the system after update and recording the results is a process of testing whether the updated software operates properly and recording the results as data.
[0282] The means for rolling back updates as needed is a procedure for returning to the previous stable state in case problems occur due to the update.
[0283] The means for notifying the user of the results is a function for informing the user of the system update results and other important information.
[0284] The means for collecting in real time the update information of control software in multiple automated devices and guiding the update procedures in these automated devices is a function for constantly grasping the update status of control software in multiple automated devices and indicating the update procedures in a timely manner.
[0285] The system for implementing this invention consists of a server, terminals, and users. The server collects the latest information on software components, analyzes the dependencies and evaluates the impacts based on this information. A generative artificial intelligence model using TensorFlow is utilized for this processing. The server sets a script implemented using Python as a Cron job and periodically obtains data from a public software repository. The collected information is framed into a data frame using Pandas and basic analysis is performed using SciKit-Learn.
[0286] Based on the analysis results received from the server, the terminal performs selective updates of software components. During the update process, two-way communication is carried out through an API using Flask, and an automated test is conducted to check the system state after the update. When the update is completed, the terminal automatically executes unit tests, integration tests, and regression tests and records the results to ensure that the update is compatible with the entire system.
[0287] The user is notified of the results through a smartphone or other device. In particular, the procedures in case of rollback and the details of successful updates are shown, enabling appropriate management. As a specific usage example, assume a situation where the software of multiple automated machines arranged on a factory line is updated, and each device is safely updated using this process.
[0288] An example of a prompt sentence is "Analyze the impact of the latest security patch on the robot's positioning algorithm". By inputting this sentence into an AI model and analyzing the results, an approach is provided for the update of automated machines in the factory to be carried out quickly and safely.
[0289] The flow of the specific process in Application Example 1 will be described using FIG. 12.
[0290] Step 1:
[0291] The server periodically accesses a public software repository on the Internet to collect information on the latest software components. As this input, the URL of the repository and authentication information are used through an API, and data including the latest version number, update history, and dependencies is obtained in JSON format. The data is converted into a data frame using Pandas.
[0292] Step 2:
[0293] The server analyzes the collected dataframes and predicts the impact of changes and updates to dependencies. During this process, it performs preprocessing and feature extraction using SciKit-Learn to evaluate the need for updates based on the data. The output generates a list of software components that require updates.
[0294] Step 3:
[0295] The server uses a generative AI model based on TensorFlow to input the prompt "Analyze the impact of the latest security patch on the robot's positioning algorithm" into the collected data and estimate the impact of the change on the entire system. This model utilizes natural language processing techniques to analyze the potential downsides of the update to the system. The output is a detailed impact assessment report.
[0296] Step 4:
[0297] The terminal checks the update information and impact assessment report received from the server and performs selective updates of the relevant software components. During this process, it communicates with the server via Flask to download and extract the update packages. The input requires identification information of the software to be updated, and the output generates a notification regarding the updated state.
[0298] Step 5:
[0299] After the update is complete, the device automatically runs unit tests, integration tests, and regression tests. Test scripts for each step are prepared in advance, and the consistency of the updated content is verified. The test script is executed as input, and a test result log is generated as output.
[0300] Step 6:
[0301] The user receives notifications of the entire update process from their device. This is displayed as an alert via the GUI, indicating whether the update was successful or failed, and suggesting any necessary corrective actions. The output is generated for the user as a notification message.
[0302] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0303] This invention improves system usability and user satisfaction by incorporating an emotion engine that recognizes user emotions, in addition to the software component update process.
[0304] First, the server, like other processes, periodically retrieves the latest information on its software components from an internet repository. This data is stored in a local database and used for later analysis.
[0305] Next, the terminal compares the current dependency list with the latest data collected by the server to identify software components that require updating. Simultaneously, an AI agent uses a generative artificial intelligence model to assess the potential impact of the update on the system. If the impact is significant, it selects a method to perform a partial update.
[0306] Once the update is complete, the terminal runs a pre-configured test script. This script performs a series of tests, including unit tests, integration tests, and regression tests, and the results are recorded. If a test fails, the server uses a rollback mechanism to restore the system to its previous stable state.
[0307] Furthermore, the present invention has an emotion engine, and when the system notifies the user of the update result and the state of the system, the notification content is dynamically adjusted according to the user's emotional state. As a specific example, when the user feels concern or dissatisfaction due to a certain update, the emotion engine can detect it and provide a detailed and reassuring message.
[0308] As a specific example, if the updated software component includes security improvements and the user's emotional state is anxiety-prone, the user receives a notification that carefully explains the details of the security measures and the improvement effects to relieve the anxiety. By making full use of the emotion engine in this way, it is expected to improve the user experience and increase the reliability of the system.
[0309] The following describes the processing flow.
[0310] Step 1:
[0311] The server accesses the software repository on the Internet and obtains the latest information of the software components in use via the API. This information includes the latest version number, update content, and other metadata, and is stored in the local database.
[0312] Step 2:
[0313] The terminal analyzes the project's dependency files and compares them with the latest information obtained by the server. Thereby, a list of software components that need to be updated is created. By the analysis, all the directly used libraries and their subordinate dependencies can be confirmed.
[0314] Step 3:
[0315] The AI agent uses a generative artificial intelligence model to evaluate the impact of the updates identified in Step 2 on the entire system. For areas where impact is predicted, it recommends the optimal update method to avoid risks and dependency breakdowns caused by the changes.
[0316] Step 4:
[0317] Based on the analysis results from step 3, the server performs selective updates. It updates necessary software components and implements version control of dependencies to maintain system integrity.
[0318] Step 5:
[0319] After a device is updated, fully automated tests are performed. A series of test scripts, including unit tests, integration tests, and regression tests, are executed to monitor for any abnormalities in the system's operation. Test results are recorded in a database.
[0320] Step 6:
[0321] Based on the test results, the server will use rollback mechanisms as needed to restore the system to a stable state. If the test fails, this mechanism will be executed quickly.
[0322] Step 7:
[0323] The emotion engine recognizes the user's emotional state and adjusts how test results and updates are communicated to the user. This engine analyzes user responses and includes reassuring messages and additional information as needed.
[0324] Step 8:
[0325] Users receive notifications and understand the update results and system status. Thanks to an emotion engine, notifications are tailored to the user's emotions.
[0326] (Example 2)
[0327] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0328] The problem that this invention aims to solve is to accurately evaluate the complexity of dependencies and the impact of updates on the system during the software system update process, and to appropriately provide information that takes into account the user's emotional state as needed. Conventional update systems have suffered from problems such as system instability being compromised and user experience degrading due to overlooking dependencies or insufficient prediction of the impact of updates.
[0329] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0330] In this invention, the server includes means for an information processing device to automatically acquire component information from information resources, means for storing the acquired information in a storage means and analyzing its dependencies, and means for evaluating the impact based on the analysis results using a generative artificial intelligence model. This enables the system to accurately determine the need for updates and evaluate potential impacts in advance. Furthermore, by having an emotion analysis function and providing information that is considerate of the user, the user experience can be improved.
[0331] An "information processing device" is a device that has the function of receiving, storing, and analyzing data, and automatically performing processing based on that data.
[0332] "Information resources" refer to external repositories and databases that provide information about data and software components that exist on the internet.
[0333] "Component information" refers to a collection of data that includes version information and dependency information about individual software components that make up a software system.
[0334] "Memory means" refers to data storage or memory used for the purpose of saving acquired information for later use.
[0335] "Dependency" refers to a relationship where certain software components cannot function without other components or libraries.
[0336] A "generative artificial intelligence model" refers to a machine learning model that learns using a vast dataset and can make predictions and generate new data based on it.
[0337] "Emotion analysis function" refers to an algorithm or system that estimates emotions from input data in order to evaluate the user's emotional state.
[0338] "User experience" refers to the overall satisfaction and quality of the experience that users gain while using a system.
[0339] This invention provides a system for efficiently managing the components of a software system and optimizing the update process. The system mainly consists of servers, terminals, and users.
[0340] The server automatically retrieves software component information from information resources on the internet. In this process, the server uses the HTTP protocol to collect data from public repositories (e.g., Git repositories) and stores it in local storage. This allows the system state to be kept constantly up-to-date.
[0341] The terminal uses standard analysis software and scripts (e.g., Python scripts) to parse component information sent from the server and to check dependencies based on the acquired information. Here, a generative artificial intelligence model is used to evaluate the information and predict the impact of software component updates. This model is trained using machine learning libraries and runs locally on the terminal. During this process, the AI model can be instructed using prompts such as "What impact will the update have on performance?"
[0342] Next, the terminal performs a selective update, followed by a series of tests using pre-configured test scripts for unit, integration, and regression evaluations. If the tests are successful, the new state is maintained; if they fail, the server rolls back to a previous stable state.
[0343] Finally, the user receives notifications about the update results and potential impacts via a device equipped with sentiment analysis capabilities. This function uses a generative artificial intelligence model to assess the user's emotional state and provide appropriate information. For example, by using a prompt such as, "If the user is feeling anxious about the system update, generate a detailed explanation to alleviate that anxiety," it is possible to dynamically provide information that reassures the user.
[0344] Thus, the present invention improves the efficiency and reliability of the software update process and significantly enhances the user experience.
[0345] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0346] Step 1:
[0347] The server retrieves software component information from information resources on the internet. Here, the server uses the HTTP protocol to call an API and retrieve the latest component information from the information resources. The retrieved data includes component versions and metadata and is stored in JSON format on local storage. This process allows the server to understand the latest software state.
[0348] Step 2:
[0349] The terminal analyzes the component information sent from the server. The terminal reads locally stored information and uses dependency analysis software to compare the current software environment with the latest information obtained. This comparison identifies which components require updates, and the results are output as a list. It also sends prompts to a generative artificial intelligence model to evaluate the potential impact of each update on the system. For example, it might use a prompt such as, "How will this affect the system's response time?"
[0350] Step 3:
[0351] The terminal performs selective updates of software components based on the analysis results. Specifically, the terminal downloads and installs new versions of the specified components. This update process is automated by a script, and if successful, the new state is recorded in the local database. The terminal can also minimize the impact by choosing partial updates.
[0352] Step 4:
[0353] After the update, the terminal automatically executes the configured test script. The tests include unit evaluation, integration evaluation, and regression evaluation to verify software stability. The results of each test are output to a log file and used for re-evaluation. If a test fails, the terminal sends the results to the server after the test to notify that a rollback is necessary.
[0354] Step 5:
[0355] The user receives notifications based on sentiment analysis. The device uses a generative artificial intelligence model to determine the user's emotional state and generate appropriate notification content. For example, if the user is feeling anxious about an update, a notification such as "This update enhances security" is sent to reassure them. The notification content is dynamically adjusted based on the system state and the impact of the update.
[0356] (Application Example 2)
[0357] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0358] In modern home environments, there is a demand for information provision and environmental adjustments that are tailored to the emotions and needs of individual residents. However, conventional systems struggle to dynamically consider and respond to users' emotions. As a result, users may feel anxious when information is updated, or home systems may not function properly. The challenge is to solve this problem and improve the user experience.
[0359] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for automatically acquiring the latest information on software components, means for analyzing dependencies and evaluating their impact, means for recognizing the user's emotions and dynamically adjusting notification content, and means for adjusting the home environment based on the family's emotions. This makes it possible to provide flexible and reassuring information that responds to the emotions of the residents.
[0360] "Software components" refer to individual elements in a computer system, such as programs, libraries, and configuration files, and are fundamental units necessary to realize a specific function.
[0361] "Dependency" refers to a relationship that shows the interdependence between software components, and describes a state in which one component depends on another.
[0362] "Means of assessing impact" refers to a method or process for analyzing and evaluating the scope and degree of the impact that a particular update or change has on the entire system.
[0363] "Means for dynamically adjusting notification content" refers to technologies that change and optimize messages and information sent from the system in real time according to the user's emotions and circumstances.
[0364] "Means of adjusting the home environment" refers to the process of adjusting the physical and sensory environment of the home, such as sound, lighting, and temperature, based on the emotional state of the residents.
[0365] In this invention, the server first periodically obtains the latest information on software components via the internet and stores it in a local database. Based on the stored information, the server analyzes dependencies and evaluates the impact on the system. In this process, a generative AI model can be used to predict potential impacts. For example, this can be used to evaluate the impact of a specific software update on system stability.
[0366] The terminal selects the necessary software updates based on the latest information provided by the server. After the updates are complete, the terminal runs test scripts to verify the new system state. This process includes unit tests, integration tests, and regression tests. If the test results are unsuccessful, the server rolls the system back to its previous stable state.
[0367] Furthermore, this invention incorporates an emotion engine that analyzes the user's emotions in real time. For example, if the user is feeling anxious about an update, the emotion engine will detect that emotion and provide a detailed explanation and a reassuring message. If the user is feeling stressed at home, the robot can speak to them gently or adjust the home environment by changing the lighting to a warmer color.
[0368] For example, if a family feels tired after dinner, the robot could play calming music and speak to them in a relaxing voice. In this way, a comfortable and harmonious home environment tailored to the residents' emotions and needs is created.
[0369] Examples of prompts for the generating AI model include: "If a family member is feeling stressed, please provide advice on how a home robot should provide reassurance. Please also provide examples of voice messages the robot could use."
[0370] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0371] Step 1:
[0372] The server retrieves the latest information on software components from the internet. The input is data from a repository, and the output is update information stored in a local database. This allows the server to maintain the most up-to-date software version information.
[0373] Step 2:
[0374] The server analyzes the information stored in the local database and evaluates dependencies. The input is the stored update information, and the output is a list of system components affected by it. This allows the server to understand the impact of the update on the entire system.
[0375] Step 3:
[0376] The terminal receives data provided by the server and identifies software components that need updating. Here, a generative AI model is used to evaluate the potential impact of the update. The input is a list of dependencies, and the output is the identification of the software to be updated and the results of the impact evaluation.
[0377] Step 4:
[0378] The terminal executes the selected update, changing the system to the new state. The input is the software to be updated, and the output is the updated system state. This step also applies a test script to verify system stability.
[0379] Step 5:
[0380] The terminal executes test scripts to verify the accuracy of the new system state. This includes unit tests, integration tests, and regression tests. The input is the updated system, and the output is the test result. The success or failure of the test determines the next step.
[0381] Step 6:
[0382] If the test fails, the server rolls the system back to its previous stable state. The input is the failed test result, and the output is the restored system state. This ensures stable system operation.
[0383] Step 7:
[0384] The user receives the update results, the emotion engine analyzes the emotion, and dynamically adjusts the notification content. The input is the user's emotion data, and the output is the adjusted message. This process includes explanations to provide reassurance.
[0385] Step 8:
[0386] The emotion engine adjusts the environment according to the emotions of the household residents. The input is emotion evaluation data, and the output is the adjusted home environment (e.g., music selection and lighting color). This step creates a more relaxed home environment.
[0387] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0388] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0389] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart glasses 214.
[0390] [Third Embodiment]
[0391] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0392] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0393] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0394] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.
[0395] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0396] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0397] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0398] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0399] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0400] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0401] In the headset terminal 314, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0402] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the headset terminal 314 will be referred to as the "terminal".
[0403] In an embodiment of this invention, the following series of processes are performed by the server, terminal, and user.
[0404] First, the server periodically accesses public software repositories on the internet to collect the latest information about the software components it is using. This information includes version numbers, update history, and dependency changes, and is stored in a local database. The server then performs basic filtering and classification to analyze this information.
[0405] Next, the system analyzes the current dependencies within the project based on the latest information received by the terminal. It reads the dependency file, compares the current system state with the latest information obtained from the server, and identifies which software components are updatable. The analysis results include potentially impactful updates and items requiring immediate attention.
[0406] The AI agent receives these analysis results and uses a generative artificial intelligence model to evaluate the impact of the changes in detail. Specifically, it infers how the updates may affect the source code, performing data analysis and inference. This establishes guidelines for the system to continue functioning correctly.
[0407] The server uses a built-in update module to selectively update the software components it deems necessary. After the update is performed, a test script is automatically executed on the terminal. This verifies that the update is compatible with the current system and that it is functioning correctly.
[0408] The tests include unit tests, integration tests, and regression tests, and the terminal records the results of these tests. If a test fails, a rollback mechanism is immediately activated, restoring to a previous stable version.
[0409] Finally, the user is notified of the results of this series of operations. If the update was successful, the user will be able to understand the details, and if it failed or a problem occurred, they will be able to understand the summary and the measures taken.
[0410] As a concrete example, consider a scenario where a terminal manages multiple external libraries used in a project. If the server detects that a critical security patch has been applied to one of these libraries, an AI agent analyzes the impact and takes steps to ensure the terminal safely updates. In this way, rapid and secure system maintenance can be achieved.
[0411] The following describes the processing flow.
[0412] Step 1:
[0413] The server periodically accesses the online repository to obtain the latest information on the software components it is using. This includes using APIs to collect version information, update history, and other data, and saving it to a local database.
[0414] Step 2:
[0415] The terminal reads the dependency files within the project and compares the current software component versions with the latest information obtained from the server. This determines which components can be updated and lists the entries that need updating.
[0416] Step 3:
[0417] Based on the entries listed in Step 2, the AI agent analyzes the impact of the software components scheduled for update on the system. A generative artificial intelligence model is used to evaluate the potential impact of the changes on the source code.
[0418] Step 4:
[0419] Based on the results of the analysis in step 3, the server selectively downloads the software components that it determines require updating and applies them to the local environment. It then applies a dependency resolution algorithm to check for compatibility and necessary dependencies.
[0420] Step 5:
[0421] Automated test scripts are executed on the terminal to verify the stability of the updated system. The tests include unit tests, integration tests, and regression tests, and their results are recorded. A mechanism is included to quickly notify if a test fails.
[0422] Step 6:
[0423] Based on the success or failure of the test, the server uses rollback mechanisms for any components that failed the test, restoring the system to a stable state prior to the update.
[0424] Step 7:
[0425] Users will be notified with detailed reports on the results of updates, the success or failure of tests, and any rollbacks performed if necessary. This allows users to stay informed about the latest status of the system.
[0426] (Example 1)
[0427] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0428] In today's information environment, information components are frequently updated, and new or known security issues often arise. In this environment, automated systems for updating, testing, and notification are required to ensure timely and effective updates of information components and to maintain the continuous operation of systems while maintaining security. Furthermore, there is a challenge in that it is necessary to use generative artificial intelligence technology to predict the impact of updates on the entire system in advance, thereby enabling the rapid implementation of appropriate countermeasures.
[0429] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0430] In this invention, the server includes means for periodically accessing public information sources for information storage devices to collect the latest information on information components, means for analyzing dependencies between information components based on the collected information and evaluating modifications based on that analysis, and means for generating instruction statements and predicting the impact of modifications using generative artificial intelligence technology. This enables stable operation of the entire system while maintaining effective management and security of information components.
[0431] An "information storage device" is a system that has the function of accessing public information sources and collecting and storing data on information components.
[0432] An "information component" is a specific unit of data or program used within a system, and these elements may have interdependent relationships with one another.
[0433] "Dependency" refers to a relationship that exists between multiple information components, indicating a relationship in which one element depends on another.
[0434] "Generative artificial intelligence technology" is a type of artificial intelligence that has the ability to generate natural language and decision-making processes similar to those of humans, based on large amounts of data.
[0435] An "instruction statement" is an explanatory text created using generative artificial intelligence technology to predict and evaluate the flow and impact of a process.
[0436] "Modification" refers to updating or changing information components, and it is an operation that requires evaluation of its impact.
[0437] Embodiments for carrying out this invention are described below.
[0438] The server accesses public information sources via the internet and periodically collects the latest data on information components. The specific software technologies used include HTTP requests and API access, implemented using common programming languages and network protocols. The collected data includes version information, dependencies, and change history, which the server stores in a local database. A relational database management system may be used as the database at this stage.
[0439] The terminal analyzes the dependencies between information components within its own system based on information received from the server. For this purpose, dependency management tools and scripts are used. These tools analyze dependent files through APIs they provide, compare the current system's version status with the latest information from the server, and identify which components can be updated.
[0440] Furthermore, the AI agent uses generative artificial intelligence technology to evaluate the impact of the changes. Specifically, a natural language processing model receives the analysis results and uses prompts such as "Evaluate and report the impact on the entire code when dependencies change" to estimate the scope of the impact.
[0441] The server performs updates to information components deemed necessary. Automation tools are used to ensure a secure and consistent update process, and backup operations are performed during updates to ensure security. After the update is complete, the terminal automatically runs test scripts to verify the impact of the update. Testing includes unit tests, integration tests, and regression tests, each performed using dedicated test frameworks and tools.
[0442] Ultimately, users receive notifications based on the results of these processes, detailing successful updates and the causes and solutions for any failures. Specific examples of such notifications might include messages like, "The latest security patches have been applied, and all tests were successful; therefore, the system is operating securely." This invention automates the management and maintenance of information components, enabling reliable operation.
[0443] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0444] Step 1:
[0445] The server periodically accesses public information sources on the internet to obtain the latest data on information components. The input is access credentials for the public information sources, and the output is version information, dependencies, and change history of the information components. The server downloads this data via HTTP requests and stores it in a local database. During this process, it filters some of the data, retaining only the necessary information.
[0446] Step 2:
[0447] The terminal analyzes the dependencies of information components within its own system based on information received from the server. The input is the latest information list obtained from the server, and the output is a list of updatable information components. The terminal analyzes the dependency file, compares the current system state with the latest information from the server, and determines which components can be updated. The analysis results are obtained using a dependency management tool.
[0448] Step 3:
[0449] The terminal provides analysis results to the AI agent, which uses generative artificial intelligence technology to evaluate the impact of the changes. The input is a list of updatable information components, and the output is an evaluation of the impact of the changes on the entire system and instructions for doing so. The AI agent generates a prompt such as, "Evaluate and report the impact on the entire code if there are changes to dependencies," performs the analysis through its artificial intelligence model, and returns the results.
[0450] Step 4:
[0451] The server updates the information components deemed necessary based on the AI agent's evaluation results. The input is a list of information components to be updated, determined based on the impact assessment, and the output is the state of the updated information components. The server uses automation tools to perform safe and consistent updates and also performs backup operations to verify the safety of the updates.
[0452] Step 5:
[0453] Upon receiving an update completion notification, the device automatically executes a test script to verify the impact of the update. The input is the state of the updated information components, and the output is the test result. Verification is performed using a test framework, including unit tests, integration tests, and regression tests. If a test fails, an automatic rollback is performed, reverting to the previous stable version.
[0454] Step 6:
[0455] The user is notified of the results of a series of processes performed by the system. The input is test results and information on whether the update was successful or not, and the output is a notification message provided to the user. Specific message content may include information such as, "The latest security patches have been applied and all tests were successful, so the system is operating securely," providing the user with a means to confirm reliable system operation.
[0456] (Application Example 1)
[0457] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0458] In modern industrial facilities, the control software for automated machinery needs frequent updates, but doing so without compromising safety and efficiency is challenging. Furthermore, it is essential that the automated machinery continues to operate without unexpected shutdowns during the update process. To address these challenges, a system is needed that enables automatic and safe updates of control software.
[0459] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0460] In this invention, the server includes means for automatically acquiring the latest information on software components, means for analyzing dependencies and evaluating impacts based on the acquired information, and means for collecting update information on control software in multiple automated machinery devices in real time and guiding the update procedures in these automated machinery devices. This enables the continuous operation of automated machinery devices while safely and efficiently updating their control software.
[0461] "Software components" are the basic units, such as individual programs and libraries, that make up a software system.
[0462] "Means for automatically obtaining the latest information" refers to a function that automatically performs the process of obtaining the latest information from the internet or databases.
[0463] "Methods for analyzing dependencies and evaluating impacts" refers to methods that use algorithms to analyze software dependencies and evaluate the impact of changes on the entire system.
[0464] "Means of performing selective updates" refers to procedures for updating part or all of a system as needed.
[0465] "Means for testing the system state after an update and recording the results" refers to the process of testing whether the updated software is functioning correctly and recording the results as data.
[0466] "Means to roll back updates if necessary" refers to procedures for restoring to a previous stable state if problems arise due to an update.
[0467] "Means of notifying users of results" refers to a function that informs users of system update results and other important information.
[0468] "A means of collecting real-time update information on control software in multiple automated machinery and guiding update procedures for these automated machinery" refers to a function that constantly monitors the update status of control software in multiple automated devices and provides timely update instructions.
[0469] The system for implementing this invention consists of a server, a terminal, and a user. The server collects the latest information on software components and performs dependency analysis and impact assessment based on that information. This process utilizes a generative artificial intelligence model using TensorFlow. The server sets up a script implemented in Python as a Cron job to periodically retrieve data from a public software repository. The collected information is converted into a data frame using Pandas, and basic analysis is performed using SciKit-Learn.
[0470] The terminal performs selective updates of software components based on analysis results received from the server. During the update process, bidirectional communication is performed using a Flask API, and automated tests are conducted to verify the system state after the update. Upon completion of the update, the terminal automatically runs unit tests, integration tests, and regression tests, and records the results to ensure that the update is compatible with the entire system.
[0471] Users are notified of the results via smartphones or other devices. In particular, they are shown the procedures for rollback if necessary and details of successful updates, enabling proper management. A concrete use case is when updating the software of multiple automated machines deployed on a factory line; this process is used to ensure that each machine is safely updated.
[0472] An example of a prompt statement is, "Analyze the impact of the latest security patch on the robot's positioning algorithm." By inputting this statement into an AI model and analyzing the results, an approach is provided to enable rapid and safe updates to automated machinery in factories.
[0473] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0474] Step 1:
[0475] The server periodically accesses public software repositories on the internet to collect information on the latest software components. Using the repository URL and authentication information via an API as input, it retrieves data in JSON format, including the latest version number, update history, and dependencies. This data is then converted into a DataFrame using Pandas.
[0476] Step 2:
[0477] The server analyzes the collected dataframes and predicts the impact of changes and updates to dependencies. During this process, it performs preprocessing and feature extraction using SciKit-Learn to evaluate the need for updates based on the data. The output generates a list of software components that require updates.
[0478] Step 3:
[0479] The server uses a generative AI model based on TensorFlow to input the prompt "Analyze the impact of the latest security patch on the robot's positioning algorithm" into the collected data and estimate the impact of the change on the entire system. This model utilizes natural language processing techniques to analyze the potential downsides of the update to the system. The output is a detailed impact assessment report.
[0480] Step 4:
[0481] The terminal checks the update information and impact assessment report received from the server and performs selective updates of the relevant software components. During this process, it communicates with the server via Flask to download and extract the update packages. The input requires identification information of the software to be updated, and the output generates a notification regarding the updated state.
[0482] Step 5:
[0483] After the update is complete, the device automatically runs unit tests, integration tests, and regression tests. Test scripts for each step are prepared in advance, and the consistency of the updated content is verified. The test script is executed as input, and a test result log is generated as output.
[0484] Step 6:
[0485] The user receives notifications of the entire update process from their device. This is displayed as an alert via the GUI, indicating whether the update was successful or failed, and suggesting any necessary corrective actions. The output is generated for the user as a notification message.
[0486] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0487] This invention improves system usability and user satisfaction by incorporating an emotion engine that recognizes user emotions, in addition to the software component update process.
[0488] First, the server, like other processes, periodically retrieves the latest information on its software components from an internet repository. This data is stored in a local database and used for later analysis.
[0489] Next, the terminal compares the current dependency list with the latest data collected by the server to identify software components that require updating. Simultaneously, an AI agent uses a generative artificial intelligence model to assess the potential impact of the update on the system. If the impact is significant, it selects a method to perform a partial update.
[0490] Once the update is complete, the terminal runs a pre-configured test script. This script performs a series of tests, including unit tests, integration tests, and regression tests, and the results are recorded. If a test fails, the server uses a rollback mechanism to restore the system to its previous stable state.
[0491] Furthermore, this invention incorporates an emotion engine that dynamically adjusts the content of notifications to users regarding update results or system status according to the user's emotional state. For example, if a user feels concern or dissatisfaction due to an update, the emotion engine can detect this and provide a detailed and reassuring message.
[0492] For example, if updated software components include security improvements and the user's emotional state is somewhat anxious, the user will receive a notification that carefully explains the details of the security measures and their effectiveness to alleviate their anxiety. In this way, by making full use of the emotion engine, it is expected that the user experience will be improved and trust in the system will increase.
[0493] The following describes the processing flow.
[0494] Step 1:
[0495] The server accesses software repositories on the internet and retrieves the latest information on the software components it is using via an API. This information, including the latest version number, update details, and other metadata, is stored in a local database.
[0496] Step 2:
[0497] The terminal analyzes the project's dependency files and compares them with the latest information obtained from the server. This creates a list of software components that need updating. The analysis allows you to see all the libraries you are directly using and their underlying dependencies.
[0498] Step 3:
[0499] The AI agent uses a generative artificial intelligence model to evaluate the impact of the updates identified in Step 2 on the entire system. For areas where impact is predicted, it recommends the optimal update method to avoid risks and dependency breakdowns caused by the changes.
[0500] Step 4:
[0501] Based on the analysis results from step 3, the server performs selective updates. It updates necessary software components and implements version control of dependencies to maintain system integrity.
[0502] Step 5:
[0503] After a device is updated, fully automated tests are performed. A series of test scripts, including unit tests, integration tests, and regression tests, are executed to monitor for any abnormalities in the system's operation. Test results are recorded in a database.
[0504] Step 6:
[0505] Based on the test results, the server will use rollback mechanisms as needed to restore the system to a stable state. If the test fails, this mechanism will be executed quickly.
[0506] Step 7:
[0507] The emotion engine recognizes the user's emotional state and adjusts how test results and updates are communicated to the user. This engine analyzes user responses and includes reassuring messages and additional information as needed.
[0508] Step 8:
[0509] Users receive notifications and understand the update results and system status. Thanks to an emotion engine, notifications are tailored to the user's emotions.
[0510] (Example 2)
[0511] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0512] The problem that this invention aims to solve is to accurately evaluate the complexity of dependencies and the impact of updates on the system during the software system update process, and to appropriately provide information that takes into account the user's emotional state as needed. Conventional update systems have suffered from problems such as system instability being compromised and user experience degrading due to overlooking dependencies or insufficient prediction of the impact of updates.
[0513] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0514] In this invention, the server includes means for an information processing device to automatically acquire component information from information resources, means for storing the acquired information in a storage means and analyzing its dependencies, and means for evaluating the impact based on the analysis results using a generative artificial intelligence model. This enables the system to accurately determine the need for updates and evaluate potential impacts in advance. Furthermore, by having an emotion analysis function and providing information that is considerate of the user, the user experience can be improved.
[0515] An "information processing device" is a device that has the function of receiving, storing, and analyzing data, and automatically performing processing based on that data.
[0516] "Information resources" refer to external repositories and databases that provide information about data and software components that exist on the internet.
[0517] "Component information" refers to a collection of data that includes version information and dependency information about individual software components that make up a software system.
[0518] "Memory means" refers to data storage or memory used for the purpose of saving acquired information for later use.
[0519] "Dependency" refers to a relationship where certain software components cannot function without other components or libraries.
[0520] A "generative artificial intelligence model" refers to a machine learning model that learns using a vast dataset and can make predictions and generate new data based on it.
[0521] "Emotion analysis function" refers to an algorithm or system that estimates emotions from input data in order to evaluate the user's emotional state.
[0522] "User experience" refers to the overall satisfaction and quality of the experience that users gain while using a system.
[0523] This invention provides a system for efficiently managing the components of a software system and optimizing the update process. The system mainly consists of servers, terminals, and users.
[0524] The server automatically retrieves software component information from information resources on the internet. In this process, the server uses the HTTP protocol to collect data from public repositories (e.g., Git repositories) and stores it in local storage. This allows the system state to be kept constantly up-to-date.
[0525] The terminal uses standard analysis software and scripts (e.g., Python scripts) to parse component information sent from the server and to check dependencies based on the acquired information. Here, a generative artificial intelligence model is used to evaluate the information and predict the impact of software component updates. This model is trained using machine learning libraries and runs locally on the terminal. During this process, the AI model can be instructed using prompts such as "What impact will the update have on performance?"
[0526] Next, the terminal performs a selective update, followed by a series of tests using pre-configured test scripts for unit, integration, and regression evaluations. If the tests are successful, the new state is maintained; if they fail, the server rolls back to a previous stable state.
[0527] Finally, the user receives notifications about the update results and potential impacts via a device equipped with sentiment analysis capabilities. This function uses a generative artificial intelligence model to assess the user's emotional state and provide appropriate information. For example, by using a prompt such as, "If the user is feeling anxious about the system update, generate a detailed explanation to alleviate that anxiety," it is possible to dynamically provide information that reassures the user.
[0528] Thus, the present invention improves the efficiency and reliability of the software update process and significantly enhances the user experience.
[0529] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0530] Step 1:
[0531] The server retrieves software component information from information resources on the internet. Here, the server uses the HTTP protocol to call an API and retrieve the latest component information from the information resources. The retrieved data includes component versions and metadata and is stored in JSON format on local storage. This process allows the server to understand the latest software state.
[0532] Step 2:
[0533] The terminal analyzes the component information sent from the server. The terminal reads locally stored information and uses dependency analysis software to compare the current software environment with the latest information obtained. This comparison identifies which components require updates, and the results are output as a list. It also sends prompts to a generative artificial intelligence model to evaluate the potential impact of each update on the system. For example, it might use a prompt such as, "How will this affect the system's response time?"
[0534] Step 3:
[0535] The terminal performs selective updates of software components based on the analysis results. Specifically, the terminal downloads and installs new versions of the specified components. This update process is automated by a script, and if successful, the new state is recorded in the local database. The terminal can also minimize the impact by choosing partial updates.
[0536] Step 4:
[0537] After the update, the terminal automatically executes the configured test script. The tests include unit evaluation, integration evaluation, and regression evaluation to verify software stability. The results of each test are output to a log file and used for re-evaluation. If a test fails, the terminal sends the results to the server after the test to notify that a rollback is necessary.
[0538] Step 5:
[0539] The user receives notifications based on sentiment analysis. The device uses a generative artificial intelligence model to determine the user's emotional state and generate appropriate notification content. For example, if the user is feeling anxious about an update, a notification such as "This update enhances security" is sent to reassure them. The notification content is dynamically adjusted based on the system state and the impact of the update.
[0540] (Application Example 2)
[0541] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0542] In modern home environments, there is a demand for information provision and environmental adjustments that are tailored to the emotions and needs of individual residents. However, conventional systems struggle to dynamically consider and respond to users' emotions. As a result, users may feel anxious when information is updated, or home systems may not function properly. The challenge is to solve this problem and improve the user experience.
[0543] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for automatically acquiring the latest information on software components, means for analyzing dependencies and evaluating their impact, means for recognizing the user's emotions and dynamically adjusting notification content, and means for adjusting the home environment based on the family's emotions. This makes it possible to provide flexible and reassuring information that responds to the emotions of the residents.
[0544] "Software components" refer to individual elements in a computer system, such as programs, libraries, and configuration files, and are fundamental units necessary to realize a specific function.
[0545] "Dependency" refers to a relationship that shows the interdependence between software components, and describes a state in which one component depends on another.
[0546] "Means of assessing impact" refers to a method or process for analyzing and evaluating the scope and degree of the impact that a particular update or change has on the entire system.
[0547] "Means for dynamically adjusting notification content" refers to technologies that change and optimize messages and information sent from the system in real time according to the user's emotions and circumstances.
[0548] "Means of adjusting the home environment" refers to the process of adjusting the physical and sensory environment of the home, such as sound, lighting, and temperature, based on the emotional state of the residents.
[0549] In this invention, the server first periodically obtains the latest information on software components via the internet and stores it in a local database. Based on the stored information, the server analyzes dependencies and evaluates the impact on the system. In this process, a generative AI model can be used to predict potential impacts. For example, this can be used to evaluate the impact of a specific software update on system stability.
[0550] The terminal selects the necessary software updates based on the latest information provided by the server. After the updates are complete, the terminal runs test scripts to verify the new system state. This process includes unit tests, integration tests, and regression tests. If the test results are unsuccessful, the server rolls the system back to its previous stable state.
[0551] Furthermore, this invention incorporates an emotion engine that analyzes the user's emotions in real time. For example, if the user is feeling anxious about an update, the emotion engine will detect that emotion and provide a detailed explanation and a reassuring message. If the user is feeling stressed at home, the robot can speak to them gently or adjust the home environment by changing the lighting to a warmer color.
[0552] For example, if a family feels tired after dinner, the robot could play calming music and speak to them in a relaxing voice. In this way, a comfortable and harmonious home environment tailored to the residents' emotions and needs is created.
[0553] Examples of prompts for the generating AI model include: "If a family member is feeling stressed, please provide advice on how a home robot should provide reassurance. Please also provide examples of voice messages the robot could use."
[0554] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0555] Step 1:
[0556] The server retrieves the latest information on software components from the internet. The input is data from a repository, and the output is update information stored in a local database. This allows the server to maintain the most up-to-date software version information.
[0557] Step 2:
[0558] The server analyzes the information stored in the local database and evaluates dependencies. The input is the stored update information, and the output is a list of system components affected by it. This allows the server to understand the impact of the update on the entire system.
[0559] Step 3:
[0560] The terminal receives data provided by the server and identifies software components that need updating. Here, a generative AI model is used to evaluate the potential impact of the update. The input is a list of dependencies, and the output is the identification of the software to be updated and the results of the impact evaluation.
[0561] Step 4:
[0562] The terminal executes the selected update, changing the system to the new state. The input is the software to be updated, and the output is the updated system state. This step also applies a test script to verify system stability.
[0563] Step 5:
[0564] The terminal executes test scripts to verify the accuracy of the new system state. This includes unit tests, integration tests, and regression tests. The input is the updated system, and the output is the test result. The success or failure of the test determines the next step.
[0565] Step 6:
[0566] If the test fails, the server rolls the system back to its previous stable state. The input is the failed test result, and the output is the restored system state. This ensures stable system operation.
[0567] Step 7:
[0568] The user receives the update results, the emotion engine analyzes the emotion, and dynamically adjusts the notification content. The input is the user's emotion data, and the output is the adjusted message. This process includes explanations to provide reassurance.
[0569] Step 8:
[0570] The emotion engine adjusts the environment according to the emotions of the household residents. The input is emotion evaluation data, and the output is the adjusted home environment (e.g., music selection and lighting color). This step creates a more relaxed home environment.
[0571] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0572] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0573] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and specific processing may also be performed by the headset terminal 314.
[0574] [Fourth Embodiment]
[0575] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[0576] As shown in Figure 7, the data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[0577] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0578] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.
[0579] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0580] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0581] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0582] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the robot 414's emotions can be expressed by controlling these motors. Furthermore, the robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.
[0583] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0584] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0585] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0586] In robot 414, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0587] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0588] In an embodiment of this invention, the following series of processes are performed by the server, terminal, and user.
[0589] First, the server periodically accesses public software repositories on the internet to collect the latest information about the software components it is using. This information includes version numbers, update history, and dependency changes, and is stored in a local database. The server then performs basic filtering and classification to analyze this information.
[0590] Next, the system analyzes the current dependencies within the project based on the latest information received by the terminal. It reads the dependency file, compares the current system state with the latest information obtained from the server, and identifies which software components are updatable. The analysis results include potentially impactful updates and items requiring immediate attention.
[0591] The AI agent receives these analysis results and uses a generative artificial intelligence model to evaluate the impact of the changes in detail. Specifically, it infers how the updates may affect the source code, performing data analysis and inference. This establishes guidelines for the system to continue functioning correctly.
[0592] The server uses a built-in update module to selectively update the software components it deems necessary. After the update is performed, a test script is automatically executed on the terminal. This verifies that the update is compatible with the current system and that it is functioning correctly.
[0593] The tests include unit tests, integration tests, and regression tests, and the terminal records the results of these tests. If a test fails, a rollback mechanism is immediately activated, restoring to a previous stable version.
[0594] Finally, the user is notified of the results of this series of operations. If the update was successful, the user will be able to understand the details, and if it failed or a problem occurred, they will be able to understand the summary and the measures taken.
[0595] As a concrete example, consider a scenario where a terminal manages multiple external libraries used in a project. If the server detects that a critical security patch has been applied to one of these libraries, an AI agent analyzes the impact and takes steps to ensure the terminal safely updates. In this way, rapid and secure system maintenance can be achieved.
[0596] The following describes the processing flow.
[0597] Step 1:
[0598] The server periodically accesses the online repository to obtain the latest information on the software components it is using. This includes using APIs to collect version information, update history, and other data, and saving it to a local database.
[0599] Step 2:
[0600] The terminal reads the dependency files within the project and compares the current software component versions with the latest information obtained from the server. This determines which components can be updated and lists the entries that need updating.
[0601] Step 3:
[0602] Based on the entries listed in Step 2, the AI agent analyzes the impact of the software components scheduled for update on the system. A generative artificial intelligence model is used to evaluate the potential impact of the changes on the source code.
[0603] Step 4:
[0604] Based on the results of the analysis in step 3, the server selectively downloads the software components that it determines require updating and applies them to the local environment. It then applies a dependency resolution algorithm to check for compatibility and necessary dependencies.
[0605] Step 5:
[0606] Automated test scripts are executed on the terminal to verify the stability of the updated system. The tests include unit tests, integration tests, and regression tests, and their results are recorded. A mechanism is included to quickly notify if a test fails.
[0607] Step 6:
[0608] Based on the success or failure of the test, the server uses rollback mechanisms for any components that failed the test, restoring the system to a stable state prior to the update.
[0609] Step 7:
[0610] Users will be notified with detailed reports on the results of updates, the success or failure of tests, and any rollbacks performed if necessary. This allows users to stay informed about the latest status of the system.
[0611] (Example 1)
[0612] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0613] In today's information environment, information components are frequently updated, and new or known security issues often arise. In this environment, automated systems for updating, testing, and notification are required to ensure timely and effective updates of information components and to maintain the continuous operation of systems while maintaining security. Furthermore, there is a challenge in that it is necessary to use generative artificial intelligence technology to predict the impact of updates on the entire system in advance, thereby enabling the rapid implementation of appropriate countermeasures.
[0614] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0615] In this invention, the server includes means for periodically accessing public information sources for information storage devices to collect the latest information on information components, means for analyzing dependencies between information components based on the collected information and evaluating modifications based on that analysis, and means for generating instruction statements and predicting the impact of modifications using generative artificial intelligence technology. This enables stable operation of the entire system while maintaining effective management and security of information components.
[0616] An "information storage device" is a system that has the function of accessing public information sources and collecting and storing data on information components.
[0617] An "information component" is a specific unit of data or program used within a system, and these elements may have interdependent relationships with one another.
[0618] "Dependency" refers to a relationship that exists between multiple information components, indicating a relationship in which one element depends on another.
[0619] "Generative artificial intelligence technology" is a type of artificial intelligence that has the ability to generate natural language and decision-making processes similar to those of humans, based on large amounts of data.
[0620] An "instruction statement" is an explanatory text created using generative artificial intelligence technology to predict and evaluate the flow and impact of a process.
[0621] "Modification" refers to updating or changing information components, and it is an operation that requires evaluation of its impact.
[0622] Embodiments for carrying out this invention are described below.
[0623] The server accesses public information sources via the internet and periodically collects the latest data on information components. The specific software technologies used include HTTP requests and API access, implemented using common programming languages and network protocols. The collected data includes version information, dependencies, and change history, which the server stores in a local database. A relational database management system may be used as the database at this stage.
[0624] The terminal analyzes the dependencies between information components within its own system based on information received from the server. For this purpose, dependency management tools and scripts are used. These tools analyze dependent files through APIs they provide, compare the current system's version status with the latest information from the server, and identify which components can be updated.
[0625] Furthermore, the AI agent uses generative artificial intelligence technology to evaluate the impact of the changes. Specifically, a natural language processing model receives the analysis results and uses prompts such as "Evaluate and report the impact on the entire code when dependencies change" to estimate the scope of the impact.
[0626] The server performs updates to information components deemed necessary. Automation tools are used to ensure a secure and consistent update process, and backup operations are performed during updates to ensure security. After the update is complete, the terminal automatically runs test scripts to verify the impact of the update. Testing includes unit tests, integration tests, and regression tests, each performed using dedicated test frameworks and tools.
[0627] Ultimately, users receive notifications based on the results of these processes, detailing successful updates and the causes and solutions for any failures. Specific examples of such notifications might include messages like, "The latest security patches have been applied, and all tests were successful; therefore, the system is operating securely." This invention automates the management and maintenance of information components, enabling reliable operation.
[0628] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0629] Step 1:
[0630] The server periodically accesses public information sources on the internet to obtain the latest data on information components. The input is access credentials for the public information sources, and the output is version information, dependencies, and change history of the information components. The server downloads this data via HTTP requests and stores it in a local database. During this process, it filters some of the data, retaining only the necessary information.
[0631] Step 2:
[0632] The terminal analyzes the dependencies of information components within its own system based on information received from the server. The input is the latest information list obtained from the server, and the output is a list of updatable information components. The terminal analyzes the dependency file, compares the current system state with the latest information from the server, and determines which components can be updated. The analysis results are obtained using a dependency management tool.
[0633] Step 3:
[0634] The terminal provides analysis results to the AI agent, which uses generative artificial intelligence technology to evaluate the impact of the changes. The input is a list of updatable information components, and the output is an evaluation of the impact of the changes on the entire system and instructions for doing so. The AI agent generates a prompt such as, "Evaluate and report the impact on the entire code if there are changes to dependencies," performs the analysis through its artificial intelligence model, and returns the results.
[0635] Step 4:
[0636] The server updates the information components deemed necessary based on the AI agent's evaluation results. The input is a list of information components to be updated, determined based on the impact assessment, and the output is the state of the updated information components. The server uses automation tools to perform safe and consistent updates and also performs backup operations to verify the safety of the updates.
[0637] Step 5:
[0638] Upon receiving an update completion notification, the device automatically executes a test script to verify the impact of the update. The input is the state of the updated information components, and the output is the test result. Verification is performed using a test framework, including unit tests, integration tests, and regression tests. If a test fails, an automatic rollback is performed, reverting to the previous stable version.
[0639] Step 6:
[0640] The user is notified of the results of a series of processes performed by the system. The input is test results and information on whether the update was successful or not, and the output is a notification message provided to the user. Specific message content may include information such as, "The latest security patches have been applied and all tests were successful, so the system is operating securely," providing the user with a means to confirm reliable system operation.
[0641] (Application Example 1)
[0642] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0643] In modern industrial facilities, the control software for automated machinery needs frequent updates, but doing so without compromising safety and efficiency is challenging. Furthermore, it is essential that the automated machinery continues to operate without unexpected shutdowns during the update process. To address these challenges, a system is needed that enables automatic and safe updates of control software.
[0644] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0645] In this invention, the server includes means for automatically acquiring the latest information on software components, means for analyzing dependencies and evaluating impacts based on the acquired information, and means for collecting update information on control software in multiple automated machinery devices in real time and guiding the update procedures in these automated machinery devices. This enables the continuous operation of automated machinery devices while safely and efficiently updating their control software.
[0646] "Software components" are the basic units, such as individual programs and libraries, that make up a software system.
[0647] "Means for automatically obtaining the latest information" refers to a function that automatically performs the process of obtaining the latest information from the internet or databases.
[0648] "Methods for analyzing dependencies and evaluating impacts" refers to methods that use algorithms to analyze software dependencies and evaluate the impact of changes on the entire system.
[0649] "Means of performing selective updates" refers to procedures for updating part or all of a system as needed.
[0650] "Means for testing the system state after an update and recording the results" refers to the process of testing whether the updated software is functioning correctly and recording the results as data.
[0651] "Means to roll back updates if necessary" refers to procedures for restoring to a previous stable state if problems arise due to an update.
[0652] "Means of notifying users of results" refers to a function that informs users of system update results and other important information.
[0653] "A means of collecting real-time update information on control software in multiple automated machinery and guiding update procedures for these automated machinery" refers to a function that constantly monitors the update status of control software in multiple automated devices and provides timely update instructions.
[0654] The system for implementing this invention consists of a server, a terminal, and a user. The server collects the latest information on software components and performs dependency analysis and impact assessment based on that information. This process utilizes a generative artificial intelligence model using TensorFlow. The server sets up a script implemented in Python as a Cron job to periodically retrieve data from a public software repository. The collected information is converted into a data frame using Pandas, and basic analysis is performed using SciKit-Learn.
[0655] The terminal performs selective updates of software components based on analysis results received from the server. During the update process, bidirectional communication is performed using a Flask API, and automated tests are conducted to verify the system state after the update. Upon completion of the update, the terminal automatically runs unit tests, integration tests, and regression tests, and records the results to ensure that the update is compatible with the entire system.
[0656] Users are notified of the results via smartphones or other devices. In particular, they are shown the procedures for rollback if necessary and details of successful updates, enabling proper management. A concrete use case is when updating the software of multiple automated machines deployed on a factory line; this process is used to ensure that each machine is safely updated.
[0657] An example of a prompt statement is, "Analyze the impact of the latest security patch on the robot's positioning algorithm." By inputting this statement into an AI model and analyzing the results, an approach is provided to enable rapid and safe updates to automated machinery in factories.
[0658] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0659] Step 1:
[0660] The server periodically accesses public software repositories on the internet to collect information on the latest software components. Using the repository URL and authentication information via an API as input, it retrieves data in JSON format, including the latest version number, update history, and dependencies. This data is then converted into a DataFrame using Pandas.
[0661] Step 2:
[0662] The server analyzes the collected dataframes and predicts the impact of changes and updates to dependencies. During this process, it performs preprocessing and feature extraction using SciKit-Learn to evaluate the need for updates based on the data. The output generates a list of software components that require updates.
[0663] Step 3:
[0664] The server uses a generative AI model based on TensorFlow to input the prompt "Analyze the impact of the latest security patch on the robot's positioning algorithm" into the collected data and estimate the impact of the change on the entire system. This model utilizes natural language processing techniques to analyze the potential downsides of the update to the system. The output is a detailed impact assessment report.
[0665] Step 4:
[0666] The terminal checks the update information and impact assessment report received from the server and performs selective updates of the relevant software components. During this process, it communicates with the server via Flask to download and extract the update packages. The input requires identification information of the software to be updated, and the output generates a notification regarding the updated state.
[0667] Step 5:
[0668] After the update is complete, the device automatically runs unit tests, integration tests, and regression tests. Test scripts for each step are prepared in advance, and the consistency of the updated content is verified. The test script is executed as input, and a test result log is generated as output.
[0669] Step 6:
[0670] The user receives notifications of the entire update process from their device. This is displayed as an alert via the GUI, indicating whether the update was successful or failed, and suggesting any necessary corrective actions. The output is generated for the user as a notification message.
[0671] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0672] This invention improves system usability and user satisfaction by incorporating an emotion engine that recognizes user emotions, in addition to the software component update process.
[0673] First, the server, like other processes, periodically retrieves the latest information on its software components from an internet repository. This data is stored in a local database and used for later analysis.
[0674] Next, the terminal compares the current dependency list with the latest data collected by the server to identify software components that require updating. Simultaneously, an AI agent uses a generative artificial intelligence model to assess the potential impact of the update on the system. If the impact is significant, it selects a method to perform a partial update.
[0675] Once the update is complete, the terminal runs a pre-configured test script. This script performs a series of tests, including unit tests, integration tests, and regression tests, and the results are recorded. If a test fails, the server uses a rollback mechanism to restore the system to its previous stable state.
[0676] Furthermore, this invention incorporates an emotion engine that dynamically adjusts the content of notifications to users regarding update results or system status according to the user's emotional state. For example, if a user feels concern or dissatisfaction due to an update, the emotion engine can detect this and provide a detailed and reassuring message.
[0677] For example, if updated software components include security improvements and the user's emotional state is somewhat anxious, the user will receive a notification that carefully explains the details of the security measures and their effectiveness to alleviate their anxiety. In this way, by making full use of the emotion engine, it is expected that the user experience will be improved and trust in the system will increase.
[0678] The following describes the processing flow.
[0679] Step 1:
[0680] The server accesses software repositories on the internet and retrieves the latest information on the software components it is using via an API. This information, including the latest version number, update details, and other metadata, is stored in a local database.
[0681] Step 2:
[0682] The terminal analyzes the project's dependency files and compares them with the latest information obtained from the server. This creates a list of software components that need updating. The analysis allows you to see all the libraries you are directly using and their underlying dependencies.
[0683] Step 3:
[0684] The AI agent uses a generative artificial intelligence model to evaluate the impact of the updates identified in Step 2 on the entire system. For areas where impact is predicted, it recommends the optimal update method to avoid risks and dependency breakdowns caused by the changes.
[0685] Step 4:
[0686] Based on the analysis results from step 3, the server performs selective updates. It updates necessary software components and implements version control of dependencies to maintain system integrity.
[0687] Step 5:
[0688] After a device is updated, fully automated tests are performed. A series of test scripts, including unit tests, integration tests, and regression tests, are executed to monitor for any abnormalities in the system's operation. Test results are recorded in a database.
[0689] Step 6:
[0690] Based on the test results, the server will use rollback mechanisms as needed to restore the system to a stable state. If the test fails, this mechanism will be executed quickly.
[0691] Step 7:
[0692] The emotion engine recognizes the user's emotional state and adjusts how test results and updates are communicated to the user. This engine analyzes user responses and includes reassuring messages and additional information as needed.
[0693] Step 8:
[0694] Users receive notifications and understand the update results and system status. Thanks to an emotion engine, notifications are tailored to the user's emotions.
[0695] (Example 2)
[0696] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0697] The problem that this invention aims to solve is to accurately evaluate the complexity of dependencies and the impact of updates on the system during the software system update process, and to appropriately provide information that takes into account the user's emotional state as needed. Conventional update systems have suffered from problems such as system instability being compromised and user experience degrading due to overlooking dependencies or insufficient prediction of the impact of updates.
[0698] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0699] In this invention, the server includes means for an information processing device to automatically acquire component information from information resources, means for storing the acquired information in a storage means and analyzing its dependencies, and means for evaluating the impact based on the analysis results using a generative artificial intelligence model. This enables the system to accurately determine the need for updates and evaluate potential impacts in advance. Furthermore, by having an emotion analysis function and providing information that is considerate of the user, the user experience can be improved.
[0700] An "information processing device" is a device that has the function of receiving, storing, and analyzing data, and automatically performing processing based on that data.
[0701] "Information resources" refer to external repositories and databases that provide information about data and software components that exist on the internet.
[0702] "Component information" refers to a collection of data that includes version information and dependency information about individual software components that make up a software system.
[0703] "Memory means" refers to data storage or memory used for the purpose of saving acquired information for later use.
[0704] "Dependency" refers to a relationship where certain software components cannot function without other components or libraries.
[0705] A "generative artificial intelligence model" refers to a machine learning model that learns using a vast dataset and can make predictions and generate new data based on it.
[0706] "Emotion analysis function" refers to an algorithm or system that estimates emotions from input data in order to evaluate the user's emotional state.
[0707] "User experience" refers to the overall satisfaction and quality of the experience that users gain while using a system.
[0708] This invention provides a system for efficiently managing the components of a software system and optimizing the update process. The system mainly consists of servers, terminals, and users.
[0709] The server automatically retrieves software component information from information resources on the internet. In this process, the server uses the HTTP protocol to collect data from public repositories (e.g., Git repositories) and stores it in local storage. This allows the system state to be kept constantly up-to-date.
[0710] The terminal uses standard analysis software and scripts (e.g., Python scripts) to parse component information sent from the server and to check dependencies based on the acquired information. Here, a generative artificial intelligence model is used to evaluate the information and predict the impact of software component updates. This model is trained using machine learning libraries and runs locally on the terminal. During this process, the AI model can be instructed using prompts such as "What impact will the update have on performance?"
[0711] Next, the terminal performs a selective update, followed by a series of tests using pre-configured test scripts for unit, integration, and regression evaluations. If the tests are successful, the new state is maintained; if they fail, the server rolls back to a previous stable state.
[0712] Finally, the user receives notifications about the update results and potential impacts via a device equipped with sentiment analysis capabilities. This function uses a generative artificial intelligence model to assess the user's emotional state and provide appropriate information. For example, by using a prompt such as, "If the user is feeling anxious about the system update, generate a detailed explanation to alleviate that anxiety," it is possible to dynamically provide information that reassures the user.
[0713] Thus, the present invention improves the efficiency and reliability of the software update process and significantly enhances the user experience.
[0714] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0715] Step 1:
[0716] The server retrieves software component information from information resources on the internet. Here, the server uses the HTTP protocol to call an API and retrieve the latest component information from the information resources. The retrieved data includes component versions and metadata and is stored in JSON format on local storage. This process allows the server to understand the latest software state.
[0717] Step 2:
[0718] The terminal analyzes the component information sent from the server. The terminal reads locally stored information and uses dependency analysis software to compare the current software environment with the latest information obtained. This comparison identifies which components require updates, and the results are output as a list. It also sends prompts to a generative artificial intelligence model to evaluate the potential impact of each update on the system. For example, it might use a prompt such as, "How will this affect the system's response time?"
[0719] Step 3:
[0720] The terminal performs selective updates of software components based on the analysis results. Specifically, the terminal downloads and installs new versions of the specified components. This update process is automated by a script, and if successful, the new state is recorded in the local database. The terminal can also minimize the impact by choosing partial updates.
[0721] Step 4:
[0722] After the update, the terminal automatically executes the configured test script. The tests include unit evaluation, integration evaluation, and regression evaluation to verify software stability. The results of each test are output to a log file and used for re-evaluation. If a test fails, the terminal sends the results to the server after the test to notify that a rollback is necessary.
[0723] Step 5:
[0724] The user receives notifications based on sentiment analysis. The device uses a generative artificial intelligence model to determine the user's emotional state and generate appropriate notification content. For example, if the user is feeling anxious about an update, a notification such as "This update enhances security" is sent to reassure them. The notification content is dynamically adjusted based on the system state and the impact of the update.
[0725] (Application Example 2)
[0726] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0727] In modern home environments, there is a demand for information provision and environmental adjustments that are tailored to the emotions and needs of individual residents. However, conventional systems struggle to dynamically consider and respond to users' emotions. As a result, users may feel anxious when information is updated, or home systems may not function properly. The challenge is to solve this problem and improve the user experience.
[0728] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for automatically acquiring the latest information on software components, means for analyzing dependencies and evaluating their impact, means for recognizing the user's emotions and dynamically adjusting notification content, and means for adjusting the home environment based on the family's emotions. This makes it possible to provide flexible and reassuring information that responds to the emotions of the residents.
[0729] "Software components" refer to individual elements in a computer system, such as programs, libraries, and configuration files, and are fundamental units necessary to realize a specific function.
[0730] "Dependency" refers to a relationship that shows the interdependence between software components, and describes a state in which one component depends on another.
[0731] "Means of assessing impact" refers to a method or process for analyzing and evaluating the scope and degree of the impact that a particular update or change has on the entire system.
[0732] "Means for dynamically adjusting notification content" refers to technologies that change and optimize messages and information sent from the system in real time according to the user's emotions and circumstances.
[0733] "Means of adjusting the home environment" refers to the process of adjusting the physical and sensory environment of the home, such as sound, lighting, and temperature, based on the emotional state of the residents.
[0734] In this invention, the server first periodically obtains the latest information on software components via the internet and stores it in a local database. Based on the stored information, the server analyzes dependencies and evaluates the impact on the system. In this process, a generative AI model can be used to predict potential impacts. For example, this can be used to evaluate the impact of a specific software update on system stability.
[0735] The terminal selects the necessary software updates based on the latest information provided by the server. After the updates are complete, the terminal runs test scripts to verify the new system state. This process includes unit tests, integration tests, and regression tests. If the test results are unsuccessful, the server rolls the system back to its previous stable state.
[0736] Furthermore, this invention incorporates an emotion engine that analyzes the user's emotions in real time. For example, if the user is feeling anxious about an update, the emotion engine will detect that emotion and provide a detailed explanation and a reassuring message. If the user is feeling stressed at home, the robot can speak to them gently or adjust the home environment by changing the lighting to a warmer color.
[0737] For example, if a family feels tired after dinner, the robot could play calming music and speak to them in a relaxing voice. In this way, a comfortable and harmonious home environment tailored to the residents' emotions and needs is created.
[0738] Examples of prompts for the generating AI model include: "If a family member is feeling stressed, please provide advice on how a home robot should provide reassurance. Please also provide examples of voice messages the robot could use."
[0739] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0740] Step 1:
[0741] The server retrieves the latest information on software components from the internet. The input is data from a repository, and the output is update information stored in a local database. This allows the server to maintain the most up-to-date software version information.
[0742] Step 2:
[0743] The server analyzes the information stored in the local database and evaluates dependencies. The input is the stored update information, and the output is a list of system components affected by it. This allows the server to understand the impact of the update on the entire system.
[0744] Step 3:
[0745] The terminal receives data provided by the server and identifies software components that need updating. Here, a generative AI model is used to evaluate the potential impact of the update. The input is a list of dependencies, and the output is the identification of the software to be updated and the results of the impact evaluation.
[0746] Step 4:
[0747] The terminal executes the selected update, changing the system to the new state. The input is the software to be updated, and the output is the updated system state. This step also applies a test script to verify system stability.
[0748] Step 5:
[0749] The terminal executes test scripts to verify the accuracy of the new system state. This includes unit tests, integration tests, and regression tests. The input is the updated system, and the output is the test result. The success or failure of the test determines the next step.
[0750] Step 6:
[0751] If the test fails, the server rolls the system back to its previous stable state. The input is the failed test result, and the output is the restored system state. This ensures stable system operation.
[0752] Step 7:
[0753] The user receives the update results, the emotion engine analyzes the emotion, and dynamically adjusts the notification content. The input is the user's emotion data, and the output is the adjusted message. This process includes explanations to provide reassurance.
[0754] Step 8:
[0755] The emotion engine adjusts the environment according to the emotions of the household residents. The input is emotion evaluation data, and the output is the adjusted home environment (e.g., music selection and lighting color). This step creates a more relaxed home environment.
[0756] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0757] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0758] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the robot 414.
[0759] Furthermore, the emotion identification model 59, acting as an emotion engine, may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[0760] Figure 9 shows an emotion map 400 in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.
[0761] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.
[0762] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.
[0763] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, motorcycles, etc., emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.
[0764] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."
[0765] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.
[0766] The above description primarily focuses on the functions of the data processing device 12 in relation to this disclosure. However, the system related to this disclosure is not necessarily implemented on a server. The system related to this disclosure may be implemented as a general information processing system. This disclosure may be implemented, for example, as a software program that runs on a personal computer or as an application that runs on a smartphone. The method related to this disclosure may be provided to users in SaaS (Software as a Service) format.
[0767] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing of the specific process may be performed by multiple computers, including computer 22. For example, a data generation model 58 may be provided in an external device of the data processing device 12, and the external device may generate data according to the input data.
[0768] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.
[0769] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[0770] Furthermore, it is not necessary to store the entirety of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.
[0771] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.
[0772] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Alternatively, the hardware resource that performs a specific process may consist of a single processor.
[0773] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.
[0774] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.
[0775] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and the like that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.
[0776] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted to be incorporated by reference.
[0777] The following is further disclosed regarding the embodiments described above.
[0778] (Claim 1)
[0779] A means of automatically obtaining the latest information on software components,
[0780] A means to analyze dependencies and evaluate their impact based on the acquired information,
[0781] A means of performing selective updates to software components after assessing the impact,
[0782] A means to test the system state after the update and record the results,
[0783] A means to roll back updates as needed based on test results,
[0784] A means of notifying users of the update results,
[0785] A system that includes this.
[0786] (Claim 2)
[0787] The system according to claim 1, which utilizes a generative artificial intelligence model when analyzing the dependencies of the aforementioned software components.
[0788] (Claim 3)
[0789] The system according to claim 1, wherein the execution of the tests includes unit tests, integration tests, and regression tests.
[0790] "Example 1"
[0791] (Claim 1)
[0792] A means of periodically accessing public information sources for information storage devices and collecting the latest information on information components,
[0793] A means for analyzing the dependencies between information components based on the collected information and for evaluating modifications based on that analysis,
[0794] A means for selectively updating necessary information components based on the results of the impact assessment,
[0795] A means of executing an automated testing process after the update and systematically recording the test results,
[0796] Based on the test results, measures will be taken to revoke the renewal as necessary,
[0797] Means for notifying information users of updates and related test results,
[0798] A system that includes this.
[0799] (Claim 2)
[0800] The system according to claim 1, which uses generative artificial intelligence technology to generate instruction statements and predict the effects of modifications when analyzing the dependencies between the aforementioned information components.
[0801] (Claim 3)
[0802] The system according to claim 1, wherein the execution of the tests includes individual tests, comprehensive tests, and change impact tests.
[0803] "Application Example 1"
[0804] (Claim 1)
[0805] A means of automatically obtaining the latest information on software components,
[0806] A means to analyze dependencies and evaluate their impact based on the acquired information,
[0807] A means of performing selective updates to software components after assessing the impact,
[0808] A means to test the system state after the update and record the results,
[0809] A means to roll back updates as needed based on test results,
[0810] A means of notifying users of the update results,
[0811] A means for collecting real-time update information on control software in multiple automated machinery devices and guiding the update procedures for these automated machinery devices,
[0812] A system that includes this.
[0813] (Claim 2)
[0814] The system according to claim 1, which utilizes a generative artificial intelligence model when analyzing the dependencies of the aforementioned software components.
[0815] (Claim 3)
[0816] The system according to claim 1, wherein the execution of the tests includes unit tests, integration tests, and regression tests.
[0817] "Example 2 of combining an emotion engine"
[0818] (Claim 1)
[0819] A means by which an information processing device automatically acquires constituent information from an information resource,
[0820] A means for storing acquired information in a storage device and analyzing its dependencies,
[0821] A means of evaluating the impact based on the analysis results using a generative artificial intelligence model,
[0822] Means for performing selective updates of components based on impact assessment,
[0823] A means for performing a series of tests to evaluate the device status after the update and recording the results,
[0824] A means for performing a process to revert the update to its original state based on the test results,
[0825] A means of notifying users of update results based on their emotional state using an emotion analysis function,
[0826] A system that includes this.
[0827] (Claim 2)
[0828] The system according to claim 1, which utilizes a generative artificial intelligence model in the process of analyzing dependencies and assessing their impact.
[0829] (Claim 3)
[0830] The system according to claim 1, wherein the execution of the series of tests includes unit evaluation, integrated evaluation and regression evaluation.
[0831] "Application example 2 when combining with an emotional engine"
[0832] (Claim 1)
[0833] A means of automatically obtaining the latest information on software components,
[0834] A means to analyze dependencies and evaluate their impact based on the acquired information,
[0835] A means of performing selective updates to software components after assessing the impact,
[0836] A means to test the system state after the update and record the results,
[0837] A means to roll back updates as needed based on test results,
[0838] A means of notifying users of the update results,
[0839] A means of recognizing the user's emotions and dynamically adjusting the content of notifications,
[0840] Means of adjusting the home environment based on family feelings,
[0841] A system that includes this.
[0842] (Claim 2)
[0843] The system according to claim 1, which utilizes a generative artificial intelligence model when analyzing the dependencies of the aforementioned software components.
[0844] (Claim 3)
[0845] The system according to claim 1, wherein the execution of the tests includes unit tests, integration tests, and regression tests.
[0846] [Explanation of Symbols]
[0847] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots< / url:> < / url:> < / url:> < / url:>
Claims
1. A means of automatically obtaining the latest information on software components, A means to analyze dependencies and evaluate their impact based on the acquired information, A means of performing selective updates to software components after assessing the impact, A means to test the system state after the update and record the results, A means to roll back updates as needed based on test results, A means of notifying users of the update results, A means for collecting real-time update information on control software in multiple automated machinery devices and guiding the update procedures for these automated machinery devices, A system that includes this.
2. The system according to claim 1, which utilizes a generative artificial intelligence model when analyzing the dependencies of the aforementioned software components.
3. The system according to claim 1, wherein the execution of the tests includes unit tests, integration tests, and regression tests.