Information processing apparatus, information processing method, and program

An information processing device with a generation AI facilitates the efficient modification of meal menus by generating substitute dishes that adhere to constraints, addressing the challenge of changing menus due to events like ingredient unavailability or price changes.

JP2026025991AActive Publication Date: 2026-02-16BLENDING TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2025126750
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-08-02
Filing Date
2025-07-29
Publication Date
2026-02-16
Estimated Expiration
2045-07-29

AI Technical Summary

Technical Problem

Generating a new meal menu when part of the existing menu needs to be changed, such as due to price fluctuations or ingredient unavailability, is cumbersome for specialists like nutritionists as it requires considering relationships between different meal periods and constraints.

Method used

An information processing device that uses a generation AI to generate alternative menu information that satisfies constraints by inputting prompt data, allowing for the appropriate change of solution information when part of the menu is altered.

Benefits of technology

Enables efficient and appropriate modification of menu information by leveraging AI to generate substitute dishes that meet predefined constraints, reducing the burden on experts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026025991000001_ABST
    Figure 2026025991000001_ABST
Patent Text Reader

Abstract

To appropriately change solution information when changing a part of the solution information indicating a solution generated by optimization processing.SOLUTION: The information processor 100 includes a control unit 120 that, when changing a part of menu information generated by an optimizing process using constraint conditions (for example, an ingredient use interval, a seasoning use interval, a cooking style, an upper limit of initial price of a dish, an upper limit of energy, and a lower limit of protein content), transmits, to a generating AI10, a prompt to generate a substitute dish satisfying the constraint conditions, acquires, from the generating AI10, a response to the prompt, and changes the menu information using the substitute dish included in the response.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing device, an information processing method, and a program that can handle solutions generated by optimization. [Background technology]

[0002] Conventionally, there are techniques for generating various types of information to satisfy predetermined conditions. For example, a technique for creating a meal menu for multiple consecutive meals based on multiple conditions has been proposed (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Publication No. 2023-035550 Summary of the Invention [Problem to be solved by the invention]

[0004] Here, assume that an event occurs in which a portion of a meal menu for multiple meals needs to be changed. In this case, it is conceivable that a specialist such as a nutritionist will generate a new menu in response to the event. For example, if an event occurs in which a vegetable (e.g., cabbage) whose price has risen sharply due to environmental factors needs to be substituted with another vegetable, it is conceivable to generate a menu using the substituted vegetable. In this case, the specialist must generate a new menu for the period to be changed, taking into consideration the relationship between the menu for the period to be changed and the menus for other periods, etc., so as to satisfy predetermined conditions (e.g., the interval between use of ingredients, the interval between use of seasonings, the upper limit of the cost of the dish (or meal), and the upper limit of energy). For this reason, generating this new menu may be cumbersome for the specialist.

[0005] An object of the present invention is to appropriately change solution information indicating a solution generated by an optimization process when part of the solution information is to be changed. [Means for solving the problem]

[0006] One aspect of the present invention is an information processing device that includes a control unit that, when changing part of solution information indicating a solution generated by an optimization process using constraints, passes input data to a generation AI that includes instruction information to generate alternative information for the part that satisfies the constraints, obtains answer data for the input data from the generation AI, and executes control to change the solution information using the alternative information included in the answer data; an information processing method that includes each of the processes; and a program that causes a computer to execute each of the processes. [Effects of the Invention]

[0007] According to the present invention, when part of solution information indicating a solution generated by optimization processing is to be changed, the solution information can be changed appropriately. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 is a block diagram illustrating an example of the functional configuration of an information processing system. [Figure 2] FIG. 2 is a diagram schematically illustrating an example of using menu information. [Figure 3] FIG. 3 is a diagram showing an example of the relationship between change events, change periods of menu information, etc. [Figure 4] FIG. 4 is a diagram showing a simplified example of the configuration of the menu information DB. [Figure 5] FIG. 5 is a diagram showing a simplified example of the configuration of a recipe DB. [Figure 6] FIG. 6 is a diagram showing a simplified example of the configuration of an ingredient DB. [Figure 7] FIG. 7 is a diagram showing a simplified example of the configuration of the seasoning DB. [Figure 8] FIG. 8 is a diagram showing a simplified example of the structure of the cooking method DB. [Figure 9] FIG. 9 is a diagram showing a simplified example of the configuration of the cooking utensil DB. [Figure 10]FIG. 10 is a simplified diagram illustrating an example of the configuration of the list holding unit. [Figure 11] FIG. 11 is a simplified diagram illustrating an example of the configuration of the determination result storage unit. [Figure 12] FIG. 12 is a sequence chart showing an example of communication processing between devices. [Figure 13] FIG. 13 is a flowchart showing an example of the ingredient list generation process. [Figure 14] FIG. 14 is a flowchart showing an example of a seasoning list generation process. [Figure 15] FIG. 15 is a flowchart showing an example of the ingredient use interval evaluation process. [Figure 16] FIG. 16 is a flowchart showing an example of a seasoning use interval evaluation process. [Figure 17] FIG. 17 is a flowchart showing an example of the cooking method evaluation process. [Figure 18] FIG. 18 is a flowchart showing an example of a menu information change process. [Figure 19] FIG. 19 is a diagram illustrating an example of the configuration of the dish characteristics DB. [Figure 20] FIG. 20 is a diagram showing an example of generating an alternative dish using the dish feature DB. [Figure 21] FIG. 21 is a diagram showing an example of generating substitute dishes using the relationships between substitute dishes. DETAILED DESCRIPTION OF THE INVENTION

[0009] Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings.

[0010] [Example of information processing system configuration] FIG. 1 is a block diagram showing an example of the functional configuration of information processing system IS1. Information processing system IS1 is an example of a system that generates menu information (solution information) through optimization processing using constraints. Note that constraints refer to some kind of restriction or the like used when deriving a solution through optimization processing. In other words, an optimal solution is derived through optimization processing under constraints. When menu information is obtained as a solution, constraints are set, such as the interval between ingredients being used, the interval between seasonings being used, the cooking method, the upper limit of the cost of the dish (or meal), the upper limit of energy, and the lower limit of protein.

[0011] The information processing system IS1 includes a generating AI (Artificial Intelligence) 10, an information processing device 100, and a user terminal 200. These devices are configured to be connectable by a communication method using wired or wireless communication, either directly or via a network NW1. The network NW1 is a network such as a public line network or the Internet.

[0012] 1 shows an example in which the generation AI 10 and the information processing device 100 are each configured as a single device, but the functions of each of these devices may be realized by multiple devices. Also, while an example in which the generation AI 10 and the information processing device 100 are configured as separate entities is shown, the generation AI 10 and the information processing device 100 may also be configured as an integrated device. Also, while FIG. 1 shows only one user terminal 200 as an example, it is similarly possible to use multiple electronic devices.

[0013] The generation AI 10 is realized by an information processing device capable of executing various information generation processes using an AI model (e.g., a machine learning model generated by machine learning), or an information processing system composed of multiple devices. Note that the term "learning" used in this embodiment refers to discovering patterns behind a large amount of data based on the data. Furthermore, the AI ​​model generated by learning used in this embodiment is generated using various learning algorithms.

[0014] As the generative AI, for example, an LLM (large language model) or a multimodal LLM can be used. As the LLM, for example, various natural language processing models (e.g., BERT (Bidirectional Encoder Representations from Transformers)), ChatGPT (Generative Pre-trained Transformer), GPT-4, GPT-4 Turbo, GPT-4o (Omni), GPT-4o mini, Bard, Llama (Large Language Model Meta AI), Gemini, Claude, etc. can be used. Note that these are just examples, and other generative AIs may also be used.

[0015] The information processing device 100 is an information processing device that executes an optimization process to satisfy constraint conditions and is capable of obtaining menu information (solution information) that satisfies the constraint conditions through this optimization process. For example, the information processing device 100 can generate menu information based on the constraint conditions and provide the generated menu information to the user terminal 200 via the network NW1. Note that the optimization process can be a known optimization process (for example, a combinatorial optimization process).

[0016] Here, menu information refers to a menu for multiple consecutive meals. Furthermore, a meal refers to the meal content for each time period included in the menu information (e.g., breakfast, lunch, dinner). Furthermore, a meal is made up of one or more dishes. Furthermore, a dish is made up of one or more ingredients (e.g., vegetables, meat, seafood) with a specific seasoning. In other words, ingredients and seasonings refer to the elements that make up a meal. Furthermore, seasoning refers to the flavor added to the ingredients used in a meal (or the seasonings that achieve that flavor).

[0017] In addition, when it becomes necessary to change part of the menu information (solution information), the information processing device 100 can input input data to the generation AI 10 that includes a prompt (instruction information) to generate some substitute dishes (substitute information) that satisfy the constraints, obtain response data for the input data from the generation AI 10, and execute control to change the menu information using the substitute dishes included in the response data.

[0018] The information processing device 100 includes a communication unit 110, a control unit 120, and a storage unit .

[0019] The communication unit 110, under the control of the control unit 120, exchanges various types of information with other devices using wired or wireless communication.

[0020] The control unit 120 controls each unit based on data stored in the storage unit 130 (for example, data for implementing various programs). The control unit 120 is realized by, for example, a processing device or processing circuit such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). In other words, these processing devices and processing circuits are realized by, for example, an appropriate combination of circuits, circuits, processors, memories, etc. Specifically, the control unit 120 includes an acquisition unit 121, a generation unit 122, an update unit 123, a recording control unit 124, and a provision unit 125. Note that each of these units refers to a functional processing unit realized by, for example, hardware resources and information processing by software that can be specifically implemented by the hardware resources.

[0021] The acquisition unit 121 acquires information (for example, change information, instruction information (see FIG. 12)) exchanged with other devices via the communication unit 110, and outputs this information to each unit.

[0022] The generation unit 122 uses each DB (Data Base) stored in the storage unit 130 to perform an optimization process to generate menu information (solution information) so as to satisfy the constraint conditions specified by the user, and outputs the generated menu information to the recording control unit 124 and the providing unit 125. For example, the generation unit 122 can obtain menu information by employing a known combinatorial optimization process. Furthermore, for example, the constraint conditions are set based on various parameters input by the user. For example, the interval between ingredients being used, the interval between seasonings being used, the cooking method, the upper limit of the cost of the dish (or meal), the upper limit of energy, the lower limit of protein, etc. are set as constraint conditions. Note that these constraint conditions are merely examples, and some of the constraint conditions may be omitted, or other constraint conditions may be set.

[0023] When it becomes necessary to change part of the menu information generated by the generation unit 122, the update unit 123 executes an update process to generate substitute dishes (substitute information) for that part using the generation AI 10, and outputs the substitute dishes generated by the update process to the generation unit 122. An example of when it becomes necessary to change part of the menu information is shown in FIG. 3. For example, when it becomes necessary to change part of the menu information, the update unit 123 passes input data to the generation AI 10 including a prompt (instruction information) to generate substitute dishes for that part so as to satisfy the constraints, and obtains answer data for the input data from the generation AI 10. The update unit 123 then outputs the substitute dishes included in the answer data to the generation unit 122. The update process will be described in detail with reference to FIG. 12 etc.

[0024] The recording control unit 124 executes recording control for recording the menu information etc. generated by the generating unit 122 in the menu information DB 300 of the storage unit 130.

[0025] The providing unit 125 provides each piece of information output from each unit to the user terminal 200 via the communication unit 110. For example, the providing unit 125 provides the menu information generated by the generating unit 122 to the user terminal 200 via the communication unit 110. Also, for example, the providing unit 125 provides the menu information including substitute dishes generated by the generating AI 10 to the user terminal 200 via the communication unit 110.

[0026] The storage unit 130 is a storage medium that stores various types of information. For example, the storage unit 130 stores various types of information required for the control unit 120 to perform various processes (e.g., a control program, a menu information DB 300 (see FIG. 4), a cooking DB 310 (see FIG. 5), an ingredient DB 320 (see FIG. 6), a seasoning DB 330 (see FIG. 7), a cooking method DB 340 (see FIG. 8), a cooking utensil DB 350 (see FIG. 9), a list holding unit 360 (see FIG. 10), and a determination result holding unit 370 (see FIG. 11)). The storage unit 130 also stores various types of information acquired via the communication unit 110. The storage unit 130 can be, for example, a read-only memory (ROM), a random access memory (RAM), a static random access memory (SRAM), a hard disk drive (HDD), a solid state drive (SSD), or a combination thereof.

[0027] 1 shows an example in which each DB, such as menu information DB 300, cooking DB 310, ingredient DB 320, seasoning DB 330, cooking method DB 340, cooking utensil DB 350, list storage unit 360, and determination result storage unit 370, is stored in information processing device 100, but at least some of these DBs may be stored in an external device other than information processing device 100. In this case, information processing device 100 can acquire the contents of each DB from the external device as necessary.

[0028] The user terminal 200 is a device capable of displaying menu information generated by the information processing device 100 and providing it to the user. Furthermore, when it becomes necessary to change part of the menu information generated by the information processing device 100, the user terminal 200 can transmit change information to the information processing device 100 to change that part, and cause the information processing device 100 to generate part of the substitute information that satisfies the constraints. The user terminal 200 is realized by, for example, an electronic device such as a smartphone, a tablet terminal, or a personal computer, an information processing device, or the like.

[0029] The user terminal 200 includes a communication unit 210, a control unit 220, a storage unit 230, and a UI (User Interface) unit 240.

[0030] The communication unit 210 exchanges various types of information with other devices using wired or wireless communication under the control of the control unit 220.

[0031] The control unit 220 controls each unit based on data (for example, data for implementing various programs) stored in the storage unit 230. The control unit 220 is realized by a processing device such as a CPU or a GPU.

[0032] The storage unit 230 is a storage medium that stores various types of information. For example, the storage unit 230 stores various types of information (for example, a control program, a menu generation application) that is required for the control unit 220 to perform various processes. The storage unit 230 also stores various types of information acquired via the communication unit 210. The storage unit 230 can be, for example, a ROM, a RAM, an SRAM, an HDD, an SSD, or a combination thereof.

[0033] The UI unit 240 functions as an interface that accepts operations from the user and provides various types of information to the user, and includes a reception unit 241 and an output unit 242. Although not shown, the UI unit 240 may also include other components such as a sound input unit and a sound output unit. The reception unit 241 and the output unit 242 are examples of a user interface, and other user interfaces may also be used.

[0034] The reception unit 241 receives various operations from the user and outputs the received operation contents to the control unit 220. The reception unit 241 and the output unit 242 may be configured as a touch panel that allows the user to input operations by touching or approaching the display surface with their finger, or may be configured as a separate user interface. When configured as a separate user interface, various operation members such as a button, a keyboard, etc. can be used as the reception unit 241.

[0035] The output unit 242 displays various images based on the control of the control unit 220. As the output unit 242, for example, a display panel such as an organic EL (Electro Luminescence) panel or an LCD (Liquid Crystal Display) panel can be used.

[0036] [Example of using menu information] Fig. 2 is a diagram schematically illustrating an example of use of menu information generated by the information processing device 100. Fig. 2 shows an example of a menu for meals provided at an ABC facility 50. The ABC facility 50 is a facility that provides meals at specific times (e.g., breakfast, lunch, and dinner) over a long period of time. Possible examples of the ABC facility 50 include schools, educational facilities, and nursing homes.

[0037] FIG. 2 shows an example in which the information processing device 100 generates menu information 51-53 for N months and provides it to the ABC facility 50. Here, the menu information 51-53 for N months may have the same menu cycle or may have different menu cycles. For ease of explanation, an example is shown in which the menu information 51-53 for N months each has the same content. In this case, the same meal will be provided every N months. Furthermore, N is a natural number and can be set to a value of, for example, about 1 to 5.

[0038] 2, the cook at the ABC facility 50 can provide meals to one or more people dining at the ABC facility 50 in accordance with menu information 51 to 53 for N months generated by the information processing device 100. An example of the menu contents is shown in FIG. 4, etc.

[0039] Here, it is assumed that for some reason it may become necessary to change the menu contents among the menu information 51 to 53 for N months generated by the information processing device 100. An example of this is shown in FIG.

[0040] [Example of menu information change event] FIG. 3 is a diagram showing an example of the relationship between an event (change event 61) that requires a change to menu information generated by the information processing device 100, a period (date and time information 62) during which the menu information is changed due to this event, and information indicating whether or not to use the item related to the change event during that period (use / do not use 63).

[0041] For example, "Doll's Festival" is assumed as an event requiring a change in menu information. For this change event 61 "Doll's Festival," "March 3rd" (or a date and time around that date and time) is assumed as the period (date and time information 62) for changing the menu information. For example, it is conceivable that dishes appropriate for the festival (for example, chirashizushi, sakura mochi, and sakura shumai) will be served on Doll's Festival. Therefore, there is a possibility that the regular menu information will be changed on Doll's Festival day, "March 3rd" (or a date and time around that date and time). In this case, dishes appropriate for Doll's Festival (for example, chirashizushi, sakura mochi, and sakura shumai) will be used, so "Use" is stored in Use / Not Use 63.

[0042] For example, a "toaster oven breakdown" is considered to be an event that requires a change to the menu information. A toaster oven breakdown is an example of a cooking appliance breakdown. For example, when a meal is prepared within ABC facility 50, it is assumed that the toaster oven installed within ABC facility 50 will break down. Also, for example, when a meal is prepared at a facility outside ABC facility 50 (e.g., a cooking center), it is assumed that the toaster oven installed at that facility will break down. If the toaster oven breaks down, it will be impossible to prepare dishes that require the toaster oven. Therefore, the menu information may need to be changed while the toaster oven is broken. For this change event 61, "toaster oven breakdown," the period (date and time information 62) for changing the menu information is specified by the user as the period until the toaster oven is fixed (or until a new toaster oven is installed). In this case, no dishes that require the toaster oven will be prepared, so "do not use" is stored in Use / Do not use 63.

[0043] For example, an event that requires a change to menu information is when an ingredient becomes unusable. For example, it is conceivable that a particular ingredient (e.g., vegetables, meat, seafood) becomes unusable due to a sharp increase in price, a shortage of the ingredient, spoilage due to poor storage, or a legal ban (e.g., temporary ban) on the sale of the ingredient. If a particular ingredient becomes unusable in this way, it becomes impossible to prepare a dish that uses that ingredient. Therefore, there is a possibility that menu information will be changed during the period when the ingredient is unusable. Note that for change event 61 "ingredient becomes unusable," the period (date and time information 62) for changing the menu information is specified by the user as the period until the ingredient becomes usable. In addition, in this case, the unusable ingredient will not be used, so "not used" is stored in Use / Not Use 63.

[0044] For example, "using seasonal ingredients" is assumed as an event that requires a change in menu information. For example, seasonal ingredients are assumed to be ingredients according to the place where the meal is served. For example, bamboo shoots are assumed in the spring, eggplants in the summer, and chestnuts in the fall. In this way, when using seasonal ingredients, it is necessary to prepare a dish that uses those seasonal ingredients. Therefore, there is a possibility that the menu information will be changed during the period when the seasonal ingredients are used. Note that for this change event 61 "using seasonal ingredients," the period (date and time information 62) during which the menu is changed is the period during which the seasonal ingredients are usable (or the period during which they are not usable) specified by the user. In addition, in this case, seasonal ingredients will be used, so "use" is stored in use / not use 63.

[0045] The change event 61 shown in FIG. 3 is an example, and the present invention can also be applied to other events.

[0046] As described above, when an event (change event 61) occurs that requires a change to the menu information generated by the information processing device 100, a dietitian or other expert may generate a new menu in response to the event. For example, when an event occurs in which an ingredient becomes unavailable, a menu using a substitute ingredient may be generated. In this case, the expert must generate a new menu for the period to be changed, taking into consideration the relationship between the menu for the period to be changed and the menus for other periods, so as to satisfy constraints (e.g., the interval between ingredients, the interval between seasonings, cooking method, upper limit of the cost of the dish (or meal), upper limit of energy, lower limit of protein, and color (e.g., the combination of yellow, green, and red, and their proportions)). Therefore, generating this new menu may be cumbersome for the expert. Therefore, in this embodiment, an example is shown in which, when a portion of the menu information generated by the optimization process is changed to satisfy the constraints, the generation AI 10 is used instead of the expert to appropriately modify the menu information.

[0047] [Menu information DB configuration example] FIG. 4 is a diagram showing a simplified example of the configuration of menu information DB300 stored in storage unit 130.

[0048] The menu information DB300 is a database that stores menu information generated by the generation unit 122. In this embodiment, an example is shown in which a menu to be provided to a predetermined facility (e.g., a school or a welfare facility) is generated on a monthly basis. Also, FIG. 4 shows an example in which menu information to be provided to a predetermined facility on a monthly basis is stored in the menu information DB300.

[0049] The menu information DB 300 stores date and time information 301, meal ID 302, dish ID 303, dish name 304, dish category 305, unit price 306, energy 307, protein 308, and meal category 309 in association with each other.

[0050] Date and time information 301 is information indicating the date and time the meal will be served. Meal ID 302 is identification information (e.g., letters, numbers, symbols, or a combination thereof) for identifying the meal to be served. Dish ID 303 is identification information (e.g., letters, numbers, symbols, or a combination thereof) for identifying each dish included in the meal to be served.

[0051] The dish name 304 is information indicating the name of each dish included in the meal provided. The dish classification 305 is information indicating the classification (category) of each dish included in the meal provided. For example, A (staple dish), B (main dish), C (side dish), D (side dish), E (pickles), etc. are stored as the dish classification 305 according to each dish.

[0052] Unit price 306 is information indicating the unit price of each dish included in the meal to be served. Energy 307 is information (e.g., calories) indicating the amount of energy ingested from each dish included in the meal to be served. Protein 308 is information indicating the amount of protein ingested from each dish included in the meal to be served. Meal category 309 is information indicating the category of the meal to be served (e.g., breakfast (morning), lunch (lunch), dinner (dinner)). Note that FIG. 4 shows as an example menu information that provides only meals in meal category 309 "lunch."

[0053] Each of these pieces of information is stored based on the menu information generated by the generation unit 122. Furthermore, each of these pieces of information is acquired based on the information stored in each DB. Note that the information stored in the menu information DB 300 shown in FIG. 4 is an example, and some of this information may be omitted or other information may be stored as necessary. For example, dish category 305, unit price 306, energy 307, protein 308, meal category 309, etc. may be managed using IDs.

[0054] [Example of recipe DB configuration] FIG. 5 is a diagram showing a simplified example of the structure of the recipe DB 310 stored in the storage unit 130.

[0055] The dish DB 310 is a database that stores information about each dish that constitutes a meal included in the menu information generated by the generation unit 122. The dish DB 310 stores a dish ID 311, a dish name 312, ingredients used 313, seasonings used 314, cooking methods 315, and cooking utensils used 316 in association with each other.

[0056] Recipe ID 311 and recipe name 312 correspond to recipe ID 303 and recipe name 304 shown in Fig. 4. Ingredients used 313 is information indicating the ingredients and amounts used for the dish whose recipe name is stored in recipe name 312. Seasoning used 314 is information related to the seasoning (e.g., seasoning) used for the dish whose recipe name is stored in recipe name 312. Note that for ease of explanation, Fig. 5 shows only a representative portion of the elements of ingredients used 313 and seasoning used 314. For example, seasoning (e.g., salt, soy sauce) and its amount used (e.g., 0.5g) may be stored as ingredients used 313.

[0057] Cooking method 315 is information indicating the cooking method for cooking the meal to be served. Cooking utensils to be used 316 is information indicating the cooking utensils to be used for cooking the meal to be served. If multiple cooking methods are required for the same meal, each of those cooking methods is stored in cooking method 315, and the cooking utensils corresponding to each of those cooking methods are stored in cooking utensils to be used 316. If different cooking methods can be used for the same dish, each of those cooking methods is stored in cooking method 315, and the cooking utensils corresponding to each of those cooking methods are stored in cooking utensils to be used 316.

[0058] 5 is an example, and some of the information may be omitted or other information may be stored as needed. For example, ingredients used 313, seasonings used 314, cooking methods 315, cooking utensils used 316, etc. may be stored in association with corresponding IDs and used in extraction processing (see FIG. 12, etc.).

[0059] [Example of food DB configuration] FIG. 6 is a diagram showing a simplified example of the structure of the ingredient DB 320 stored in the storage unit 130.

[0060] The ingredient DB 320 is a database that stores information about each ingredient used in a dish included in the menu information generated by the generation unit 122. The ingredient DB 320 stores an ingredient ID 321, an ingredient name 322, a usage interval condition 323, a unit price 324, an energy 325, and a protein 326 in association with each other.

[0061] The ingredient ID 321 is identification information (for example, letters, numbers, symbols, or a combination thereof) for identifying ingredients used in the dish to be served. The ingredient name 322 is information indicating the name of the ingredient used in the meal to be served.

[0062] The usage interval condition 323 is information indicating the period during which a used ingredient can next be used. For example, for the ingredient name 322 "spinach" corresponding to the ingredient ID 321 "44312," "wait at least five days" is stored as the usage interval condition 323. Therefore, for example, if "spinach" is used as an ingredient in some dish on July 12, 2024, this means that "spinach" cannot be used as an ingredient until July 17, 2024, which is more than five days after the date of use of the "spinach." In other words, "spinach" will be usable as an ingredient from July 18, 2024 onwards. In this way, for each ingredient, a period during which it will not be used is set as a constraint.

[0063] Unit price 324 is information indicating the unit price of the ingredient. Energy 325 is information indicating the amount of energy (e.g., calories) that can be ingested from the ingredient. Protein 326 is information indicating the amount of protein that can be ingested from the ingredient.

[0064] The information stored in ingredient DB 320 shown in FIG. 6 is an example, and some of the information may be omitted or other information may be stored as necessary.

[0065] [Seasoning DB configuration example] FIG. 7 is a diagram showing a simplified example of the configuration of the seasoning DB 330 stored in the storage unit 130. As shown in FIG.

[0066] The seasoning DB 330 is a database that stores information about seasonings used in dishes included in the menu information generated by the generation unit 122. The seasoning DB 330 stores a seasoning ID 331, a seasoning ingredient name 332, and a use interval condition 333 in association with each other.

[0067] The seasoning ID 331 is identification information (e.g., letters, numbers, symbols, or a combination thereof) for identifying the seasoning ingredients used in the dish to be served. The seasoning ingredient name 332 is information indicating the name of the seasoning ingredients used in the meal to be served.

[0068] The use interval condition 333 is information indicating the period during which the seasoning ingredient can be used again after use. Note that the use interval condition 333 is information indicating the period during which the seasoning ingredient cannot be used, similar to the use interval condition 323 shown in FIG. 6.

[0069] The information stored in the seasoning DB 330 shown in FIG. 7 is an example, and some of the information may be omitted or other information may be stored as necessary.

[0070] [Example of cooking method DB configuration] FIG. 8 is a diagram showing a simplified example of the structure of the cooking method DB 340 stored in the storage unit 130.

[0071] The cooking method DB 340 is a database that stores information about cooking methods for dishes included in menu information generated by the generation unit 122. The cooking method DB 340 stores a cooking method ID 341, a cooking method 342, and a use interval condition 343 in association with each other.

[0072] The cooking method ID 341 is identification information (for example, letters, numbers, symbols, or a combination thereof) for identifying the cooking method used for the dish to be served. The cooking method 342 is information indicating the name of the cooking method for the meal to be served.

[0073] The usage interval condition 343 is information indicating restrictions on the use of the cooking method stored in the cooking method 342. For example, it is considered preferable not to include two or more fried dishes in the same meal. It is also considered preferable not to include fried dishes consecutively in breakfast, lunch, and dinner. On the other hand, it is often acceptable to include two or more boiled dishes in the same meal. It is also often acceptable to include boiled dishes consecutively in breakfast, lunch, and dinner. Therefore, it is preferable to set usage conditions, such as within the same meal or consecutive meals, depending on the cooking method as usage interval conditions.

[0074] In this way, it is possible to set constraints in the cooking method DB 340 to restrict cases where the main dish and side dish are fried foods in the same meal, or to restrict the serving of fried foods consecutively at breakfast, lunch, and dinner. However, other conditions may also be used to restrict cooking methods. For example, the cooking method and ingredient combinations that serve as constraints may be stored in the cooking method DB 340.

[0075] For example, it is possible to associate and store candidate ingredients such as "chicken, eggplant, lotus root, shrimp, ..." that can be used in association with cooking method 342 "fry." In this case, if each ingredient contained in a target dish is included in the "candidate ingredients that can be used in cooking" associated with the cooking method of the target dish, the target dish is determined to satisfy the constraints, and if each ingredient is not included in the "candidate ingredients that can be used in cooking," the target dish is determined not to satisfy the constraints.

[0076] Furthermore, for example, a combination of cooking methods and ingredients that does not satisfy the constraints may be stored in the cooking method DB 340. For example, it is generally unthinkable to imagine a dish that involves deep-frying strawberries. Therefore, the ingredient "strawberries" and the cooking method "deep-frying" may be stored in association with each other, and if a dish made up of these combinations is a target dish, it can be determined that the target dish does not satisfy the constraints.

[0077] The information stored in the cooking method DB 340 shown in FIG. 8 is an example, and some of the information may be omitted as necessary, or other information may be stored as described above.

[0078] [Example of cooking utensil database configuration] FIG. 9 is a diagram showing a simplified example of the configuration of the cooking utensil DB 350 stored in the storage unit 130.

[0079] The cooking utensil DB 350 is a database that stores information about cooking utensils used to prepare dishes included in the menu information generated by the generation unit 122. The cooking utensil DB 350 stores cooking utensil IDs 351, cooking utensil names 352, simmering cooking methods 353, roasting cooking methods 354, and steaming cooking methods 355 in association with each other.

[0080] The cookware ID 351 is identification information (for example, letters, numbers, symbols, or a combination thereof) for identifying the cookware used to prepare the food to be served. The cookware name 352 is information indicating the name of the cookware used to prepare the food to be served.

[0081] Boiling cooking 353, roast cooking 354, and steaming cooking 355 are information indicating cooking methods that can be performed using the cookware stored in cookware name 352. For example, for cookware name 352 "oven" corresponding to cookware ID 351 "100102," boiling, roasting, and steaming are all possible, so "possible" is stored in each of boiling cooking 353, roast cooking 354, and steaming cooking 355. Note that while FIG. 9 shows only boiling cooking 353, roast cooking 354, and steaming cooking 355 as representative examples, other cooking methods (e.g., baking, frying) may also be stored in cookware DB 350.

[0082] The information stored in the cooking utensil DB 350 shown in FIG. 9 is an example, and some of the information may be omitted or other information may be stored as necessary.

[0083] [Example of list holder configuration] FIG. 10 is a simplified diagram showing an example of the configuration of list holding unit 360 stored in storage unit 130. As shown in FIG.

[0084] The list storage unit 360 is a storage unit that stores a list of ingredients, seasonings, etc. that can be used for a substitute dish when instructing the generation AI 10 to generate the substitute dish. The list storage unit 360 stores an available ingredient list 362 and an available seasoning list 363 in association with date and time 361. Note that these lists are examples, and some may be omitted, or other lists may be added. For example, a list of available cooking methods may be added. Note that a method for extracting information stored in each of these lists will be described in detail with reference to Figures 12 to 14, etc.

[0085] [Configuration example of the judgment result storage unit] FIG. 11 is a simplified diagram showing an example of the configuration of the determination result holding unit 370 stored in the storage unit 130. As shown in FIG.

[0086] The determination result storage unit 370 stores the evaluation result (determination result) when evaluating whether the menu information generated by the generation unit 122 satisfies the constraint conditions. Similarly, when a portion of the menu information is updated using a substitute dish acquired from the generation AI 10, the updated menu information is evaluated to determine whether it satisfies the constraint conditions, and the evaluation result (determination result) is stored in the determination result storage unit 370.

[0087] The determination result storage unit 370 stores ingredient use interval 372, seasoning use interval 373, cooking method 374, cost 375, energy 376, and protein 377 in association with date and time 371. The method for determining each determination result stored in the determination result storage unit 370 will be described in detail with reference to Figs. 12, 15 to 17, etc.

[0088] [Example of operation of information processing device] 12 is a sequence chart showing an example of communication processing between the information processing device 100 and the user terminal 200. This communication processing is started when a user operation is performed on the user terminal 200. This communication processing example will be described with reference to FIGS. 1 to 11 as needed.

[0089] In step S501, the control unit 220 of the user terminal 200 transmits change information for changing the menu information stored in the menu information DB 300 to the information processing device 100 based on a user operation. For example, as shown in Fig. 3, possible change information may include information for changing the menu for Hinamatsuri (March 3) to a menu related to Hinamatsuri (for example, a period (for example, March 3) and dishes (for example, Hinamatsuri-related dishes)), information indicating a period during which the toaster oven cannot be used because it is broken (information regarding a period during which a restriction that the toaster oven not be used is added), information indicating a period until an ingredient becomes available because it is no longer available, information indicating a period during which seasonal ingredients are available because a meal using seasonal ingredients is desired to be served, and the like.

[0090] The change information includes the period for which the menu information is changed (for example, the content corresponding to the date and time information 62 (see FIG. 3)), the subject of the menu information change (the content corresponding to the change event 61 (see FIG. 3)), etc. The subject of the menu information change is, for example, ingredients, cooking utensils, and cooking methods.

[0091] In step S502, the acquisition unit 121 of the information processing device 100 acquires the change information and outputs it to the update unit 123. FIG. 12 shows an example of a case where change information (dotted rectangle SQ1 (see FIG. 4)) to change the dish category 305 "C (side dish)" and "D (appetizer)" for the date and time information 301 "2023 / 6 / 12 12:00-13:00" is received in step S502. Note that the change information is not limited to this. For example, the change information may be change information to change meals for a predetermined period (e.g., several days, three meals a day), one meal, some of the dishes that make up a meal, or the ingredients or seasonings thereof.

[0092] In step S503, the update unit 123 of the information processing device 100 extracts ingredients and seasonings that satisfy the constraints for the period related to the change information received in step S502. The one or more ingredients and seasonings extracted by this extraction process are stored in the list storage unit 360 (see FIG. 10). In this case, the update unit 123 may adjust the one or more ingredients and seasonings extracted by the extraction process based on the change information received in step S502. For example, if change information corresponding to change event 61 (see FIG. 3) "toaster oven malfunction" is received, the list storage unit 360 may store information indicating that cooking methods performed using only a toaster oven are to be excluded based on the contents of the cooking appliance DB 350. Furthermore, for example, if change information corresponding to change event 61 "ingredient cannot be used" is received, the unavailable ingredient may be excluded from the usable ingredient list 362 (see FIG. 10). For example, when change information corresponding to change event 61 "Use seasonal ingredients" is received, the specified ingredients may be added to the available ingredient list 362 (see FIG. 10). For example, when change information corresponding to change event 61 "Another recipe" is received, the list storage unit 360 may store information indicating that the specified recipe should be excluded. These stored contents can be included in a prompt and passed to the generation AI 10. The extraction process will be described in detail with reference to FIGS. 13 and 14.

[0093] In step S504, the update unit 123 of the information processing device 100 determines whether all ingredients and seasonings have been extracted in the extraction process in step S503. Specifically, the generation unit 122 determines whether information is stored in all of the available ingredient lists 362 and available seasoning lists 363 in the list holding unit 360. If information is stored in all of these lists, the update unit 123 determines that all ingredients and seasonings have been extracted. On the other hand, if information is not stored in at least some of these lists, the generation unit 122 determines that not all ingredients and seasonings have been extracted. If all ingredients and seasonings have been extracted, the process proceeds to step S510. On the other hand, if at least some ingredients and seasonings have not been extracted, the process proceeds to step S505.

[0094] In step S505, the providing unit 125 of the information processing device 100 transmits to the user terminal 200 information indicating that it is impossible to generate menu information according to the change information received in step S502. That is, a process is executed to notify the user that it is impossible to generate menu information according to the change information transmitted from the user terminal 200 in step S501. In this example, if all ingredients and seasonings are not extracted, the user is notified that it is impossible to generate menu information. However, even if some ingredients and seasonings are extracted (or if all ingredients and seasonings are not extracted), a prompt including the extracted information (or other information (e.g., main dish, side dish, type of side dish, menu policy)) may be sent to the generation AI 10 to generate and use a substitute dish. In this case, since it is evaluated in step S512 whether the menu information incorporating the substitute dish satisfies the constraints, it is possible to generate menu information that satisfies the constraints by repeating the substitute dish generation process one or more times.

[0095] In step S506, the control unit 220 of the user terminal 200 receives information indicating that it is impossible to generate menu information according to the change information and notifies the user of this fact. For example, the control unit 220 can display this fact on the display unit of the output unit 242 or output it as an audio message from the audio output unit. This allows the user to understand that it is impossible to generate menu information according to the change information sent to the information processing device 100 by the user's operation.

[0096] In step S507, the control unit 220 of the user terminal 200 determines whether the user has performed a setting operation to set new change information to change the menu information. For example, it is assumed that the user has performed a setting operation to change part of the change information (e.g., to use seasonal ingredients A, B, and C) transmitted in step S501 (e.g., to use seasonal ingredients A and B). If a setting operation for new change information has been performed, the process proceeds to step S501, and the new change information is transmitted to the information processing device 100. As a result, the process for extracting ingredients and seasonings that satisfy the constraints (step S503) and the process for generating substitute dishes using the generation AI 10 (steps S510 to S515) are performed for the new change information. On the other hand, if a setting operation for new change information has not been performed (or if an operation to stop generating menu information according to the change information has been performed), the operation ends.

[0097] In step S510, the update unit 123 of the information processing device 100 generates a prompt to generate an alternative dish using the ingredients and seasonings extracted in step S503, and inputs the generated prompt to the generation AI 10.

[0098] As described above, assume that change information for making changes to the dotted-line rectangle SQ1 (see FIG. 4) is received. In this case, from the perspective of a professional nutritionist, a prompt can be used to suggest multiple dishes (alternative dishes) that can be used as side dishes and appetizers using ingredients stored in the available ingredient list 362 and seasonings stored in the available seasoning list 363. For example, a prompt can be used that includes the following task instruction: "You are a professional nutritionist. For each dish that will be used as a side dish and appetizer, please list three dishes that use ingredients from the 'available ingredients' and seasonings from the 'available seasonings'." This prompt can also include a list of ingredients stored in the available ingredient list 362 as "available ingredients" and seasonings stored in the available seasoning list 363 as "available seasonings." The prompt can also include a command to generate alternative dishes that satisfy change conditions set by the user (e.g., change event 61, date and time information 62, and whether or not to use 63 (see FIG. 3)).

[0099] In step S511, the update unit 123 of the information processing device 100 obtains from the generation AI 10 answer data for the prompt input to the generation AI 10 in step S510. This answer data presents multiple dishes that can be used as side dishes and accompaniments as an answer to the prompt input to the generation AI 10 in step S510. For example, if a prompt including list information listing "komatsuna, bacon, broccoli, eggplant, ..." as "usable ingredients" and "butter, soy sauce, consommé, ..." as "usable seasonings" is input to the generation AI 10, a side dish such as "komatsuna and bacon stir-fried, grilled eggplant" and a accompaniment such as "broccoli salad" will be suggested as answer data (alternative dishes) for this prompt.

[0100] In step S512, the generation unit 122 of the information processing device 100 evaluates whether or not the menu information incorporating the substitute dish (included in the response data) acquired in step S511 satisfies the constraint conditions.

[0101] As described above, it is assumed that change information has been received to change the area within the dotted-line rectangle SQ1 (see FIG. 4). In this case, the substitute dishes acquired in step S511 include multiple substitute dishes (combinations of side dishes and side dishes). For example, it is assumed that three substitute dishes (combinations of side dishes and side dishes) A1 to C1 are included. In this case, the generation unit 122 generates menu information for each of the three substitute dishes (combinations of side dishes and side dishes) A1 to C1, incorporating each of the multiple substitute dishes (combinations of side dishes and side dishes) A1 to C1 into the dish categories 305 "C (side dish)" and "D (side dish)" of the date and time information 301 "2023 / 6 / 12 12:00-13:00." That is, menu information A2 incorporating substitute dish (combination of side dish and side dish) A1, menu information B2 incorporating substitute dish (combination of side dish and side dish) B1, and menu information C2 incorporating substitute dish (combination of side dish and side dish) C1 are generated. Then, for each of the three menu information A2-C2 incorporating the three substitute dishes (combination of side dish and side dish) A1-C1, the generation unit 122 evaluates whether each meal included in each of the menu information A2-C2 satisfies the constraints. This evaluation process will be described in detail with reference to Figures 15-17, etc.

[0102] In step S513, the generation unit 122 of the information processing device 100 determines whether the menu information incorporating the substitute dishes acquired from the generation AI 10 satisfies the constraints based on the results of the evaluation process in step S512. As described above, for each of the three menu information A2-C2 incorporating three substitute dishes (combinations of side dishes and side dishes) A1-C1, it is assumed that each of the meals included in the menu information A2-C2 is evaluated to determine whether it satisfies the constraints. In this case, there are possible cases where all of the menu information A2-C2 satisfies the constraints, where some of the menu information A2-C2 does not, and where none of the menu information A2-C2 satisfies the constraints. Therefore, in cases where all of the menu information A2-C2 satisfies the constraints and where some of the menu information A2-C2 does not, the generation unit 122 determines that the menu information incorporating the substitute dishes acquired from the generation AI 10 satisfies the constraints. On the other hand, if none of the menu information A2-C2 satisfies the constraint conditions, it is determined that the menu information incorporating the substitute dish obtained from the generation AI 10 does not satisfy the constraint conditions. If the menu information satisfies the constraint conditions, the process proceeds to step S515. On the other hand, if the menu information does not satisfy the constraint conditions, the process proceeds to step S514. Note that if some of the menu information A2-C2 does not satisfy the constraint conditions, only the menu information of the menu information A2-C2 that satisfies the constraint conditions is subject to transmission to the user terminal 200 (step S515).

[0103] In step S514, the update unit 123 of the information processing device 100 identifies portions determined not to satisfy the constraints in the evaluation process in step S512. For example, if there is an ingredient that does not satisfy the constraints of the ingredient usage interval, that ingredient is identified. In this case, that ingredient is excluded from the extraction process (step S503). Also, for example, if there is a meal that does not satisfy the constraint of the upper limit value TH2 of energy (e.g., 500 kcal), a predetermined number (e.g., 1 to 5) of ingredients that make up that meal and have a high energy per unit are identified. In this case, that ingredient is excluded from the extraction process (step S503). In this way, portions determined not to satisfy the constraints are identified and reflected in the extraction process (step S503).

[0104] In step S515, the providing unit 125 of the information processing device 100 transmits menu information that satisfies the changed constraint conditions to the user terminal 200. This menu information includes the content of the menu information before the change, in which the changed portion (change period) related to the change information received in step S502 has been replaced with the substitute dish (changed portion) acquired from the generation AI 10 in step S511.

[0105] As described above, assume that change information for changing the area within the dotted rectangle SQ1 (see FIG. 4) has been received. Also assume that multiple alternative dishes (combinations of side dishes and side dishes) A1-C1 have been acquired from the generation AI 10. In this case, from among the three menu information A2-C2 in which each of the multiple alternative dishes (combinations of side dishes and side dishes) A1-C1 has been incorporated into the dish categories 305 "C (side dish)" and "D (side dish)" for the date and time information 301 "2023 / 6 / 12 12:00-13:00," one or more menu information determined to satisfy the constraints in step S513 is transmitted to the user terminal 200.

[0106] In step S516, the control unit 220 of the user terminal 200 receives the menu information transmitted from the information processing device 100 and presents the menu information to the user. For example, the control unit 220 can display one or more pieces of changed menu information on the output unit 242 based on the received menu information. In this case, it is possible to display the portion including the changed substitute dish so that it can be distinguished from other menu information (for example, by using a different text color, a different background color, or by enclosing it in a rectangle).

[0107] In step S517, the control unit 220 of the user terminal 200 determines whether a user operation has been performed to newly reflect one or more pieces of menu information presented to the user in step S516. For example, when one piece of menu information is presented to the user, if the user considers adopting that piece of menu information, the user performs a user operation to adopt that piece of menu information. Also, for example, when multiple pieces of menu information are presented to the user, if the user considers adopting one of the multiple pieces of menu information, the user performs a user operation to select the one piece of menu information that the user considers to adopt.

[0108] If a user operation has been performed to newly reflect the menu information presented to the user, the process proceeds to step S518. On the other hand, if a user operation has not been performed to newly reflect the menu information presented to the user (or if a user operation has been performed to further change the presented menu information), the process returns to step S501, and change information corresponding to the user operation (change information for changing the substitute dish) is transmitted to the information processing device 100.

[0109] In step S518, the control unit 220 of the user terminal 200 transmits to the information processing device 100 instruction information to the effect that the menu information presented to the user in step S516 is to be newly reflected.

[0110] In step S519, the acquisition unit 121 of the information processing device 100 receives the instruction information and outputs it to the generation unit 122 and the recording control unit .

[0111] In step S520, the recording control unit 124 of the information processing device 100 reflects the menu information (changed menu information that satisfies the constraint conditions) sent to the user terminal 200 in step S515 in the menu information DB 300 based on the instruction information received in step S519.

[0112] As described above, assume that change information has been received to change the area within the dotted rectangle SQ1 (see FIG. 4). Also assume that it has been determined that the multiple substitute dishes (combinations of side dishes and appetizers) A1-C1 acquired from the generation AI 10 satisfy the constraints for all three menu information A2-C2 incorporated into the dish categories 305 "C (side dish)" and "D (appetizer)" for the date and time information 301 "2023 / 6 / 12 12:00-13:00." Next, assume that menu information B2 has been selected by a user operation from among the three menu information A2-C2. In this case, the recording control unit 124 replaces the meal for the date and time information 301 "2023 / 6 / 12 12:00-13:00" with the corresponding portion of menu information B2. Furthermore, the meal ID 302, the dish ID 303, the dish name 304, etc. can be assigned to the menu information B1 by the generation unit 122 based on each DB.

[0113] In this way, when it becomes necessary to change the menu information generated by the information processing device 100, the user sends the change information to the information processing device 100 using the user terminal 200. As a result, the information processing device 100 can use the generation AI 10 to change the menu information to appropriate menu information according to the change information. In this case, the user operating the user terminal 200 does not need to be an expert such as a nutritionist; they only need to confirm one or more menu information candidates presented by the information processing device 100. Therefore, when it becomes necessary to change part of the menu information generated by the optimization process to satisfy the constraints, it is possible to appropriately change the menu information using the generation AI 10 instead of an expert.

[0114] In this example, the menu information is changed through communication between the information processing device 100 and the generation AI 10 in response to a request from the user terminal 200, but this is not limiting. For example, communication with the generation AI 10 may be performed by an external device other than the information processing device 100. In this case, the information processing device 100 may be a device that performs optimization processing to generate menu information so as to satisfy constraints and performs evaluation processing of the menu information (e.g., a device that performs the processing of steps S502 to S505 and S512 to S515), and may cause the external device to perform communication with the generation AI 10 to change the menu information (e.g., the processing of steps S510 to S511) based on instructions from the information processing device 100.

[0115] [Example of generating a list of ingredients that can be used in a meal on the change date] FIG. 13 is a flowchart showing an example of the ingredient list generation process in the information processing device 100. This ingredient list generation process is executed by the control unit 120 based on a program stored in the storage unit 130. This ingredient list generation process is initiated when change information is acquired by the acquisition unit 121 (step S502 (see FIG. 12)). While FIG. 13 shows an example in which the change date is one day, if the change date is multiple days, the ingredient list generation process is executed for each change date, and the results are stored in the available ingredient list 362 (see FIG. 10) for each change date. This ingredient list generation process will be described with appropriate reference to FIGS. 1 to 12.

[0116] In step S541, the update unit 123 selects an ingredient to be judged from the ingredient DB 320 (see FIG. 6). For example, the update unit 123 selects one ingredient as the ingredient to be judged from the ingredients stored in the ingredient DB 320 in order (for example, in the order of the ingredient ID 321). In this case, the update unit 123 acquires the use interval condition 323 stored in association with the ingredient selected as the ingredient to be judged. Here, an example will be described in which the ingredient name 322 "spinach" corresponding to the ingredient ID 321 "44312" is selected as the ingredient to be judged, and the use interval condition 323 "at least five days apart" associated with the ingredient name 322 "spinach" is acquired.

[0117] In step S542, the update unit 123 sets a non-use period corresponding to the use interval condition based on the change date (e.g., June 13, 2023) corresponding to the change information received in step S502. For example, if the ingredient name 322 "spinach" is selected as the ingredient to be determined, the ingredient name 322 "spinach" is associated with the use interval condition 323 "leave at least 5 days between uses." Therefore, based on the change date, the non-use period before and after the change date is set to be between "change date - 5 days" and "change date + 5 days." For example, if the change date is the 13th, the non-use period before and after the change date (the 13th) is set to be between June 8, 2023 and June 18, 2023. Note that if the non-use period before and after the change date includes a period of the previous month or the next month, the period of the previous month or the next month is set as the non-use period before and after the change date.

[0118] In step S543, the update unit 123 determines whether the determination target ingredient is included in the non-use period set in step S542. For example, the update unit 123 acquires the dish ID 303 corresponding to the non-use period (June 8, 2023 to June 18, 2023) from among the dish IDs 303 in the menu information DB 300 (see FIG. 4). Next, the update unit 123 acquires the used ingredients 313 stored in the dish DB 310 (see FIG. 5) in association with the acquired dish ID 303. Next, the update unit 123 determines whether the acquired used ingredients 313 include "spinach." If at least one of the used ingredients 313 corresponding to the non-use period includes "spinach," the update unit 123 determines that the determination target ingredient is included in the non-use period. On the other hand, if none of the used ingredients 313 corresponding to the non-use period include "spinach," the update unit 123 determines that the determination target ingredient is not included in the non-use period. If the ingredient to be judged is included in the non-use period, the process proceeds to step S545. On the other hand, if the ingredient to be judged is not included in the non-use period, the process proceeds to step S544.

[0119] In step S544, the update unit 123 adds the ingredients to be determined to the list of ingredients that can be used in the meal on the change date (the list of ingredients that can be used 362 (see FIG. 10)).

[0120] In step S545, the update unit 123 determines whether the determination process has been completed for all ingredients. Specifically, the update unit 123 determines whether all ingredients stored in the ingredient DB 320 have been selected as ingredients to be determined. If the determination process has been completed for all ingredients, the operation of the ingredient list generation process ends. On the other hand, if the determination process has not been completed for all ingredients, the process proceeds to step S546.

[0121] In step S546, the update unit 123 selects another ingredient from the ingredient DB 320 (see FIG. 6) as the ingredient to be judged. For example, the update unit 123 selects one ingredient that has not been selected as the ingredient to be judged from the ingredients stored in the ingredient DB 320 as the new ingredient to be judged. Then, the process returns to step S542 and continues the operation of the ingredient list generation process.

[0122] [Example of generating a list of seasonings available for meals on the change date] FIG. 14 is a flowchart showing an example of a seasoning list generation process in the information processing device 100. This seasoning list generation process is executed by the control unit 120 based on a program stored in the storage unit 130. This seasoning list generation process is started when the acquisition unit 121 acquires change information (step S502 (see FIG. 12)). While FIG. 14 shows an example in which the change date is one day, if the change date is multiple days, the seasoning list generation process is executed for each change date, and the results are stored in the available seasoning list 363 (see FIG. 10) for each change date. This seasoning list generation process will be described with appropriate reference to FIGS. 1 to 13.

[0123] The processes in steps S561 to S566 correspond to the processes in steps S541 to S546 shown in FIG. 13, except that the determination target is seasonings (for example, seasoned ingredient names 332 (see FIG. 7)) instead of ingredients. That is, the difference is that seasoning DB 330 is used instead of ingredient DB 320, and the extraction results are stored in available seasoning list 363 (see FIG. 10) instead of available ingredient list 362. Therefore, a description of the processes shown in FIG. 14 will be omitted.

[0124] As shown in Figures 13 and 14, by executing the ingredient list generation process and the seasoning list generation process, an extraction process (step S503 (see Figure 12)) is executed to extract ingredients and seasonings that satisfy the constraints according to the change information received in step S502 (see Figure 12).

[0125] 13 and 14 is an example of an extraction process for extracting elements that satisfy constraint conditions according to the received change information, and other elements (e.g., cooking method, cooking utensils) may also be extracted and used. For example, elements (e.g., ingredients, seasoning, cooking method, cooking utensils) that satisfy constraint conditions may be extracted based on criteria such as the cost, energy, and protein content of ingredients.

[0126] For example, as described above, it is possible to link cooking methods and ingredients to restrict the selection. Therefore, for example, a list of cooking methods usable for meals on the change date may be generated. For example, the update unit 123 sequentially selects one cooking method from among the cooking methods stored in the cooking method DB 340 as the cooking method to be judged. The update unit 123 then determines whether one or more ingredients stored in the usable ingredient list 362 generated in step S544 (see FIG. 13 ) are included in the ingredient candidates corresponding to the cooking method to be judged (e.g., chicken, eggplant, lotus root, shrimp, etc.). If at least one ingredient stored in the usable ingredient list 362 is included in the ingredient candidates corresponding to the cooking method to be judged, the update unit 123 adds the cooking method to be judged to the list of cooking methods usable for meals on the change date. On the other hand, if not all ingredients stored in the usable ingredient list 362 are included in the ingredient candidates corresponding to the cooking method to be judged, the update unit 123 does not add the cooking method to be judged to the list of cooking methods usable for meals on the change date.

[0127] Next, the evaluation process (step S512 (see FIG. 12)) for evaluating whether all menu information incorporating substitute dishes acquired from the generation AI 10 satisfies the constraint conditions will be described with reference to FIGS.

[0128] [Example of evaluating the interval between ingredients] FIG. 15 is a flowchart showing an example of the ingredient use interval evaluation process in the information processing device 100. This ingredient use interval evaluation process is executed by the control unit 120 based on a program stored in the storage unit 130. This ingredient use interval evaluation process is started when an alternative dish is acquired from the generation AI 10 (step S512 (see FIG. 12)). While FIG. 15 shows an example in which the ingredient use interval evaluation process is executed on a monthly basis, the ingredient use interval evaluation process may also be executed on other units (for example, multiple months). This ingredient use interval evaluation process will be described with appropriate reference to FIGS. 1 to 14.

[0129] In step S601, the generation unit 122 sets the determination date (day) of the determination month M1. First, the 1st day (day←1) of the determination month M1 is set.

[0130] In step S602, the generation unit 122 extracts each ingredient included in the meal for the evaluation date (day). For example, the generation unit 122 acquires the dish ID 303 and dish name 304 associated with the meal ID 302 for the evaluation date (date and time information 301) from the menu information DB 300 (see FIG. 4). The generation unit 122 also extracts the dish ID 311 and dish name 312 corresponding to the acquired dish ID 303 and dish name 304 from the dish DB 310 (see FIG. 5), and extracts each ingredient (used ingredients 313) associated with the extracted dish ID 311 and dish name 312. Information related to each of these ingredients is extracted from the ingredient DB 320 (see FIG. 6).

[0131] In step S603, the generation unit 122 selects a target ingredient from among the ingredients extracted in step S602. For example, the generation unit 122 selects one ingredient as the target ingredient from the ingredients stored in the ingredient DB 320 in the order of the extracted ingredients (for example, the order of the ingredient IDs 321). In this case, the generation unit 122 acquires the use interval condition 323 stored in association with the ingredient selected as the target ingredient. Here, an example will be described in which the ingredient name 322 "spinach" corresponding to the ingredient ID 321 "44312" is selected as the target ingredient, and the use interval condition 323 "at least five days apart" associated with the ingredient name 322 "spinach" is acquired.

[0132] In step S604, the generation unit 122 sets a non-use period corresponding to the use interval condition, using the evaluation target day as a reference. If the ingredient selected as the evaluation target ingredient in step S603 is ingredient name 322 "spinach," the ingredient name 322 "spinach" is associated with use interval condition 323 "leave at least 5 days between uses." Therefore, using the evaluation target day as a reference, "day - 5 days" to "day + 5 days" are set as the non-use period before and after the evaluation target day. The method for setting this non-use period is the same as the method for setting the non-use period shown in FIG. 13, and therefore a detailed description thereof will be omitted here.

[0133] In step S605, the generation unit 122 determines whether one or more determination target ingredients are included in the non-use period set in step S604. The method for this determination is the same as the determination method shown in Fig. 13, so a detailed description will be omitted here. If the determination target ingredients are included in the non-use period, the process proceeds to step S607. On the other hand, if the determination target ingredients are not included in the non-use period, the process proceeds to step S606.

[0134] In step S606, the generation unit 122 determines that the use of the ingredient to be evaluated on the evaluation date is normal, and stores "normal" in the ingredient use interval 372 (see FIG. 11) corresponding to the evaluation date.

[0135] In step S607, the generation unit 122 determines that the use of the ingredient to be judged on the target date is an error, and stores "Error" in the ingredient usage interval 372 corresponding to the target date, as well as the name of the ingredient to be judged as "Error ingredient." Note that even if other ingredients to be judged are normal, if one ingredient to be judged is judged to be an error, "Error" is stored in the ingredient usage interval 372 corresponding to the target date.

[0136] In step S608, the generation unit 122 determines whether the determination process has been completed for all of the ingredients extracted in step S602. If the determination process has been completed for all ingredients, the process proceeds to step S610. On the other hand, if the determination process has not been completed for all ingredients, the process proceeds to step S609.

[0137] In step S609, the generation unit 122 selects another ingredient as a judgment target ingredient from among the ingredients extracted in step S602. Then, the process returns to step S604, and the operation of the ingredient use interval evaluation process continues.

[0138] In step S610, the generation unit 122 determines whether the determination date (day) is the last day of the determination month M1. For example, if the end of the month of the determination month M1 is the 31st, the last day is the 31st; if the end of the month of the determination month M1 is the 30th, the last day is the 30th; and if the end of the month of the determination month M1 is the 28th (or 29th), the last day is the 28th (or 29th). If the determination date (day) is the last day of the determination month M1, the process proceeds to step S612. On the other hand, if the determination date (day) is not the last day of the determination month M1, the process proceeds to step S611.

[0139] In step S611, the generation unit 122 sets the evaluation date (day) of the evaluation month M1 to the next day. That is, the generation unit 122 adds 1 to the evaluation date (day).

[0140] In step S612, the generation unit 122 records the determination results for all days of the determination month M1 in the determination result storage unit 370 (see FIG. 11).

[0141] [Example of evaluating the interval between seasonings] FIG. 16 is a flowchart showing an example of a seasoning use interval evaluation process in the information processing device 100. This seasoning use interval evaluation process is executed by the control unit 120 based on a program stored in the storage unit 130. This seasoning use interval evaluation process is started when an alternative dish is acquired from the generation AI 10 (step S512 (see FIG. 12)). While FIG. 16 shows an example in which the seasoning use interval evaluation process is executed in monthly units, the seasoning use interval evaluation process may also be executed in other units (for example, multiple months). This seasoning use interval evaluation process will be described with appropriate reference to FIGS. 1 to 15.

[0142] The processes in steps S621 to S632 correspond to the processes in steps S601 to S612 shown in Fig. 15, except that the determination target is seasoning instead of ingredients. That is, the differences are that seasoning DB 330 is used instead of ingredient DB 320, and the determination results are stored in seasoning use interval 373 (see Fig. 11) instead of ingredient use interval 372. Therefore, a description of the processes shown in Fig. 16 will be omitted.

[0143] [Example of evaluating cooking methods] FIG. 17 is a flowchart showing an example of the cooking method evaluation process in the information processing device 100. This cooking method evaluation process is executed by the control unit 120 based on a program stored in the storage unit 130. This cooking method evaluation process is started when an alternative dish is acquired from the generation AI 10 (step S512 (see FIG. 12)). While FIG. 17 shows an example in which the cooking method evaluation process is executed on a monthly basis, the cooking method evaluation process may also be executed on other units (for example, multiple months). This cooking method evaluation process will be described with appropriate reference to FIGS. 1 to 16.

[0144] In step S641, the generation unit 122 sets the determination date (day) of the determination month M1. First, the 1st day (day←1) of the determination month M1 is set.

[0145] In step S642, the generation unit 122 extracts each meal for the evaluation date (day) and the cooking method for each meal. For example, the generation unit 122 acquires the dish ID 303 and dish name 304 associated with the meal ID 302 for the evaluation date (date and time information 301) from the menu information DB 300 (see FIG. 4). The generation unit 122 then extracts the dish ID 311, dish name 312, and cooking method 315 corresponding to the acquired dish ID 303 and dish name 304 from the dish DB 310 (see FIG. 5). The generation unit 122 then extracts the usage interval condition 343 (see FIG. 8) associated with the cooking method 342 in the cooking method DB 340 that corresponds to the extracted cooking method 315.

[0146] In step S643, the generation unit 122 selects a cooking method to be judged from among the cooking methods (cooking methods 315 (see FIG. 5)) extracted in step S642. For example, the generation unit 122 selects one cooking method in turn from among the cooking methods (cooking methods 315) as the cooking method to be judged.

[0147] In step S644, the generation unit 122 sets a usage interval condition based on the evaluation date (day). For example, if the cooking method to be evaluated is "frying," then the cooking method 342 (see FIG. 8) "frying" is associated with the usage interval condition 343 "only one dish in the same meal, with at least one day between." Therefore, of the meals to be served on the evaluation date (day), the dish using "frying" as the cooking method is set to be only one dish in the same meal. Furthermore, based on the evaluation date (day), the non-use period before and after the evaluation date (day) is set from "day - 1 day" to "day + 1 day." The method for setting this non-use period is the same as the method for setting the non-use period shown in FIG. 13, and therefore a detailed description thereof will be omitted here.

[0148] In step S645, the generation unit 122 determines whether the cooking method to be determined selected in step S643 violates the use interval condition set in step S644. For example, if the cooking method to be determined is "frying," the cooking method 342 (see FIG. 8) "frying" is associated with the use interval condition 343 "only one dish in the same meal, at least one day apart." Therefore, if the cooking method "frying" is used in two or more dishes among the meals served on the determination date (day), it is determined that the use interval condition is violated. Furthermore, if the cooking method "frying" is used during the non-use period (from "day - 1" to "day + 1") before and after the determination date (day), it is determined that the use interval condition is violated. If the cooking method to be determined violates the use interval condition, the process proceeds to step S647. On the other hand, if the cooking method to be determined does not violate the use interval condition, the process proceeds to step S646.

[0149] In step S646, the generation unit 122 determines that the cooking method to be judged on the evaluation date is normal, and stores "normal" in the cooking method 374 (see FIG. 11) corresponding to the evaluation date.

[0150] In step S647, the generation unit 122 determines that the cooking method to be determined on the target date is an error, stores "Error" in the cooking method 374 corresponding to the target date, and stores the cooking method that violates the usage interval condition 343 as an "Error Cooking Method." Note that even if other cooking methods to be determined are normal, if one cooking method to be determined is an error, "Error" is stored in the cooking method 374 corresponding to that target date.

[0151] In step S648, the generation unit 122 determines whether the determination process has been completed for all of the cooking methods extracted in step S642. If the determination process has been completed for all of the cooking methods, the process proceeds to step S650. On the other hand, if the determination process has not been completed for all of the cooking methods, the process proceeds to step S649.

[0152] In step S649, the generation unit 122 selects another cooking method from the cooking methods extracted in step S642 as the cooking method to be judged. Then, the process returns to step S644, and the cooking method evaluation process continues.

[0153] It should be noted that steps S650 to S652 correspond to steps S610 to S612 shown in FIG. 15, and therefore detailed description thereof will be omitted here.

[0154] [Example of evaluation of meal cost, energy, and protein] Here, an example is shown in which constraints are set for a meal, including an upper limit for cost, an upper limit for energy (e.g., calories), and a lower limit for protein, and an evaluation is performed to see if these constraints are met. This evaluation process is performed in step S512 (see FIG. 12). The results of these evaluations are stored in cost 375, energy 376, and protein 377 (see FIG. 11).

[0155] [Example of evaluating the upper limit of the cost of a meal] First, an example of determining whether the cost of a meal is equal to or less than the upper limit will be described. This evaluation process is executed in step S512 shown in FIG.

[0156] For example, each dish included in the meal to be judged is called a target dish, and the ingredients used in these target dishes are called target ingredients. Similar to Figures 15 and 16, the target dishes and target ingredients are selected for the meal on the target day. In this case, the amount required for the target ingredient is called wn, and the cost per 100g of the target ingredient is called en. In this case, the cost x of the target ingredient can be calculated using the following formula 1: x=wn×en / 100…Formula 1

[0157] The required amount wn is stored in the ingredients used 313 of the recipe DB 310. The cost en is stored in the unit price 324 of the ingredients DB 320.

[0158] Furthermore, if the dish to be judged uses three ingredients to be judged, the costs of the three ingredients to be judged are x1, x2, and x3. In this case, the cost y of the dish to be judged can be calculated using the following formula 2. Note that x1, x2, and x3 can each be calculated using formula 1 above. y=x1+x2+x3 …Equation 2

[0159] Furthermore, if the meal to be judged is made up of four dishes to be judged, the costs of the four dishes to be judged are y1, y2, y3, and y4. In this case, the cost z of the meal to be judged can be calculated using the following formula 3. Note that y1, y2, y3, and y4 can each be calculated using formula 2 above. z=y1+y2+y3+y4 …Equation 3

[0160] For example, if the meal of "2023 / 6 / 12 12:00-13:00" in date and time information 301 is to be determined as the meal to be evaluated, then the dishes of "200g of white rice," "Grilled salted Atka mackerel," "Stir-fried potatoes with seaweed and salt," and "Spinach with sesame dressing" in dish name 304 are to be determined as the dishes to be evaluated. In this case, the ingredients used in each of the dishes to be evaluated, "200g of white rice," "Grilled salted Atka mackerel," "Stir-fried potatoes with seaweed and salt," and "Spinach with sesame dressing," are to be determined as the ingredients to be evaluated. Furthermore, it is possible to calculate the cost x of each of the ingredients to be evaluated using Equation 1 above, the cost y of each of the dishes to be evaluated using Equation 2 above, and the cost z of the meal to be evaluated using Equation 3 above. This cost z of the meal to be evaluated is the cost of the entire meal of "2023 / 6 / 12 12:00-13:00" in date and time information 301.

[0161] In this way, when a meal from "2023 / 6 / 12 12:00-13:00" in the date and time information 301 is set as the meal to be judged, the generation unit 122 compares the cost z of this meal to be judged with the upper limit TH1 of meal costs (e.g., 300 yen). If the cost z of the meal to be judged exceeds the upper limit TH1 (e.g., 300 yen), the generation unit 122 determines that the meal to be judged does not satisfy the constraint conditions. On the other hand, if the cost z of the meal to be judged is equal to or less than the upper limit TH1 (e.g., 300 yen), the generation unit 122 determines that the meal to be judged satisfies the constraint conditions.

[0162] [Example of evaluating the upper limit of energy] Next, an example of determining whether the energy is equal to or less than the upper limit will be described. This evaluation process is executed in step S512 shown in FIG.

[0163] For example, each dish included in the meal to be judged is called a target dish, and the ingredients used in these target dishes are called target ingredients. Similar to Figures 15 and 16, the target dishes and target ingredients are selected for the meal on the target day. In this case, the amount required for the target ingredient is called wn, and the energy per 100g of the target ingredient is called eng. In this case, the energy ex of the target ingredient can be calculated using the following Equation 11: ex=wn×eng / 100 …Equation 11

[0164] The required amount wn is stored in the ingredients used 313 of the recipe DB 310. The energy eng is stored in the energy 325 of the ingredients DB 320.

[0165] Furthermore, if the dish to be judged uses three ingredients to be judged, the energies of the three ingredients to be judged are ex1, ex2, and ex3. In this case, the energy ey of the dish to be judged can be calculated using the following formula 12. Note that ex1, ex2, and ex3 can each be calculated using formula 11 above. ey=ex1+ex2+ex3 …Formula 12

[0166] Furthermore, if the meal to be judged is made up of four dishes to be judged, the energies of the four dishes to be judged are assumed to be ey1, ey2, ey3, and ey4. In this case, the energy ez of the meal to be judged can be calculated using the following equation 13. Note that ey1, ey2, ey3, and ey4 can each be calculated using equation 12 above. ez=ey1+ey2+ey3+ey4 …Equation 13

[0167] As with the cost mentioned above, for example, if the meal of "2023 / 6 / 12 12:00-13:00" in date and time information 301 is to be determined as the meal to be evaluated, then the dishes of "200g of white rice," "Grilled Atka Mackerel with Salt," "Stir-fried Potatoes with Seaweed and Salt," and "Spinach with Sesame Dressing" in dish name 304 are to be determined as the dishes to be evaluated. In this case, the ingredients used in each of the dishes to be evaluated, "200g of white rice," "Grilled Atka Mackerel with Salt," "Stir-fried Potatoes with Seaweed and Salt," and "Spinach with Sesame Dressing," are to be determined as the ingredients to be evaluated. Furthermore, it is possible to calculate the energy ex of each of the ingredients to be evaluated using the above-mentioned Equation 11, to calculate the energy ey of each of the dishes to be evaluated using the above-mentioned Equation 12, and to calculate the energy ez of the meal to be evaluated using the above-mentioned Equation 13. This energy ez of the meal to be evaluated is the energy of the entire meal of "2023 / 6 / 12 12:00-13:00" in date and time information 301.

[0168] In this way, when a meal from "2023 / 6 / 12 12:00 to 13:00" in the date and time information 301 is set as the meal to be determined, the generation unit 122 compares the energy ez of this meal to be determined with the upper limit value TH2 of meal energy (e.g., 500 kcal). If the energy ez of the meal to be determined exceeds the upper limit value TH2 (e.g., 500 kcal), the generation unit 122 determines that the meal to be determined does not satisfy the constraint conditions. On the other hand, if the energy ez of the meal to be determined is equal to or less than the upper limit value TH2 (e.g., 500 kcal), the generation unit 122 determines that the meal to be determined satisfies the constraint conditions.

[0169] [Example of evaluating the lower limit of protein] Next, an example of determining whether a protein is equal to or greater than the lower limit will be described. This evaluation process is performed in step S512 shown in FIG.

[0170] For example, each dish included in the meal to be judged is considered to be a target dish, and the ingredients used in these target dishes are considered to be target ingredients. As with Figures 15 and 16, the target dishes and target ingredients are selected for the meal on the target day. In this case, the amount required for the target ingredient is called wn, and the protein per 100g of the target ingredient is called pr. In this case, the protein pr of the target ingredient can be calculated using the following Equation 21: px=wn×pr / 100…Equation 21

[0171] The required amount wn is stored in the ingredients used 313 of the recipe DB 310. The protein pr is stored in the protein 326 of the ingredients DB 320.

[0172] Furthermore, if the dish to be judged uses three ingredients to be judged, the proteins of the three ingredients to be judged are designated pr1, pr2, and pr3. In this case, the protein py of the dish to be judged can be calculated using the following formula 22. Note that pr1, pr2, and pr3 can each be calculated using formula 21 above. py=px1+px2+px3 …Equation 22

[0173] Furthermore, if the meal to be judged is made up of four dishes to be judged, the proteins of the four dishes to be judged are designated as py1, py2, py3, and py4. In this case, the protein pz of the meal to be judged can be calculated using the following formula 23. Note that py1, py2, py3, and py4 can each be calculated using the above-mentioned formula 22. pz=py1+py2+py3+py4 …Formula 23

[0174] As with the cost and energy calculations described above, for example, if the meal of "2023 / 6 / 12 12:00-13:00" in date and time information 301 is the target meal, then the dishes of "200g of white rice," "Grilled Atka Mackerel with Salt," "Stir-fried Potatoes with Seaweed and Salt," and "Spinach with Sesame Dressing" in dish name 304 are the target dishes. In this case, the ingredients used in each of the target dishes "200g of white rice," "Grilled Atka Mackerel with Salt," "Stir-fried Potatoes with Seaweed and Salt," and "Spinach with Sesame Dressing" are the target ingredients. Furthermore, the protein px of each target ingredient can be calculated using Equation 21 described above, the protein py of each target dish can be calculated using Equation 22 described above, and the protein pz of the target meal can be calculated using Equation 23 described above. This protein pz of the target meal is the protein of the entire meal of "2023 / 6 / 12 12:00-13:00" in date and time information 301.

[0175] In this way, when the meal of "2023 / 6 / 12 12:00-13:00" in the date and time information 301 is set as the meal to be judged, the generation unit 122 compares the protein pz of this meal to be judged with the lower limit TH3 of the protein of the meal (e.g., 40 g). If the protein pz of the meal to be judged is less than the lower limit TH3 (e.g., 40 g), the generation unit 122 determines that the meal to be judged does not satisfy the constraint conditions. On the other hand, if the protein pz of the meal to be judged is equal to or greater than the lower limit TH3 (e.g., 40 g), the generation unit 122 determines that the meal to be judged satisfies the constraint conditions.

[0176] [Example of setting priorities using each evaluation result] As described above, it is possible to calculate the cost, energy, protein, etc. of the entire meal to be changed. Therefore, for example, if the generation AI 10 proposes multiple substitute dishes for the same mealtime, the cost, energy, and protein of the entire meal including each of these dishes may be calculated for each dish, and the cost, energy, and protein of each dish may be compared to set a priority. For example, a higher weight is assigned to a lower overall cost of the meal, a higher weight is assigned to a lower overall energy of the meal, and a higher weight is assigned to a higher overall protein of the meal. These weights are added up for each dish, and the higher the sum, the higher the priority is assigned. This priority can be presented to the user along with the substitute dish. It is also possible to present the values ​​(cost, energy, protein) that form the basis of the priority along with the priority. This allows the user to refer to the selection criteria (priority) for the substitute dish when selecting a substitute dish, making it easier to select a substitute dish.

[0177] [Example of using other constraints] The constraint conditions described above are merely examples, and other constraint conditions may be used without being limited thereto. For example, when generating menu information for a certain facility, the preferences of people in the facility may be used as a constraint condition. For example, when generating menu information for facility H, if most people in facility H like spicy food, spicy dishes may be set as a priority. Furthermore, a constraint may be set so that dishes of the same category are not repeatedly served. For example, when generating menu information for facility G, if Chinese food has been served as a dish at facility G for a predetermined number of days or more, a dish other than Chinese food may be set.

[0178] [Example of threshold judgment when a dish or ingredient not stored in each database is proposed] It is also possible that the generation AI 10 may propose an alternative dish (or ingredients contained therein) that is not stored in the dish DB 310, ingredient DB 320, etc. In such a case, by inputting a prompt to the generation AI 10 to add the cost, energy, and protein of the alternative dish, the cost, energy, and protein of the alternative dish can be included in the response data to the prompt. However, the cost, energy, and protein of the alternative dish contained in the response data output from the generation AI 10 are assumed to be general values. Although these values ​​differ from the values ​​of the dishes used in the actual menu, they can be used as approximate values. Therefore, when the generation AI 10 proposes an alternative dish (or ingredients contained therein) that is not stored in the dish DB 310, ingredient DB 320, etc., the cost, energy, and protein of the alternative dish contained in the response data output from the generation AI 10 can be used to perform the above-mentioned threshold determination.

[0179] [Example of generating a list of available ingredients using cost] The above example shows how usable ingredient list 362 (see FIG. 10) is generated based on the intervals between ingredients and seasonings, and cooking methods that can be used with these ingredients. Here, we show an example where usable ingredient list 362 (see FIG. 10) is generated based on the cost of ingredients.

[0180] First, the update unit 123 calculates the cost of meals for each meal within the period according to the change information. This calculation method is the same as the calculation method using Equations 1 to 3 described above. For ease of explanation, an example is shown here where there is one meal within the period according to the change information. The cost of meals before the change within the period according to the change information is set to z1. In this case, the update unit 123 calculates the difference d1 between the upper limit TH1 of meal costs (for example, 300 yen) and the meal cost z1.

[0181] Next, the update unit 123 calculates the cost price xa of each ingredient included in the available ingredient list 362. In this case, the amount required for the ingredient before the change is set to wn, and the cost price per 100g of the ingredient is set to en. Similar to the above-mentioned equation 1, this can be calculated using the following equation 31. That is, because the amount required for the substitute dish is unknown, a hypothetical value is calculated using the amount wn required for the ingredient before the change. xa=wn×en / 100 …Equation 31

[0182] Next, the update unit 123 determines whether the difference value d1, the cost xa of an ingredient included in the available ingredient list 362, and the cost x of the ingredient before the change satisfy the following formula 32. The update unit 123 then retains only ingredients with a cost xa that satisfy the following formula 32 in the available ingredient list 362 and deletes the other ingredients. However, instead of deleting ingredients with a cost xa that does not satisfy the following formula 32, the priority of the ingredients may be lowered. In this case, for example, an available ingredient list 362 may be generated in which the priority of ingredients with a cost xa that satisfies the following formula 32 is set high and the priority of the other ingredients is set low, and the priorities of the ingredients are included in the prompt. This allows the generation AI 10 to preferentially suggest alternative dishes that use ingredients with high priority. d1>xa-x …Eq. 32

[0183] In addition, if there is no single ingredient that satisfies the above-mentioned formula 32, the update unit 123 may detect a combination of ingredients that satisfies the above-mentioned formula 32 by combining multiple ingredients, and leave this combination of ingredients in the usable ingredient list 362.

[0184] [Example of behavior when a part of the device that does not satisfy the constraints is detected] Fig. 12 shows an example in which menu information is changed using the generation AI 10 when change information transmitted based on user operation is received. It is assumed that a portion that does not satisfy the constraints may be detected during the evaluation process, which is performed periodically or irregularly in the information processing device 100. Therefore, Fig. 18 describes an example of changing menu information when a portion that does not satisfy the constraints is detected during the evaluation process in the information processing device 100.

[0185] Fig. 18 is a flowchart showing an example of the menu information change process in the information processing device 100. This menu information change process is executed by the control unit 120 based on a program stored in the storage unit 130. This menu information change process is initiated when an evaluation process is executed in the information processing device 100. This menu information change process will be described with appropriate reference to Figs. 1 to 17.

[0186] The processes in steps S504, S510 to S514, and S520 correspond to the processes with the same names shown in Fig. 12. Therefore, the description of these processes will be omitted.

[0187] In step S701, the update unit 123 determines whether or not a portion that does not satisfy the constraint conditions has been detected in the menu information during the evaluation process. This evaluation process is the same as the evaluation process shown in Figures 15 to 17, etc. If a portion that does not satisfy the constraint conditions has been detected in the menu information (i.e., "Error" is stored in any of the determination result storage units 370), the process proceeds to step S702. On the other hand, if no portion that does not satisfy the constraint conditions has been detected in the menu information (i.e., "Normal" is stored in all of the determination result storage units 370), the operation of the menu information change process ends.

[0188] In step S702, the update unit 123 extracts ingredients and seasonings that satisfy the constraint conditions for the portion detected in step S701 (the portion that does not satisfy the constraint conditions). This extraction process is similar to the extraction process in step S503 shown in FIG.

[0189] If at least some of the ingredients and seasonings are not extracted in step S504, the providing unit 125 transmits information to the user terminal 200 in step S705 indicating that it is impossible to generate menu information that satisfies the constraints. That is, the user is notified that it is impossible to generate menu information that satisfies the constraints. However, as in the example shown in FIG. 12, even if some (or all) of the ingredients and seasonings are extracted, a prompt including the extracted information (or other information (e.g., main dish, side dish, type of side dish, menu policy)) may be passed to the generation AI 10 to generate and use a substitute dish. In this case, since it is evaluated in step S512 whether the menu information incorporating the substitute dish satisfies the constraints, it is possible to generate menu information that satisfies the constraints by repeating the substitute dish generation process one or more times.

[0190] In step S703, the generation unit 122 determines whether the substitute dishes acquired from the generation AI 10 in step S511 include content other than that of each DB (e.g., the dish DB 310). If the substitute dishes acquired from the generation AI 10 include content other than that of each DB, the process proceeds to step S704. On the other hand, if the substitute dishes acquired from the generation AI 10 do not include content other than that of each DB (i.e., if all of the substitute dishes acquired from the generation AI 10 (e.g., ingredients, seasonings) are stored in one of the DBs), the operation of the menu information change process is terminated.

[0191] In step S704, the generation unit 122 stores the contents of the substitute dishes acquired from the generation AI 10 in step S511 other than those in each DB (e.g., the dish DB 310) in the corresponding DB. That is, for information on the substitute dishes acquired from the generation AI 10 that is not stored in a DB, the information can be sequentially stored in the DB and reflected. This makes it possible to update each DB of the information processing device 100 using the generation AI 10. Note that, similarly in the example shown in FIG. 12, after the processing of step S520, the processing of steps S703 and S704 may be performed to update each DB.

[0192] In this way, when the menu information (solution information) generated by the optimization process by the information processing device 100 is evaluated, it is expected that the evaluation will result in the detection of a portion that does not satisfy the constraints. In this case, it is possible to quickly and automatically change that portion using the generation AI 10. Furthermore, information on the alternative dishes proposed by the generation AI 10 that is not stored in each DB can be sequentially stored in the DB and reflected.

[0193] [Example of data reflected in the database after confirmation by a nutritionist] The above describes an example in which substitute dishes proposed by generation AI10 are stored in the DB and reflected (step S520 (see FIG. 12) and step S704 (see FIG. 18)). However, when storing substitute dishes proposed by generation AI10 in the DB, the substitute dishes may be checked by an expert such as a nutritionist before being stored in the DB. This makes it possible to store highly reliable dish information (substitute dishes) in the DB after confirmation by an expert such as a nutritionist.

[0194] [Examples of applications such as available lists] 10 shows an example in which a usable list of ingredients, seasonings, etc. that can be used for substitute dishes is stored in the list storage unit 360. However, as described above, in addition to ingredients and seasonings, usable cooking methods, usable cooking utensils, etc. may also be included in the usable list and stored in the list storage unit 360.

[0195] For example, usable cooking methods may be extracted based on the use interval condition 343 (see FIG. 8) of the cooking method DB 340 using a process similar to that shown in FIGS. 13 and 14. Also, usable cooking methods may be extracted based on the relationship with the ingredients, seasonings, etc. included in the usable list. For example, assume that the ingredient included in the usable list is "strawberries." Since it is not possible to imagine a dish in which "strawberries" are deep-fried, cooking methods excluding the cooking method "deep-frying" for the ingredient "strawberries" can be extracted as usable cooking methods. Furthermore, in this case, cooking utensils excluding cooking utensils used for "deep-frying" the ingredient "strawberries" (e.g., a deep fryer) can be extracted as usable cooking utensils. The cooking method "deep-frying" for the ingredient "strawberries" can be extracted as an unusable cooking method, as described below. Similarly, cooking utensils used for "deep-frying" the ingredient "strawberries" (e.g., a deep fryer) can be extracted as an unusable cooking utensil, as described below.

[0196] [Example of using the unavailable list] The above describes an example in which, when instructing the generation AI 10 to generate an alternative dish, the usable list (list holding unit 360 (see FIG. 10)) of ingredients, seasonings, etc. that can be used for the alternative dish is used. That is, an example is shown in which a prompt to generate an alternative dish using ingredients, seasonings, etc. included in the usable list of ingredients, seasonings, etc. extracted by the extraction process shown in step S503 (see FIG. 12), FIGS. 13 and 14, etc. is generated and input to the generation AI 10, and answer data to the prompt is obtained from the generation AI 10 (steps S510 and S511 (see FIG. 12)).

[0197] Here, if usable ingredients, seasonings, etc. are specified to the generation AI 10, it is possible that the generation AI 10 may generate an alternative dish using unusable ingredients, seasonings, etc. Therefore, here, an example is shown in which an usable list and an unusable list are generated and used. The method for generating the usable list is the same as the examples shown in step S503 (see FIG. 12), FIGS. 13 and 14, etc.

[0198] The unusable list can include unusable ingredients, seasonings, cooking methods, cooking utensils, etc., similar to the contents of the usable list. The unusable list can also be generated, for example, based on the change information received in step S502. For example, when change information corresponding to change event 61 (see FIG. 3) "toaster oven malfunction" is received, a cooking method performed using only a toaster oven (or a dish cooked only by that cooking method, or ingredients used only for that dish) can be included in the unusable list as an unusable cooking method based on the contents of the cookware DB 350. Furthermore, when change information corresponding to change event 61 "ingredients cannot be used," for example, the unusable ingredients can be included in the unusable list as unusable ingredients.

[0199] Furthermore, for example, when the use / do not use 63 is set to "do not use" among the change conditions set by the user operation (for example, the change event 61, the date and time information 62, and the use / do not use 63 (see FIG. 3)), the content of the change event 61 corresponding to the use / do not use 63 "do not use" can be included in the unusable list as an unusable item.

[0200] Also, for example, similar to the examples shown in FIGS. 13 and 14, unusable recipes may be extracted based on the use interval condition 343 (see FIG. 8) in the recipe DB 340 and included in the unusable list.

[0201] The usable list and unusable list thus generated can be stored in the list storage unit 360 (see FIG. 10) and used. For example, in step S510 (see FIG. 12), a prompt can be generated to generate an alternative dish using ingredients, seasonings, cooking methods, cooking utensils, etc. included in the usable list, but without using ingredients, seasonings, cooking methods, cooking utensils, etc. included in the unusable list, and input to the generation AI 10. Then, in step S511 (see FIG. 12), answer data to the prompt can be obtained from the generation AI 10. Note that other processes can be similar to those described above.

[0202] Here, it is important that the prompts input to the generation AI 10 include information that the generation AI 10 can understand. As mentioned above, it is possible to pass only the usable list to the generation AI 10. However, by generating usable and unusable lists and clearly instructing the generation AI 10 on the ingredients, seasonings, cooking methods, cooking utensils, etc. that cannot be used, it is possible to prevent the generation AI 10 from using unusable items in advance. This makes it possible to avoid repeating the substitute dish generation process multiple times and quickly generate menu information that meets the constraints. Furthermore, by preventing the repeating of the substitute dish generation process, it is possible to efficiently use computing resources and improve computing efficiency. In other words, it is possible to reduce the computational processing of the information processing device 100 and the generation AI 10, and it is possible to reduce the power consumption of the information processing device 100 and the generation AI 10.

[0203] [Example of providing a personalized menu] The above describes an example of generating or changing meal menu information provided to facilities such as schools, educational facilities, and nursing homes. However, this embodiment is not limited to this. For example, this embodiment can also be applied to cases where meal menu information for individuals is generated or changed. For example, a menu provision service that provides meal menu information for individuals can be provided to individuals. In this case, a user using this menu provision service can check the meal menu information for themselves using their own user terminal 200 (e.g., a smartphone). For example, the meal menu information for themselves can be displayed on the UI unit 240 of the user terminal 200.

[0204] For example, a user using the menu provision service can set their own constraints using the user terminal 200. For example, the contents of the use interval condition 323 (FIG. 6) of the ingredient DB 320, the use interval condition 333 (FIG. 7) of the seasoning DB 330, the use interval condition 343 (FIG. 7) of the cooking method DB 340, etc. can be changed according to the user's preferences. In addition, the upper limit of energy (calories), the lower limit of protein, the upper limit of salt, etc. can also be set.

[0205] For example, if the user has a disease, the AI ​​10 may input a prompt to set constraints appropriate for that disease, and the AI ​​10 may use the response data to set its own constraints. For example, if the user has symptoms of anemia, iron, protein, etc., are important nutrients required for blood production. In this case, constraints can be set that increase the upper limit of the nutrients required for blood production.

[0206] Furthermore, the generation unit 122 can generate personalized menu information by performing an optimization process using each DB stored in the storage unit 130 to satisfy the constraints specified by the user. This generation method is similar to the generation method described above. It is also possible to calculate nutritional information such as the unit price per serving, energy amount, protein, fat, and salt content, and provide this nutritional information to the user by including it in the menu information. It is also possible to provide the user with information (text information, image information) indicating the specific cooking procedure for each dish by including it in the menu information. This allows individual users to easily cook each of their meals and easily understand the nutritional information for each of their meals.

[0207] For example, a user using the menu provision service can change part of the menu information using the user terminal 200. For example, a part of the menu information can be changed based on the user's own convenience, surrounding environment, etc. For example, if the menu information includes an ingredient or dish that the user does not like, the user can use the user terminal 200 to send change information to the information processing device 100 to change the ingredient or dish. Also, for example, if the menu information includes an ingredient that cannot be purchased due to price hikes, shortages, etc., the user can use the user terminal 200 to send change information to the information processing device 100 to change the ingredient. In these cases, in order to change the ingredient or dish, the update unit 123 executes an update process using the generation AI 10 to generate a substitute dish (substitute information) for the ingredient or dish. The change method is the same as the change method described above.

[0208] Furthermore, for example, if the user experiences some symptom (e.g., dizziness), the user can use the user terminal 200 to send change information to the information processing device 100 to change the ingredients or meal to one that will alleviate the symptom. In this case, the update unit 123 executes an update process using the generation AI 10 to generate an alternative dish (alternative information) for the ingredients or meal in order to change the ingredients or meal to one that will alleviate the symptom. This change method is the same as the change method described above. Note that the change information in this case may be generated using the response data from a prompt that suggests ingredients or meals that will alleviate the symptom (e.g., dizziness) input to the generation AI 10, as described above.

[0209] When a prompt for changing the ingredients or dishes described above is input to the generation AI 10, the prompt may include an instruction to calculate and output nutritional information such as the unit price per serving, energy content, protein, fat, and salt content. In this case, this nutritional information can be included in the changed menu information and provided to the user. The prompt may also include an instruction to output information (text information, image information) indicating the specific cooking steps for each dish. In this case, information (text information, image information) indicating the specific cooking steps for each changed dish can be included in the changed menu information and provided to the user. This allows individual users to easily cook the changed meal and easily understand the nutritional information of the meal before and after the change.

[0210] [Example of providing health management information] Although the above describes an example of providing menu information to the user, the present invention is not limited to this. For example, it is also possible to provide health management information to the user along with the menu information. As described above, it is possible to calculate and output nutritional information such as the unit price per serving, energy amount, protein, fat, and salt content, and therefore it is possible to provide the user with information (health management information) that is obtained by aggregating this nutritional information for each item in a predetermined unit (e.g., daily, weekly, or monthly). For example, the aggregated health management information can be displayed for each item on the UI unit 240 of the user terminal 200. For example, it is possible to display salt consumption on a weekly basis.

[0211] As described above, a user using the menu provision service can set their own constraints. For example, they can set an upper limit for energy (calories), a lower limit for protein, an upper limit for fat, an upper limit for salt, etc. Therefore, the constraints set by the user and the above-mentioned health management information can be linked and managed for each item. For example, the constraints set by the user and the above-mentioned health management information can be associated with each item and provided to the user. For example, the UI unit 240 of the user terminal 200 can display the constraints set by the user and the above-mentioned health management information for each item so that they can be compared. In this case, health management information that meets a predetermined standard for the constraints can be displayed in a manner that allows it to be distinguished from other health management information.

[0212] For example, suppose a constraint is set that sets a daily protein lower limit of 65g, and health management information (including protein) for June (30 days) is to be displayed. In this case, if the protein consumption for June (30 days) is 110% or more of the constraint value (1950g for 30 days) (health management information that falls within a predetermined range), the protein consumption will be displayed in a specific manner. For example, if the total protein consumption for June (30 days) is 2200g, this is 110% or more of the constraint value (1950g for 30 days). In this case, the protein consumption item in the health management information can be displayed in a specific color (e.g., green) that is different from the other items (e.g., black).

[0213] [Example of generating alternative dishes using search results from a recipe database] The above example shows how to use the usable and unusable lists for a substitute dish when instructing the generation AI 10 to generate the substitute dish. Here, we show an example where the ingredients, nutrients, cooking method, etc. of the dish are stored as vector data, and this vector data is used to generate the substitute dish.

[0214] [Example of food feature DB configuration] FIG. 19 is a diagram showing a simplified example of the configuration of the dish feature DB 800 stored in the storage unit 130.

[0215] The dish feature DB 800 is a database that stores information about each dish that constitutes a meal included in the menu information generated by the generation unit 122. The dish feature DB 800 is a partial modification of the dish DB 310 (see FIG. 5), and stores information about each dish as vector data.

[0216] The dish characteristics DB 800 stores, in association with each other, a dish ID 801, a dish name 802, energy 803, protein 804, meat 805, fish 806, fried 807, and grilled 808. The dish ID 801 and the dish name 802 correspond to the dish ID 311 and the dish name 312 in the dish DB 310.

[0217] Energy 803 is information (e.g., calories) indicating the amount of energy that can be ingested from a dish corresponding to dish ID 801 and dish name 802. Protein 804 is information indicating the amount of protein that can be ingested from a dish corresponding to dish ID 801 and dish name 802. Each piece of information may be input by an expert such as a nutritionist, or values ​​obtained based on experiments, simulations, etc. Note that, for ease of explanation, FIG. 19 shows energy and protein as examples of nutrients for each dish, but other nutrients (e.g., salt, fat, carbohydrates) may also be stored.

[0218] Meat 805 is information indicating whether meat is used as an ingredient in the dish corresponding to dish ID 801 and dish name 802. Fish 806 is information indicating whether fish is used as an ingredient in the dish corresponding to dish ID 801 and dish name 802. For example, for dishes that use meat, "1" is stored in meat 805, and for dishes that use fish, "1" is stored in fish 806. On the other hand, for dishes that do not use meat, "0" is stored in meat 805, and for dishes that do not use fish, "0" is stored in fish 806. Note that, for ease of explanation, FIG. 19 illustrates meat and fish as examples of ingredients for each dish, but other ingredients (e.g., vegetables, grains, fruits) may also be stored. Also, for ease of explanation, FIG. 19 illustrates an example in which various types of meat (e.g., chicken, pork, beef) are roughly classified as meat, but meat may be more finely classified and stored by type. Similarly, although an example is shown in which various types of fish (for example, mackerel, salmon, and tuna) are roughly classified as fish, the fish may be further classified and stored according to their type.

[0219] Fried 807 is information indicating whether the cooking method of the dish corresponding to dish ID 801 and dish name 802 is "frying." Grilled 808 is information indicating whether the cooking method of the dish corresponding to dish ID 801 and dish name 802 is "grilling." For example, for dishes that are cooked by frying, "1" is stored in Fried 807, and for dishes that are cooked by grilling, "1" is stored in Grill 808. On the other hand, for dishes that are not cooked by frying, "0" is stored in Fried 807, and for dishes that are not cooked by grilling, "0" is stored in Grill 808. Note that, for ease of explanation, FIG. 19 illustrates frying and grilling as examples of cooking methods for each dish, but other cooking methods (for example, stir-frying, boiling, steaming) may also be stored.

[0220] For example, it is possible to determine that the dish corresponding to dish ID 801 "CU001" and dish name 802 "dish A" is a dish made using meat ("1" is stored in meat 805) as the ingredient and cooked by grilling ("1" is stored in grill 808). It is also possible to determine that the dish corresponding to dish ID 801 "CU001" and dish name 802 "dish A" has an energy content of 707 Kcal and a protein content of 25.9 g. FIG. 20 shows an example of generating a substitute dish using information about the dish surrounded by a dotted rectangle 810 (see FIG. 19).

[0221] In addition, each piece of information (energy 803, protein 804, meat 805, fish 806, fried 807, grilled 808) corresponding to the dish ID 801 and dish name 802 can also be understood as vector information that can express the meaning of words and sentences in numbers.

[0222] The information stored in the dish characteristics DB 800 shown in FIG. 19 is an example, and some of the information may be omitted or other information may be stored as necessary.

[0223] [Example of generating an alternative dish based on the current dish and the purpose of the change] First, an example is shown in which the dish before substitution (current dish) and the purpose of changing the substitute dish are communicated to the generation AI 10, and the generation AI 10 is instructed to generate a substitute dish. For example, an example is shown in which the generation AI 10 generates a dish that uses fish instead of meat as a substitute dish for the dish name 802 "dish A" in the dish feature DB 800 shown in Figure 19.

[0224] For example, the providing unit 125 of the information processing device 100 (see FIG. 1) can display a list of menu information stored in the menu information DB 300 (for example, monthly menu information provided to a specified facility) on the UI unit 240 of the user terminal 200. In this case, the providing unit 125 can display, on the UI unit 240, each piece of information from the dish characteristics DB 800 corresponding to the displayed list of menu information, dish by dish. The user can then select a dish that they wish to change from the list of menu information displayed on the UI unit 240, and have each piece of information from the dish characteristics DB 800 corresponding to that dish displayed.

[0225] For example, if the user wishes to change dish A, the user performs a selection operation to select dish A from the list of menu information, and each piece of information in the dish characteristics DB 800 corresponding to dish A is displayed. For example, each piece of information corresponding to the dish name 802 "dish A" in the dish characteristics DB 800 shown in FIG. 19 can be displayed. The user can then select an element of dish A that the user wishes to change and change that element. For example, the user can select "meat" as the element of dish A that the user wishes to change, and change it to use "fish" instead of "meat."

[0226] When such a change operation is performed, the update unit 123 instructs the generation AI 10 to generate an alternative dish that has the same amount of nutrients as dish A but uses fish instead of meat, instead of dish A. Specifically, for each piece of information in the dish feature DB 800 corresponding to dish A, in which a numerical value indicating content volume is stored (e.g., energy 803, protein 804), the update unit 123 writes the name and numerical value of the information, and for information in which a numerical value indicating presence or absence (0 or 1) is stored (e.g., meat 805, fish 806, fried 807, grilled 808), the update unit 123 writes a description clearly indicating that the information stores "1", and inputs a prompt to the generation AI 10 to suggest a dish that satisfies the change information changed by the user (using fish instead of meat).

[0227] For example, the update unit 123 can generate a prompt including, "Based on Dish A (energy: 707 kcal, protein: 25.9 g, ..., ingredients: meat, cooking method: grilled, ...), what kind of dish can you think of if you change the ingredient "meat" to "fish?"' In this case, answer data including the alternative dish is output from the generation AI 10. This answer data includes, as an answer to the above prompt, "How about Dish Q (energy: 650 kcal, protein: 25.2 g, ..., ingredients: fish, cooking method: grilled, ...)?"' In this way, by informing the generation AI 10 of the current dish (e.g., Dish A) and the purpose of the change (e.g., using fish instead of meat), it is possible to receive suggestions for an appropriate cooking recipe.

[0228] This example can be applied to the example shown in FIG. 12 and the example shown in FIG. 18. For example, in the example shown in FIG. 12, in the process of step S503, an available list and an unavailable list for substitute dishes are generated in response to change information from the user. For example, the available list can include "fish," and the unavailable list can include "meat." In the process of step S510, the available list and the unavailable list, along with a prompt including "Based on dish A (energy: 707 kcal, protein: 25.9 g, ..., ingredients: meat, cooking method: grilled, ...), what kind of dish can you think of if you change the ingredient "meat" to "fish?" can be input to the generation AI 10. This can also be applied to the example shown in FIG. 18.

[0229] [Example of alternative dish extraction using vector search] Next, we will show an example in which a dish feature DB, which stores the ingredients, nutrients, cooking methods, etc. of a dish as vector data, is used to perform a vector search for dishes similar to an alternative dish, and the dishes found by the vector search are transmitted to the generation AI 10, instructing it to generate an alternative dish.

[0230] Figure 20 is a simplified diagram showing the flow of generating an alternative dish using a dish extracted from the dish feature DB 800 by vector search. Specifically, this example shows a case where a dish similar to dish A (dish name 802) surrounded by a dotted rectangle 810 (see Figure 19) is extracted from the dish feature DB 800, the extracted dish is transmitted to the generation AI 10, and the generation AI 10 suggests an alternative dish. Figure 20 shows an example where a dish that uses fish instead of meat is extracted from the dish feature DB 800 and used as an alternative dish to dish A.

[0231] Vector search refers to a search method in which the meaning of each element, such as a word or sentence, is expressed numerically and the closeness of each element is compared. For example, consider a case in which similar values ​​are assigned to ingredients such as "strawberry" and "apple," while significantly different values ​​are assigned to ingredients such as "chicken" and "pork." In this case, the distance between "strawberry" and "apple" is determined to be close, and the similarity between "strawberry" and "apple" can be determined to be high (highly similar). On the other hand, the distance between "chicken" and "pork" is determined to be far, and the similarity between "chicken" and "pork" can be determined to be low (lowly similar). Furthermore, when comparing vector data consisting of multiple elements, the distance between the vector data can be calculated using a known calculation method. For example, the cosine similarity of each vector data to be compared can be calculated, and the similarity can be determined to be high as the cosine similarity increases, and low as the cosine similarity decreases. A high cosine similarity indicates a close distance in vector space. Alternatively, the distance between vector data may be calculated using other calculation methods.

[0232] FIG. 20(A) shows each piece of information related to dish A (dish name 802). This information is the same as the information enclosed in dotted rectangle 810 (see FIG. 19). FIG. 20(B) shows each piece of information related to an alternative dish to dish A (dish name 802). The information shown in FIG. 20(B) is obtained by changing meat 805 "1" and fish 806 "0" (dotted rectangle 811) shown in FIG. 20(A) to meat 805 "0" and fish 806 "1" (dotted rectangle 812), and the other information is the same as the information shown in FIG. 20(A).

[0233] As shown in Figure 20(B), by changing meat 805 "1" and fish 806 "0" (dotted rectangle 811) to meat 805 "0" and fish 806 "1" (dotted rectangle 812), it is possible to create vector data for an alternative dish to dish A that uses fish instead of meat.

[0234] For example, the providing unit 125 of the information processing device 100 (see FIG. 1) can display a list of menu information stored in the menu information DB 300 (for example, monthly menu information provided to a specified facility) on the UI unit 240 of the user terminal 200. In this case, the providing unit 125 can display, on the UI unit 240, each piece of information from the dish characteristics DB 800 corresponding to the displayed list of menu information, dish by dish. The user can then select a dish that they wish to change from the list of menu information displayed on the UI unit 240, and have each piece of information from the dish characteristics DB 800 corresponding to that dish displayed.

[0235] For example, if a user wishes to change dish A, the user performs a selection operation to select dish A from the list of menu information, and each piece of information in the dish feature DB 800 corresponding to dish A is displayed. For example, each piece of information shown in FIG. 20(A) can be displayed. The user can then select an element of dish A that the user wishes to change and change that element. For example, as shown in FIGS. 20(A) and (B), the user can select "meat" as the element of dish A that the user wishes to change, and change it to use "fish" instead of "meat."

[0236] When such a change operation is performed, the update unit 123 extracts, instead of dish A, a dish that has the same amount of nutrients as dish A but uses fish instead of meat from the dish feature DB 800. Specifically, the update unit 123 performs a vector search based on the vector data shown in FIG. 20(B) to extract a predetermined number of dishes from the dish feature DB 800 that are ranked highest and closest to the vector data shown in FIG. 20(B). In this case, the update unit 123 searches for dishes corresponding to vector data that have the same values ​​for the elements changed by the user (meat 805 "0", fish 806 "1" (dotted rectangle 812)) and similar values ​​for other elements (for example, energy 803 "707 Kcal", protein 804 "25.9 g", fried 807 "0", grilled 808 "1").

[0237] The predetermined number may be a fixed value (for example, about 2 to 10) or a variable value set based on proximity (for example, a number that meets a criterion for proximity). A known vector search can be used as the search method. The dishes extracted by this vector search are shown in Figure 20(C).

[0238] Furthermore, the search results of the vector search may be corrected before use. For example, the update unit 123 extracts, instead of dish A, a dish with the same level of nutrients as dish A from the dish feature DB 800 without considering the change made by the user (meat → fish). Next, the update unit 123 can further extract only dishes corresponding to "0" in meat 805 and "1" in fish 806 from the one or more extracted dishes. This makes it possible to extract, instead of dish A, a dish that has the same level of nutrients as dish A but uses fish instead of meat from the dish feature DB 800.

[0239] FIG. 20(C) shows an example of a dish extracted from the dish feature DB 800 based on the vector data shown in FIG. 20(B). As described above, dishes corresponding to vector data in which the elements changed by the user (meat 805 "0", fish 806 "1" (dotted rectangle 812)) are the same value and other elements (e.g., energy 803 "707 kcal", protein 804 "25.9 g", fried 807 "0", grilled 808 "1") have similar values ​​are extracted. For example, since vector data with similar values ​​is extracted for other elements, fried dishes and grilled dishes are also extracted based on the relationship between each element. The dishes extracted in this way can also be presented to the user as alternative dishes for dish A. However, the vector data of these extracted dishes can be transmitted to the generation AI 10, which can then suggest appropriate recipes. Therefore, here, an example is shown in which the vector data of these extracted dishes is input to the generation AI 10 and the alternative dishes suggested by the generation AI 10 are used.

[0240] For example, the update unit 123 instructs the generation AI 10 to propose an alternative dish that has the same level of nutrients as dishes Y and Z extracted from the dish feature DB 800 but uses fish instead of meat. Specifically, for information in the vector data shown in Figure 20 (C) that stores a numerical value indicating content volume (e.g., energy 803, protein 804), the update unit 123 writes the name and numerical value of the information, and for information that stores a numerical value (0 or 1) indicating presence or absence (e.g., meat 805, fish 806, fried 807, grilled 808), the update unit 123 writes a description clearly indicating that the information stores "1", and inputs a prompt to the generation AI 10 that suggests an alternative dish that satisfies the element changed by the user (using fish instead of meat). For example, a prompt is input to the generation AI 10 to suggest an alternative dish that has similar content (e.g., similar nutrients) to the information stored with numerical values ​​indicating content volume (e.g., energy 803, protein 804), similar content to other elements (fried 807, grilled 808), and satisfies the element changed by the user (using fish instead of meat). Note that each piece of information about the original dish A may be included in the prompt and input to the generation AI 10 as the original information.

[0241] Figure 20(D) shows a simplified version of answer data 820 including an alternative dish (dish Q1) output from generation AI 10. Answer data 820 includes the following answer to the prompt: "As an alternative dish, how about the following dish Q1? Energy: 700 kcal, Protein: 25.2 g, ..., Ingredients: Fish, Cooking method: Grilled, Cooking procedure: ..." In this way, by inputting one or more dishes (e.g., dishes Y and Z) extracted from the dish feature DB 800 into generation AI 10, it is possible to receive appropriate cooking recipe suggestions from generation AI 10.

[0242] The providing unit 125 can display the response data 820 shown in FIG. 20(D) on the UI unit 240 of the user terminal 200. The providing unit 125 may also display the search results of the vector search (e.g., information about a predetermined number of dishes that are ranked at the top of the search) on the UI unit 240 in a comparable display format along with the contents of the response data 820. This allows the user to compare and consider the substitute dishes output from the generation AI 10 with the search results of the vector search. Furthermore, if the user adopts a substitute dish output from the generation AI 10, the adopted substitute dish can be stored in the dish feature DB 800. Note that the adopted substitute dish may be stored in the dish feature DB 800 regardless of whether it is adopted or not.

[0243] Here, even if high-end French cuisine, high-end Japanese cuisine, and school lunches share at least some of the same ingredients, the destination and content are significantly different. For example, when a user requests a meal served at a school lunch, it is possible that high-end French cuisine or high-end Japanese cuisine will be output from the generation AI 10. Therefore, as shown in FIG. 20, by providing the generation AI 10 with examples of dishes actually served at school lunches, it is possible to improve the accuracy of the substitute dishes output by the generation AI 10. For example, by providing the generation AI 10 with information about dishes actually served at school lunches, it is possible for the generation AI 10 to output substitute dishes that can actually be served at school lunches. Furthermore, when applied to home menus, for example, by providing the generation AI 10 with examples of dishes served at home, it is possible for the generation AI 10 to output substitute dishes that can actually be served at that home.

[0244] This example can be applied to the example shown in Fig. 12 and the example shown in Fig. 18. For example, in the example shown in Fig. 12, as the process of step S503, a vector search can be performed from the cuisine feature DB 800 in accordance with change information from the user. As the process of step S504, a determination process can be performed to determine whether one or more cuisines have been extracted from the cuisine feature DB 800, and as the process of step S510, a prompt including one or more cuisines extracted from the cuisine feature DB 800 can be input to the generation AI 10. This can also be similarly applied to the example shown in Fig. 18.

[0245] 12, in addition to the vector search process from the dish feature DB 800 described above, an available list (and an unavailable list) for substitute dishes may be generated as the process of step S503, and a prompt including one or more dishes extracted from the dish feature DB 800 and the available list (and the unavailable list) may be input to the generation AI 10 as the process of step S510. This is also applicable to the example shown in FIG. 18. This allows the generation AI 10 to generate substitute dishes taking into account one or more dishes extracted from the dish feature DB 800 and the available list (and the unavailable list), thereby improving the accuracy of the substitute dishes.

[0246] In this example, vector data (e.g., the value of energy 803, the value of protein 804, 0 or 1 for meat 805, 0 or 1 for fish 806, 0 or 1 for fried 807, and 0 or 1 for grilled 808) is input to the generation AI10, and the response data is obtained from the generation AI10. In other words, the vector data is converted to text data, and the converted text data (information equivalent to the vector data) is input to the generation AI10. That is, information equivalent to the vector data (or the vector data itself) is input to the generation AI10. Note that CSV (Comma Separated Values) data, JSON (JavaScript (registered trademark) Object Notation) data, etc. may be input to the generation AI10 as information equivalent to the vector data, and the response data may be obtained from the generation AI10.

[0247] [Example of generating alternative dishes using past examples] Next, an example will be shown in which the relationships between dishes that have been substituted in the past are recorded, and the relationships between the substitute dishes are communicated to the generation AI 10, instructing it to generate a new substitute dish.

[0248] FIG. 21 is a simplified diagram showing the flow of generating substitute dishes using the relationships between dishes that have been substituted in the past.

[0249] In Figure 21(A), the relationships between dishes that have been substituted in the past are shown connected by arrows. Specifically, arrows connect the original dish to the substitute dish. For example, dish D (834) means that it has been used as a substitute dish for dish X (835) at least once in the past. Also, for example, dish B (832) and dish C (833) each mean that they have been used as a substitute dish for dish A (831) at least once in the past.

[0250] FIG. 21B shows a simplified example of the configuration of the substitution relationship DB 840 stored in the storage unit 130.

[0251] The substitution relationship DB 840 is a database that stores information about substitute dishes that have been previously generated by the update unit 123. The substitution relationship DB 840 is a modified version of the dish features DB 800 (see FIG. 19), and differs from the dish features DB 800 in that it adds an original dish 841 and a substitute dish 842, but in other respects is common to the dish features DB 800. For this reason, information that is common to the dish features DB 800 will be described using the same reference numerals.

[0252] As shown in Figure 21(A), when dish D (834) is generated as an alternative dish to dish X (835), "D" meaning dish D (834) is stored in the alternative dish 842 corresponding to the dish name 802 "dish X." In this case, "X" meaning dish X (835) is stored in the original dish 841 corresponding to the dish name 802 "dish D."

[0253] Furthermore, when dish A (831) is generated as an alternative dish to dish D (834), "A" meaning dish A (831) is stored in the alternative dish 842 corresponding to the dish name 802 "dish D." In this case, "D" meaning dish D (834) is stored in the original dish 841 corresponding to the dish name 802 "dish A."

[0254] As described above, the providing unit 125 of the information processing device 100 (see FIG. 1) can display a list of menu information stored in the menu information DB 300 (for example, monthly menu information provided to a specific facility) on the UI unit 240 of the user terminal 200. The user can then select a dish that they wish to change from the list of menu information displayed on the UI unit 240, and display each piece of information in the dish characteristics DB 800 that corresponds to that dish.

[0255] In this example, it is assumed that for some reason the user wishes to change dish A, but there are no other factors for which the user wishes to change. In this case, the user wishes to change dish A, so performs a selection operation to select dish A from the list of menu information.

[0256] When such a change operation is performed, the update unit 123 extracts from the substitution relationship DB 840 other dishes that have a substitution relationship with dish A. Specifically, the update unit 123 references the original dish 841 and the substitute dish 842 in the substitution relationship DB 840, and extracts from the substitution relationship DB 840 dishes in either of which information about dish A is stored. In the example shown in FIG. 21(B), information about dish A is stored in the original dish 841 or the substitute dish 842 corresponding to the dish names 802 "dish B," "dish C," and "dish D." In this case, the update unit 123 extracts each piece of information corresponding to the dish names 802 "dish B," "dish C," and "dish D."

[0257] In this example, dishes that have a direct substitution relationship (for example, a relationship directly connected by an arrow in FIG. 21(A)) are extracted, but dishes that have an indirect substitution relationship may also be extracted. In the example shown in FIG. 21(A), an indirect substitution relationship refers to a relationship that is not directly connected by an arrow but is connected primary or secondary. For example, dish X (835) and dish A (831) are not directly connected by an arrow, but are indirectly connected via dish D (834). In this case, dish X (835) and dish A (831) are considered to be dishes that have a primary indirect substitution relationship. Also, for example, dish X (835) and dish B (832) are not directly connected by arrows, but are indirectly connected via dish D (834) and dish A (831). In this case, dish X (835) and dish B (832) are considered to be dishes that have a secondary indirect substitution relationship. It is also considered that dishes with weak substitution relationships are unlikely to contribute to the creation of substitute dishes. Therefore, for dishes with indirect substitution relationships, extraction can be limited to dishes with N-th degree (where N is a natural number) indirect substitution relationships. This N can be set appropriately based on, for example, user preferences, experiments, simulations, etc.

[0258] The dishes extracted in this way (dishes B, C, and D) can be presented to the user as substitute dishes for dish A. However, information about each of these extracted dishes (e.g., vector data) can be transmitted to generation AI 10, and appropriate recipe suggestions can be received from generation AI 10. Therefore, Figure 21 shows an example in which information about each of these extracted dishes is input to generation AI 10 and the substitute dishes suggested by generation AI 10 are used.

[0259] For example, the update unit 123 instructs the generation AI 10 to suggest substitute dishes for dish A by referring to the dishes (dish B, dish C, dish D) extracted from the substitution relationship DB 840. Specifically, the update unit 123 enters information corresponding to each of the dish names 802 "dish B," "dish C," and "dish D" from the substitution relationship DB 840 shown in Figure 21 (B) and inputs a prompt to the generation AI 10 including an indication that a substitute dish for dish A is being suggested.

[0260] Figure 21(C) shows a simplified version of answer data 850 including an alternative dish (dish Q2) output from generation AI 10. Answer data 850 includes the following answer to the prompt: "As an alternative dish, how about the following dish Q2? Energy: 711 kcal, Protein: 26.1 g, ..., Ingredients: Fish, Cooking Method: Grilled, Cooking Instructions: ..." In this way, by inputting one or more dishes (e.g., dish B, dish C, dish D) extracted from the substitution relationship DB 840 into generation AI 10, it is possible to receive appropriate recipe suggestions from generation AI 10.

[0261] The providing unit 125 can display the response data 850 shown in FIG. 21(C) on the UI unit 240 of the user terminal 200. The providing unit 125 may also display the contents of the response data 850 and the dishes extracted from the substitution relationship DB 840 (e.g., dishes B, C, and D) on the UI unit 240 in a comparable display format. This allows the user to compare the substitute dish output from the generation AI 10 with the dishes extracted from the substitution relationship DB 840 (dishes B, C, and D). If the user adopts a substitute dish output from the generation AI 10, the adopted substitute dish can be stored in the substitution relationship DB 840. In this case, "A" is stored in the original dish 841. If a substitute dish (secondary substitute dish) for that substitute dish (primary substitute dish) is subsequently generated, the identification information of the secondary substitute dish is stored in the substitute dish 842 for the primary substitute dish. The substitute dish may be stored in the substitution relationship DB 840 regardless of whether it is adopted or not.

[0262] 20, by providing examples of dishes that were actually served to the generation AI 10, it is possible to improve the accuracy of the substitute dishes output by the generation AI 10. For example, by providing information about dishes that were actually served at a school lunch to the generation AI 10, it is possible to have the generation AI 10 output substitute dishes that can actually be served at a school lunch.

[0263] This example can be applied to the example shown in Fig. 12 and the example shown in Fig. 18. For example, in the example shown in Fig. 12, as the processing of step S503, a process for extracting dishes having a substitution relationship from the substitution relationship DB 840 can be executed in accordance with change information from the user. As the processing of step S504, a determination process for determining whether one or more dishes (dishes having a substitution relationship) have been extracted from the substitution relationship DB 840 can be executed, and as the processing of step S510, a prompt including one or more dishes extracted from the substitution relationship DB 840 can be input to the generation AI 10. The same can be applied to the example shown in Fig. 18.

[0264] 12, the process of step S503 may involve extracting dishes from the substitution relationship DB 840 (extracting dishes with a substitution relationship) and generating an available list (and an unavailable list) for substitute dishes, and the process of step S510 may involve inputting a prompt including one or more dishes extracted from the substitution relationship DB 840 and the available list (and the unavailable list) to the generation AI 10. This can also be applied to the example shown in FIG. 18. This allows the generation AI 10 to generate substitute dishes taking into account one or more dishes extracted from the substitution relationship DB 840 and the available list (and the unavailable list), thereby improving the accuracy of the substitute dishes.

[0265] In this way, it is possible to record and use the relationships between dishes that have been substituted in the past as past history information (for example, the history of editing past menus).Then, by using the recorded relationships between past substitute dishes, it is possible to generate substitute dishes according to the purpose.

[0266] Alternatively, substitute dishes may be generated by appropriately combining the above-described example of extracting substitute dishes using vector search (see FIG. 20) and the example of generating substitute dishes using past examples (see FIG. 21). For example, a prompt including the search results (one or more dishes) from the vector search and one or more dishes with past substitution relationships may be input to the generation AI 10, and the response data may be acquired. This can further improve the accuracy of substitute dishes.

[0267] [Example of generating alternative dishes using customer feedback] Here, for example, assume that it is possible to collect questionnaires and remaining amount data about dishes provided based on menu information. For example, leftover food can be obtained visually or based on image information. It is also possible to compile questionnaires from people who have eaten the dishes. For example, assume that a survey of leftover food from dish A, which uses green peppers as an ingredient, shows that a high percentage of the green peppers are left behind. In this case, it is possible to record, for example, "green peppers are left behind" in association with dish A. For example, assume that a survey of leftover food from dish A, which uses beef as an ingredient, shows that a high percentage of the beef is well-received. In this case, it is possible to record, for example, "beef is well-received" in association with dish A. For example, a feedback (FB) information column can be provided in the dish feature DB 800 (or the substitution relationship DB 840), and information such as "green peppers are left behind" or "beef is well-received" can be stored in the FB information column in association with dish A. For example, in the case of a questionnaire, it is possible to store questionnaire information (e.g., text information indicating the questionnaire results) (e.g., a file in a predetermined format) in the FB information column. Similarly, in the case of leftover information (e.g., leftover ingredients, leftover seasoning, completely eaten ingredients, completely eaten seasoning) obtained by visual inspection of leftover food or based on image information, etc., the leftover information (e.g., text information) (e.g., a file in a predetermined format) can be stored in the Facebook information column. The ingredients, leftovers, completely eaten, etc., in the text information in the Facebook information column can be determined based on known character recognition technology. For example, if the characters for the ingredients and the associated characters for "leftovers" are extracted based on known character recognition technology, the ingredients can be determined to be unpopular. Furthermore, if the characters for the ingredients and the associated characters for "completely eaten" are extracted based on known character recognition technology, the ingredients can be determined to be favorable. Each piece of information can also be stored in the Facebook information column in a predetermined format that can identify the contents of the survey information, leftover information, etc. (e.g., ingredient ID, whether the food was completely eaten, whether there were any leftovers). For example, information associating an ingredient ID (see FIG. 6), a seasoning ID (see FIG. 7), and a positive or negative rating may be stored in the FB information field.

[0268] For example, when instructing the generation AI 10 to suggest an alternative dish for dish A, the update unit 123 can refer to the feedback information field of each DB and input a prompt that reflects the information in the feedback information field to the generation AI 10. For example, if the feedback information field for dish A stores "green peppers are unpopular" and "beef is popular," the update unit 123 can input a prompt to the generation AI 10 that includes instructions to limit the use of green peppers and to use beef whenever possible. In addition to instructing the generation AI 10, a nutritionist or other expert may determine whether or not to reflect the information within an acceptable range, whether or not to reflect the information in constraints, etc. For example, in the case of a menu that requires salt control, even if information that a salty taste is popular is stored in the feedback information field, it is preferable not to reflect that information.

[0269] Each ingredient may also be entered into the available list and the unavailable list for the alternative dish. For example, if "green peppers remain" and "beef is popular" are stored in the FB information field for dish A, beef can be added to the available list and green peppers can be added to the unavailable list. Since beef is used in dish A, it is considered that beef satisfies the constraints. Therefore, beef is likely to be extracted in the process of extracting ingredients and seasonings that satisfy the constraints (e.g., step S503) and already be included in the available list. In this case, adding beef to the available list is unnecessary. However, since "beef is popular," information specifically recommending the use of beef may be added to the beef and added to the available list. In this case, a prompt recommending the use of beef can be input to the generation AI 10. When changing menu information based on user operation, the changes may include excluding beef. In this case, adding beef to the available list is unnecessary. In this case, beef is also excluded in the process of extracting ingredients and seasonings that satisfy the constraints (e.g., step S503). It is also possible that green peppers are already included in the already generated available list. In this case, remove Beeman from the available list and add Green Pepper to the unavailable list.

[0270] [Example of generating an alternative dish by specifying the amount of each ingredient] Here, the edible amount of each ingredient used in a dish cannot often be changed drastically. Therefore, for example, when instructing the generation AI10 to suggest an alternative dish, the update unit 123 can input a prompt including the amount of each ingredient used in the alternative dish to the generation AI10. The edible amount of each ingredient used in the dish is stored in the ingredients used 313 in the dish DB 310 (see FIG. 5). In this way, by inputting a prompt including the amount of each ingredient used in the alternative dish to the generation AI10, it is possible to further improve the accuracy of the alternative dish.

[0271] [Example of generating all or part of menu information using generation AI] For example, the generation AI 10 may be used to suggest each dish that constitutes the menu information, sequentially evaluate whether each of the suggested dishes satisfies the constraints, and generate menu information based on the dishes that satisfy the constraints. For example, it is possible to extract ingredients and seasonings that satisfy the constraints for some or all of the period corresponding to the menu information, and then have the generation AI 10 suggest each dish using the extraction results. This makes it possible to automatically generate menu information using the generation AI 10.

[0272] [Example of application to solution information other than menu information] In the above, menu information has been described as an example of solution information generated by optimization processing. However, this embodiment can also be applied to other solution information. Therefore, below, application examples to other solution information will be described.

[0273] [Example of application to personnel issues] For example, the personnel of a certain organization can be determined as solution information through an optimization process. For example, an attribute DB storing the attributes (e.g., educational background, work history, skills, qualifications, age, and gender) of each person belonging to the organization can be prepared, and the personnel of the organization can be determined through an optimization process using this attribute DB and the details of the projects being implemented by the organization. In this case, for example, if it is determined that there is a shortage of personnel for a certain project A, or if it is determined that person B belonging to project A is unable to participate for some reason (e.g., illness or injury), it can be determined that a personnel change for project A has occurred. In this case, attributes, etc. of a person who can replace person B are extracted using the attributes, etc. of person B to generate a list of candidate people, and a prompt including this list of people, attribute information about each person belonging to this list, and a suggestion of a person to replace person B is passed to a generation AI. Answer data to the prompt is obtained from the generation AI, and the replacement information (a person to replace person B) included in the answer data can be used to consider the personnel of project A. In this case, the attribute database can be used to determine the relationships between the substitute person obtained from the generation AI and other people, and to evaluate whether the new personnel changes satisfy the constraints.

[0274] [Example of application to travel itineraries] For example, a travel plan can be obtained as solution information through an optimization process. For example, an attribute DB that stores attributes of places to be visited included in the travel plan (e.g., location, history, field, nearest transportation) and a transportation DB that can calculate travel routes and travel times when using various transportation methods (e.g., car, bus, train, airplane, boat, bicycle, walking) can be prepared. Using the attribute DB, the transportation DB, and a major destination (e.g., Hokkaido, Kagoshima), a travel plan to the destination can be obtained through an optimization process. In this case, for example, if it is found during a certain travel plan process that there is a place C (e.g., a museum, restaurant, shopping center) that cannot be visited (e.g., closed, under construction, insufficient travel time, change in transportation method, or limited time spent at the place), it can be determined that the travel plan needs to be changed. In this case, attributes of places that can replace place C, which cannot be visited, are extracted using attributes of place C (for example, places in a similar field nearby place C) to generate a list of candidate places, and a prompt containing this list of places, attribute information about each place on the list, and a suggestion of a place to replace place C is passed to the generation AI, and response data to the prompt is obtained from the generation AI, and the travel plan can be changed using the alternative information (places that can replace place C) contained in the response data.In this case, the travel route and travel time, etc., can be obtained using the transportation DB for the alternative places obtained from the generation AI, and it can be evaluated whether the new travel plan satisfies the constraints.

[0275] [Example of application to a daily schedule] For example, a daily schedule can be obtained as solution information through an optimization process. For example, an attribute DB storing attributes of each element included in the daily schedule (e.g., location, content, necessary items, means of transportation) can be prepared, and the daily schedule can be obtained through an optimization process using the attribute DB. In this case, for example, if it is found that a certain item (e.g., play, travel) exists in a certain daily schedule that cannot be realized (e.g., rain, rest, insufficient travel time, change in means of transportation), it can be determined that the daily schedule needs to be changed. In this case, attributes of an item that can replace the impossible item D can be extracted using the attributes of item D (e.g., an item that is close to the location of item D and has similar content) to generate a list of candidate items. A prompt including this list of items, attribute information for each item in this list, and a suggestion to replace item D can be passed to a generation AI. Answer data to the prompt can be obtained from the generation AI, and the substitution information (an item that can replace item D) included in the answer data can be used to change the daily schedule. In this case, the attribute database can be used to determine the travel route, travel time, required time, etc. for the alternative items obtained from the generation AI, and an evaluation can be made as to whether the new daily schedule satisfies the constraints.

[0276] [Example of application to exam questions] For example, test questions can be obtained as solution information through optimization processing. For example, an attribute DB that stores the attributes of each sub-question included in a test question (for example, content, difficulty, and format such as descriptive or multiple choice) can be prepared, and test questions can be obtained through optimization processing using the attribute DB. For example, if the difficulty of each sub-question is known, it is possible to combine each sub-question to optimize the overall difficulty. Also, for example, if the subject areas of the sub-questions are known, it is possible to combine each sub-question to optimize without bias in subject areas.

[0277] In this case, for example, if it is found that a sub-question in a certain test question is impossible to include (e.g., in a field that is not taught or contains incorrect content), it can be determined that the test question needs to be changed. In this case, attributes of sub-questions that can replace sub-question E, which cannot be included, can be extracted using the attributes of sub-question E (e.g., sub-questions in a field close to sub-question E and with similar content), and a list of candidate sub-questions can be generated. A prompt containing this list of sub-questions, attribute information for each sub-question in the list, and a suggestion for a sub-question to replace sub-question E can be passed to the generation AI. Answer data to the prompt can be obtained from the generation AI, and the test question can be changed using the replacement information (sub-question to replace sub-question E) contained in the answer data. In this case, the attribute DB can be used to determine the field, difficulty, etc. of the replacement question obtained from the generation AI in relation to other sub-questions, and whether the new test question satisfies the constraints can be evaluated.

[0278] [Example of executing processing on other devices or systems] Although the above describes an example in which the extraction process, control process, etc. are executed in the information processing device 100, all or part of these processes may be executed in other devices. In this case, an information processing system is configured by the devices that execute part of these processes. For example, at least part of each process may be executed using various information processing devices and various electronic devices, such as a server, a device available to the user (e.g., a smartphone, a tablet terminal, a personal computer), or a server connectable via a predetermined network such as the Internet. Furthermore, all or part of the information (e.g., each DB, each holding unit) in the storage unit 130 of the information processing device 100 may be stored in an external device. The information processing device 100 can acquire and use the contents of the DB, etc., stored in the external device from the external device as needed.

[0279] Furthermore, a part (or all) of an information processing system capable of executing the functions of the information processing device 100 or the like may be provided by an application that can be provided via a predetermined network such as the Internet. This application is, for example, SaaS (Software as a Service).

[0280] [Configuration example and effects of this embodiment] The information processing device 100 includes a control unit 120 that, when changing part of menu information (an example of solution information indicating a solution) generated by an optimization process using constraints (e.g., intervals between ingredients, intervals between seasonings, cooking methods, upper limits on the cost of a dish (or meal), upper limits on energy, and lower limits on protein) (e.g., when it becomes necessary to change part of the menu information (steps S502 (see FIG. 12) and S701 (see FIG. 18))), passes input data including a prompt (an example of instruction information) to the generation AI 10 to generate some substitute dishes (an example of substitute information) that satisfy the constraints (step S510 (see FIGS. 12 and 18)), obtains response data in response to the input data from the generation AI 10 (step S511 (see FIGS. 12 and 18)), and executes control to change the menu information using the substitute dishes included in the response data (steps S512 to S514, etc. (see FIGS. 12 and 18)). The information processing method according to this embodiment includes each of these processes. The program according to this embodiment is a program that causes a computer to execute each of these processes. In other words, the program according to this embodiment is a program that causes a computer to realize each function that can be executed by the information processing device 100. As described above, it is also possible to have an external device other than the information processing device 100 execute the interaction with the generation AI 10. In this case, a control unit of the external device executes all or part of each of these processes. For example, when changing part of the menu information generated by the optimization process using constraints, the control unit of the external device passes input data to the generation AI 10, including a prompt to generate some substitute dishes that satisfy the constraints, obtains response data in response to the input data from the generation AI 10, and executes control to change the menu information using the substitute dishes included in the response data.

[0281] With this configuration, if it becomes necessary to change the menu information generated by the information processing device 100, the information processing device 100 can use the generation AI 10 to change the menu information to appropriate menu information according to the change information. In other words, if it becomes necessary to change part of the menu information generated by the optimization process to satisfy the constraints, the generation AI 10 can be used to appropriately change the menu information instead of an expert.

[0282] Menu information (an example of solution information) can be generated using one or more elements (e.g., dish, ingredients, seasoning, cooking method) so as to satisfy the constraints. The control unit 120 may extract a candidate list of elements (e.g., usable ingredient list 362, usable seasoning list 363) that can be used to generate an alternative dish (an example of alternative information) (steps S503, S702 (see FIGS. 12 and 18)), and may pass input data to the generation AI 10 that includes the candidate list and a prompt (an example of instruction information) to generate an alternative dish using the elements (e.g., ingredients, seasoning) included in the candidate list (step S510 (see FIGS. 12 and 18)). For example, as shown in step S510 (see FIG. 12), the input data is passed to the generation AI 10.

[0283] According to this configuration, input data including a candidate list and a prompt to generate an alternative dish using elements included in the candidate list can be passed to the generation AI 10, and the answer data can be obtained, thereby improving the accuracy of the alternative dishes included in the answer data.

[0284] Menu information (an example of solution information) is generated using databases (dish DB 310, ingredient DB 320, seasoning DB 330, cooking method DB 340, and cooking utensil DB 350) that store one or more elements (e.g., dishes, ingredients, seasonings, and cooking methods). When menu information that has been partially changed using an alternative dish (an example of alternative information) is adopted (steps S515 to S519 (see FIG. 12), step S513 (see FIG. 18)), if there are any elements used to generate the alternative dish that are not stored in the above-mentioned databases, the control unit 120 may add those elements to the databases. For example, as shown in steps S703 and S704 (see FIG. 18), the elements used to generate the alternative dish are added to the databases.

[0285] With this configuration, if the information about the alternative dishes proposed by the generation AI 10 is not stored in each database, the information can be stored in the database one by one and reflected. This allows the generation AI 10 to automatically update the database.

[0286] When an instruction to change part of the menu information (an example of solution information) is given based on a user operation (steps S501 to S502 (see Figure 12)), the control unit 120 may pass input data including a prompt (an example of instruction information) to generate an alternative dish (an example of alternative information) that satisfies the change conditions (e.g., change event 61, date and time information 62, use / not use 63 (see Figure 3)) set by the user operation and the constraint conditions to the generation AI 10 (step S510 (see Figure 12)).

[0287] According to this configuration, when it becomes necessary to change menu information, the user can use the user terminal 200 to send change information to the information processing device 100, and the menu information can be quickly changed appropriately in accordance with the change information using the generation AI 10. In other words, the user operating the user terminal 200 does not need to be an expert such as a nutritionist; they only need to confirm one or more menu information candidates presented by the information processing device 100.

[0288] When the control unit 120 detects that part of the menu information (an example of solution information) needs to be changed in the evaluation process for evaluating whether the menu information (an example of solution information) satisfies the constraint conditions (step S701 (see Figure 18)), it may pass input data including a prompt (an example of instruction information) to the generation AI 10 to generate an alternative dish (an example of alternative information) that satisfies the constraint conditions (step S510 (see Figure 18)).

[0289] According to this configuration, if a part that does not satisfy the constraint conditions is detected as a result of the menu information evaluation process by the information processing device 100, it is possible to quickly and automatically change that part using the generation AI 10.

[0290] In the evaluation process (step S512 (see FIG. 12, FIG. 18)) in which the control unit 120 evaluates whether the menu information (solution information) partially modified using the substitute dishes (substitute information) included in the response data satisfies the constraint conditions, if it is determined that the partially modified menu information satisfies the constraint conditions, the control unit 120 adopts the partially modified solution information (steps S513, S515 (see FIG. 12), steps S513, S520 (see FIG. 18)). On the other hand, if it is determined that the partially modified menu information does not satisfy the constraint conditions, the control unit 120 identifies the part of the partially modified menu information that does not satisfy the constraint conditions (step S513, S514 (see Figures 12, 18)), input data including a prompt (an example of instruction information) to generate new alternative information whose identified portion satisfies the constraints is passed to generation AI10 (step S510 (see Figures 12, 18)), response data for the input data is obtained from generation AI10 (step S511 (see Figures 12, 18)), and the menu information may be changed using the new alternative dish included in the response data (steps S503, S504, S510, S511, S512, S513, S515, S519, S520 (see Figure 12), steps S702, S520 (see Figure 18)).

[0291] With this configuration, even if menu information partially modified using substitute dishes does not satisfy the constraints, it is possible to identify the portion that does not satisfy the constraints and obtain a new substitute dish using the generation AI 10. This allows the menu information to be appropriately modified by repeatedly executing the process of obtaining a new substitute dish until the constraints are satisfied.

[0292] Menu information (an example of solution information) can be generated using one or more elements (e.g., dish, ingredients, seasoning, cooking method) so as to satisfy the constraints. The control unit 120 extracts a first candidate list (e.g., usable ingredient list 362, usable seasoning list 363) of elements usable for generating an alternative dish (an example of alternative information) and a second candidate list of elements that cannot be used for generating an alternative dish (steps S503, S702 (see FIGS. 12 and 18)), and may pass input data to the generation AI 10 including the first candidate list, the second candidate list, and a prompt (an example of instruction information) that includes an instruction to generate an alternative dish without using elements included in the second candidate list but using elements included in the first candidate list (e.g., ingredients, seasoning) (step S510 (see FIGS. 12 and 18)).

[0293] This configuration allows the generation AI 10 to receive input data containing a first candidate list, a second candidate list, and a prompt to generate a substitute dish using elements from the first candidate list without using elements from the second candidate list, and to obtain response data. This further improves the accuracy of the substitute dishes contained in the response data. This prevents the generation AI 10 from using unusable items. This prevents the substitution dish generation process from being repeated multiple times, allowing for the rapid generation of menu information that satisfies the constraints. Furthermore, preventing the repeated generation of the substitute dish generation process allows for efficient use of computing resources and improved computing efficiency. This reduces the computational processing required by the information processing device 100 and the generation AI 10, thereby reducing the power consumption of the information processing device 100 and the generation AI 10.

[0294] The control unit 120 may pass input data to the generation AI 10 including a prompt (an example of instruction information) that includes an element that needs to be changed (e.g., fish instead of meat) for some dishes (target dishes) of the menu information to be changed, and an instruction to generate an alternative dish (e.g., an alternative dish whose similarity to the target dish satisfies a criterion) whose elements other than the element that needs to be changed (e.g., energy 803, protein 804, grilled 808) are similar to those of the target dish (step S510 (see FIGS. 12 and 18)). Note that an alternative dish whose similarity to the target dish satisfies the criterion means, for example, a dish whose similarity to the target dish is higher than a criterion (e.g., a threshold value).

[0295] With this configuration, input data including the elements of the target dish to be changed and a prompt to generate an alternative dish that is comparable to the target dish in other elements other than the elements that need to be changed can be passed to the generation AI 10, and response data can be obtained, making it easy to generate an alternative dish that is comparable to the target dish.For example, even in a situation where some of the ingredients of the target dish are unavailable, it is easy to generate an alternative dish that does not use the unavailable ingredients and is comparable to the target dish, allowing for the rapid generation of menu information that satisfies the constraints.

[0296] Menu information (an example of solution information) is generated using databases (e.g., dish DB310, ingredient DB320, seasoning DB330, cooking method DB340, cooking utensil DB350, dish characteristics DB800, substitution relationship DB840) that store one or more elements (e.g., dishes, ingredients, seasonings, cooking methods). When changing part of the menu information, the control unit 120 may extract information about one or more dishes related to the substitute dish from the databases (e.g., dish characteristics DB800, substitution relationship DB840) based on predetermined conditions, and pass input data to the generation AI that includes information about the extracted one or more dishes and a prompt (an example of instruction information) that includes a command to generate a substitute dish.

[0297] For example, the information processing device 100 includes a dish feature DB 800 that stores one or more elements (e.g., dish ID 801, dish name 802, energy 803, protein 804, meat 805, fish 806, fried 807, grilled 808) as vector data. Based on the vector data of a part of the dish (target dish) in the menu information to be changed, the control unit 120 extracts from the dish feature DB 800 one or more dishes similar to the target dish (or one or more dishes similar to a dish with some elements of the target dish changed) (e.g., one or more dishes whose similarity to the target dish (or a dish with some elements changed) meets a criterion). The control unit 120 may also pass input data to the generation AI 10, including the vector data of the one or more extracted dishes and a prompt (an example of instruction information) that includes an instruction to generate an alternative dish that is comparable to the target dish (e.g., an alternative dish whose similarity to the target dish meets a criterion) (step S510 (see FIGS. 12 and 18)). For example, input data including the information shown in FIG. 20(C) is passed to the generation AI 10.

[0298] According to this configuration, input data including one or more dishes similar to the target dish extracted based on the vector data of the target dish to be changed (or one or more dishes similar to a dish in which some elements of the target dish have been changed) and a prompt to generate an alternative dish that is comparable to the target dish can be passed to generation AI10, and the response data can be obtained, making it possible to easily generate an alternative dish that is comparable to the target dish with high accuracy.

[0299] Furthermore, for example, the information processing device 100 includes a substitution relationship DB840 that stores substitution relationships between multiple dishes. The control unit 120 uses the substitution relationship DB840 to extract one or more dishes that have been in a substitution relationship with some of the dishes (target dishes) in the menu information to be changed. The control unit 120 may also pass input data to the generation AI10, including vector data for the extracted one or more dishes and a prompt (an example of instruction information) that includes an instruction to generate a substitute dish that is similar to the target dish (for example, a substitute dish whose similarity to the target dish meets a criterion) (step S510 (see FIGS. 12 and 18)). For example, input data including each piece of information shown in FIG. 21(B) is passed to the generation AI10.

[0300] According to this configuration, input data including one or more dishes that have been substituted for the target dish to be changed and a prompt to generate an alternative dish that is comparable to the target dish can be passed to the generation AI10, and the response data can be obtained, making it possible to easily generate an alternative dish that is comparable to the target dish with high accuracy.

[0301] Note that each processing procedure shown in this embodiment is an example for realizing this embodiment, and the order of some of the processing procedures may be changed within the scope that makes it possible to realize this embodiment, and some of the processing procedures may be omitted or other processing procedures may be added.

[0302] Each process described in this embodiment is executed based on a program that causes a computer to execute each processing procedure. Therefore, this embodiment can also be understood as an embodiment of a program that realizes the function of executing each process and a recording medium that stores the program. For example, an update process for adding a new function to an information processing device can store the program in the storage device of the information processing device. This makes it possible to cause the updated information processing device to execute each process described in this embodiment.

[0303] Although the embodiments of the present invention have been described above, the above embodiments merely illustrate some of the application examples of the present invention, and it is not intended that the technical scope of the present invention be limited to the specific configurations of the above embodiments. [Explanation of symbols]

[0304] 10 Generation AI, 100 Information processing device, 110, 210 Communication unit, 120, 220 Control unit, 121 Acquisition unit, 122 Generation unit, 123 Update unit, 124 Recording control unit, 125 Provision unit, 130, 230 Memory unit, 300 Menu information DB, 310 Cooking DB, 320 Ingredient DB, 330 Seasoning DB, 340 Cooking method DB, 350 Cooking utensil DB, 360 List holding unit, 370 Determination result holding unit, 200 User terminal, 240 UI unit, 241 Reception unit, 242 Output unit, NW1 Network

Claims

1. An information processing device having a control unit that, when changing part of solution information indicating a solution generated by an optimization process using constraint conditions, passes input data to a generation AI including instruction information to generate replacement information for the part that satisfies the constraint conditions, obtains answer data for the input data from the generation AI, and executes control to change the solution information using the replacement information included in the answer data.

2. The solution information can be generated using one or more elements to satisfy the constraints; The control unit extracts a candidate list of the elements that can be used to generate the replacement information, and passes the input data including the candidate list and the instruction information to generate the replacement information using the elements included in the candidate list to the generation AI. The information processing device according to claim 1 .

3. the solution information is generated using a database storing the one or more elements; When the solution information partially modified using the replacement information is adopted, if there is an element among the elements used to generate the replacement information that is not stored in the database, the control unit adds the element to the database. The information processing device according to claim 2 .

4. When an instruction to change a part of the solution information is given based on a user operation, the control unit passes the input data including the instruction information to generate the alternative information that satisfies the change condition and the constraint condition set by the user operation to the generation AI. The information processing device according to claim 1 .

5. When it is detected that a part of the solution information is to be changed in an evaluation process for evaluating whether or not the solution information satisfies the constraint condition, the control unit passes input data including the instruction information to the generation AI to generate the alternative information that satisfies the constraint condition. The information processing device according to claim 1 .

6. The control unit In an evaluation process for evaluating whether or not the solution information partially modified using the alternative information included in the response data satisfies the constraint conditions, if it is determined that the partially modified solution information satisfies the constraint conditions, adopting the partially modified solution information; On the other hand, if it is determined that the partially changed solution information does not satisfy the constraint condition, the part that does not satisfy the constraint condition is identified from the partially changed solution information, the input data including the instruction information to generate new replacement information in which the identified part satisfies the constraint condition is passed to the generation AI, response data for the input data is obtained from the generation AI, and the solution information is changed using the new replacement information included in the response data. The information processing device according to claim 1 .

7. The solution information can be generated using one or more elements to satisfy the constraints; The control unit extracts a first candidate list of the elements that can be used to generate the substitute information and a second candidate list of the elements that cannot be used to generate the substitute information, and passes the input data, which includes the first candidate list, the second candidate list, and the instruction information to generate the substitute information using the elements included in the first candidate list without using the elements included in the second candidate list, to the generation AI. The information processing device according to claim 1 .

8. the solution information is generated using a database storing the one or more elements; The control unit extracts the elements related to the alternative information from the database, and passes the input data including the extracted elements and the instruction information to the generation AI. The information processing device according to claim 1 .

9. An information processing method including a control process for changing part of solution information indicating a solution generated by an optimization process using constraints, passing input data to a generation AI including instruction information to generate replacement information for the part that satisfies the constraints, obtaining answer data for the input data from the generation AI, and using the replacement information included in the answer data to change the solution information.

10. A program that causes a computer to execute a control procedure that, when changing part of solution information indicating a solution generated by an optimization process using constraints, passes input data to a generation AI that includes instruction information to generate replacement information for the part that satisfies the constraints, obtains response data for the input data from the generation AI, and uses the replacement information included in the response data to change the solution information.

Citation Information

Patent Citations

  • Information processor, food material purchase support method and food material purchase support system

    JP2013122706A

  • Security countermeasures investigation tool

    JP2019219898A

  • Menu proposal system, menu proposal method, program, information processing method, and information processing device

    WO2021167030A1

  • Menu preparation program

    JP2023035550A