system
The system addresses the challenge of planning daily meals by allowing users to input their mood and time, retrieving and randomly selecting dishes, with error handling, to create personalized meal plans efficiently.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2026-04-09
AI Technical Summary
There is a lack of systems that can automatically propose daily menus based on user mood and family preferences, making it difficult for busy housewives and working parents to efficiently plan meals.
A system that includes an input means for user mood and time period, a retrieval means from a database, a random selection of dishes, and a provision means to generate menus, with error handling and visual display, reducing the effort required to create daily meal plans.
Enables users to easily and automatically generate meal plans that match their mood and time period, improving convenience and efficiency in meal planning.
Smart Images

Figure 2026062248000001_ABST
Abstract
Description
Technical Field
[0001] The technology of the present disclosure relates to a system.
Background Art
[0002] Patent Document 1 discloses a method for controlling a persona chatbot, which is performed by at least one processor, including steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of the chatbot's character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance as a response to the user utterance.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In recent years, the number of dual - income families has been increasing, so there is a strong demand to reduce the time and effort that busy housewives or working parents spend thinking about daily menus. However, a system that automatically proposes a menu according to daily mood and family preferences has not yet been put into practical use. Furthermore, since there is no system that proposes appropriate dishes based on user input, it is difficult to plan daily meals.
Means for Solving the Problems
[0005] This invention relates to a system comprising: an input means for the user's mood and time period; a means for retrieving dish candidates from a database corresponding to the entered mood and time period; a means for randomly selecting dishes corresponding to each time period from the retrieved dish candidates; and a means for providing the selected dishes to the user. This system allows users to easily and automatically generate menus that match their mood and time period, significantly reducing the effort required to create daily meal plans. Furthermore, even if the entered mood does not exist in the database, an error message is generated and notified to help the user make appropriate input. In addition, the system can improve user convenience by visually displaying the list of provided dishes.
[0006] "Users" refer to people who use the system to receive menu suggestions.
[0007] "Mood" refers to a user's preference for a particular type or style of cuisine at a specific point in time.
[0008] "Period" refers to the number of days for which the user wants menu suggestions.
[0009] "Input method" refers to the interface that allows users to input their mood, duration, etc., into the system.
[0010] A "database" refers to a collection of information where potential recipes are gathered and stored for a system to refer to.
[0011] "Acquisition method" refers to the function that retrieves dish suggestions from a database based on the mood and time period entered.
[0012] "Selection method" refers to a function that randomly selects a dish corresponding to each period from the acquired dish candidates.
[0013] "Means of provision" refers to the function of presenting the selected dishes to the user.
[0014] "Error message" refers to a notification message that notifies the user when the input is inappropriate.
[0015] "Means of notification" refers to an interface for notifying the user of the error message.
[0016] "Display means" refers to an interface that visually shows the selected dish to the user.
[0017] "Terminal" refers to an electronic device for the user to connect to and operate the system.
Brief Description of Drawings
[0018] [Figure 1] It is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] It is a conceptual diagram showing an example of the main functions of a data processing device and a smart device according to the first embodiment. [Figure 3] It is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] It is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] It is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] It is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] It is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] It is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] It shows an emotion map to which a plurality of emotions are mapped. [Figure 10] It shows an emotion map to which a plurality of emotions are mapped. [Figure 11]It is a sequence diagram showing the processing flow of the data processing system in Embodiment 1. [Figure 12] It is a sequence diagram showing the processing flow of the data processing system in Application Example 1. [Figure 13] It is a sequence diagram showing the processing flow of the data processing system in Embodiment 2 when the emotion engine is combined. [Figure 14] It is a sequence diagram showing the processing flow of the data processing system in Application Example 2 when the emotion engine is combined.
Mode for Carrying Out the Invention
[0019] Hereinafter, an example of an embodiment of a system according to the technology of the present disclosure will be described with reference to the accompanying drawings.
[0020] First, the language used in the following description will be explained.
[0021] In the following embodiments, the numbered processor (hereinafter simply referred to as "processor") may be a single arithmetic unit or a combination of multiple arithmetic units. Also, the processor may be a single type of arithmetic unit or a combination of multiple types of arithmetic units. Examples of arithmetic units include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), an APU (Accelerated Processing Unit), and the like.
[0022] In the following embodiments, the numbered RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a work memory by the processor.
[0023] In the following embodiments, the signed storage is one or more non-volatile storage devices that store various programs and various parameters. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), or magnetic tapes.
[0024] In the following embodiments, the signed communication interface (I / F) is an interface that includes a communication processor and an antenna, etc. The communication interface manages communication between multiple computers. Examples of communication standards applicable to the communication interface include wireless communication standards such as 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).
[0025] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." That is, "A and / or B" means that it may be A alone, or B alone, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" applies when expressing three or more things linked by "and / or."
[0026] [First Embodiment]
[0027] Figure 1 shows an example of the configuration of the data processing system 10 according to the first embodiment.
[0028] As shown in Figure 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0029] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0030] The smart device 14 comprises a computer 36, a reception device 38, an output device 40, a camera 42, and a communication interface 44. The computer 36 comprises a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The reception device 38, output device 40, and camera 42 are also connected to the bus 52.
[0031] The reception device 38 is equipped with a touch panel 38A and a microphone 38B, etc., and receives user input. The touch panel 38A receives user input by detecting contact with an object (e.g., a pen or finger). The microphone 38B receives user input by detecting the user's voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0032] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form perceptible to the user 20 (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0033] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.
[0034] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0035] As shown in Figure 2, in the data processing device 12, a specific processing is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" related to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0036] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0037] In the smart device 14, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The reception output program 60 is used in conjunction with a specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0038] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0039] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe, and aims to reduce the effort required for busy housewives and working parents to plan meals.
[0040] The following program and its processing flow are shown as an embodiment of this system.
[0041] System Overview
[0042] The user accesses the system using a terminal. The terminal is provided with an interface for entering a mood (e.g., "Chinese," "Japanese," "Western," etc.) and a duration (number of days). Once the user enters and submits this information, the server receives the request and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes corresponding to each day from the retrieved suggestions to generate a menu list, which is then provided to the user.
[0043] Program processing
[0044] The server sets up a specific endpoint to receive requests from users. At the endpoint, it receives data on the user's mood and time period, and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes from the retrieved suggestions to create a menu list.
[0045] For example, if a user requests a 7-day menu in the mood for "Japanese style," the server retrieves dishes that fit the "Japanese style" category from the database (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.). Then, it randomly selects 7 days' worth of menus to generate a list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki").
[0046] The server returns the generated menu list to the user in JSON format, and the system completes by displaying the received data in a format that the user can easily see. This process allows users to easily and automatically generate menus that suit their mood and the number of days they are staying.
[0047] Furthermore, if the entered mood does not exist in the database, the server generates an error message and notifies the user. This error handling function makes the system easier to use. In addition, the user convenience is improved by visually displaying the generated menu list on the terminal.
[0048] This invention significantly reduces the time and effort required for busy housewives and working parents to plan their daily meals, enabling them to efficiently create daily meal plans.
[0049] The following describes the processing flow.
[0050] Step 1:
[0051] The user accesses the system via their device and enters their preferred style (e.g., "Chinese," "Japanese," "Western") and duration (number of days). This information is then sent to the server.
[0052] Step 2:
[0053] The server receives the POST request at the endpoint and parses the user's input data using request.get_json(). Here, it extracts information about mood and duration (days).
[0054] Step 3:
[0055] The server checks if the extracted mood exists in the database. If it does not exist, the server generates an error message and sends it back to the user with HTTP status code 400.
[0056] Step 4:
[0057] The server retrieves dish suggestions from the database that correspond to the entered mood. This database stores multiple dishes corresponding to each mood.
[0058] Step 5:
[0059] The server randomly selects dishes from a list of available dishes for a specified period (number of days). For example, dishes can be selected using `random.choice()` to generate a menu list.
[0060] Step 6:
[0061] The server generates a menu list, converts it to JSON format, and sends it to the user as a response. The menu list includes dishes for the specified period.
[0062] Step 7:
[0063] The device parses the JSON-formatted response received from the server and displays it to the user in a visually accessible format. This allows the user to easily check their daily meal plans.
[0064] For example, if a user requests a 7-day menu with the subject "in a Japanese mood," the server retrieves Japanese dishes (e.g., sukiyaki, teriyaki chicken, sashimi, etc.) from the database and randomly selects dishes for 7 days. As a result, it provides the user with a generated menu list (e.g., sukiyaki, teriyaki chicken, sashimi, sukiyaki, teriyaki chicken, sashimi, sukiyaki).
[0065] The above explains the program's processing steps by breaking them down into specific steps.
[0066] (Example 1)
[0067] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0068] Busy families need a system that makes it easy to create meal plans tailored to their mood and timeframe, reducing the effort required to plan meals. However, conventional systems struggle to flexibly accommodate diverse moods and timeframes, and they lack intuitive user interfaces.
[0069] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0070] In this invention, the server includes means for inputting mood and duration; means for retrieving dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; means for serving the selected dishes; and means for creating a menu list by randomly selecting dishes from the retrieved dish candidates. This makes it possible for users to easily and automatically generate menus suitable for a variety of moods and durations.
[0071] "User" refers to an individual or organization that intends to use this system to create a menu.
[0072] "Mood" refers to the type or style of cuisine that the user desires (e.g., "Chinese," "Japanese," "Western," etc.).
[0073] "Period" refers to a specified number of days and serves as the unit for generating menus.
[0074] "Input method" refers to an interface or device that allows users to input their mood or time period.
[0075] A "database" refers to a data storage system where recipe candidates and other related information are stored.
[0076] "Means of acquisition" refers to a system or program that has the function of retrieving information from a database according to the entered mood or time period.
[0077] "Selection method" refers to a system or program that has the function of randomly selecting from acquired dish candidates based on specific logic or conditions.
[0078] "Means of provision" refers to a system or program that has the function of notifying or displaying randomly selected dishes to the user.
[0079] A "menu list" refers to a list of selected dishes, organized by day.
[0080] An "error message" refers to a warning message displayed when the entered mood or other information does not exist in the system's database.
[0081] This invention relates to a system that automatically creates meal plans according to the user's mood and timeframe, and aims to reduce the effort required to plan meals, especially in busy households. Specific embodiments of the system are described below.
[0082] System Overview
[0083] Users access the system via a web browser using a device (e.g., PC, smartphone). The device provides an interface for entering a mood (e.g., "Chinese," "Japanese," "Western," etc.) and a duration (number of days). Once the user enters and submits this information, the server receives the request and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes corresponding to each day from the retrieved suggestions to generate a menu list, which is then provided to the user.
[0084] Hardware and software to be used
[0085] This system is implemented using the following hardware and software.
[0086] hardware
[0087] 1. User's device: A device capable of running a web browser, such as a PC or smartphone.
[0088] 2. Server: A server that receives requests and performs backend processing to generate menus.
[0089] 3. Database: A storage system such as SQLite or PostgreSQL for saving recipe candidates.
[0090] software
[0091] 1. Web browser: A client-side application used by users to interact with an interface.
[0092] 2. Flask: A Python framework for server-side processing.
[0093] 3. SQLAlchemy: An ORM (Object-Relational Mapping) library for performing database operations.
[0094] 4. JavaScript (registered trademark): A scripting language for processing and displaying responses on the client side.
[0095] Data processing and data calculation
[0096] The system performs data processing and calculations in the following steps:
[0097] 1. User enters mood and duration: The user enters their mood (e.g., "Japanese style") and duration (e.g., "7 days") using a web browser interface.
[0098] 2. The terminal sends the request to the server: The terminal converts the entered data into JSON format and sends it to a specific endpoint on the server using the POST method.
[0099] 3. The server receives the request: The server receives the request and retrieves the data at an endpoint for processing.
[0100] 4. Server accesses database: The server retrieves suitable dish candidates from the database using SQL queries based on its mood.
[0101] 5. The server generates the menu list: It randomly selects dishes for the specified number of days from the retrieved dish candidates and generates a menu list.
[0102] 6. Server generates response: Converts the generated menu list into JSON format and sends it to the terminal as a response.
[0103] 7. The device receives and displays the response: The device receives the response and displays it on the screen in a way that is visible to the user. This allows the user to check menus that are suitable for their mood or time period.
[0104] Examples of specific cases and prompt statements
[0105] When a user wants the system to generate a 7-day menu with a "Japanese" theme, the following prompt message is used:
[0106] Example of a prompt:
[0107] "Please generate a 7-day menu with a Japanese theme."
[0108] Based on this prompt, the system retrieves dish candidates corresponding to "Japanese style" from the database (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.), randomly generates a 7-day menu, and provides it to the user. Specifically, a menu list like the following may be generated.
[0109] Example of a generated menu list:
[0110] "Sukiyaki, teriyaki chicken, sashimi, sukiyaki, teriyaki chicken, sashimi, sukiyaki"
[0111] Through the above process, this automated menu creation system enables users to easily generate menus that suit their mood and timeframe.
[0112] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0113] Step 1:
[0114] The user enters their mood and duration. On the device interface (e.g., a web browser), the user enters their mood (e.g., "Chinese," "Japanese," "Western") and duration (e.g., "7 days"). Input formats include text fields and dropdown menus. The user enters "Japanese" and "7 days" and clicks the submit button.
[0115] Input: User-selected mood and duration
[0116] Output: Input data acquired by the terminal (Mood: "Japanese style", Duration: 7)
[0117] Step 2:
[0118] The device sends a request to the server. The device converts the input data into JSON format and sends it as an HTTP POST request to a specific endpoint on the server. This endpoint is specified in the URL for receiving requests.
[0119] Input: Information entered by the user on the form (mood and duration)
[0120] Output: Request data in JSON format (Example: {"mood": "Japanese style", "days": 7})
[0121] Step 3:
[0122] The server receives the request. The server uses the Flask framework to receive the request at the specified endpoint. The received data is retrieved and parsed in JSON format.
[0123] Input: Request data sent from the terminal
[0124] Output: Analyzed input data (Mood: "Japanese style", Period: 7)
[0125] Step 4:
[0126] The server accesses the database to retrieve potential dishes. The server uses an ORM such as SQLAlchemy to retrieve the corresponding dishes from the database based on the parsed data (mood: "Japanese style"). The database stores the dish names and their characteristics, and the server retrieves the data by issuing SQL queries.
[0127] Input: Analyzed input data
[0128] Output: Candidate dishes retrieved from the database (e.g., "Sukiyaki", "Teriyaki Chicken", "Sashimi")
[0129] Step 5:
[0130] The server generates a menu list. From the retrieved list of dish candidates, a dish corresponding to a specified period (e.g., 7 days) is randomly selected. The Python `random` module is used to randomly select from the dish candidates and generate the menu list.
[0131] Input: Candidate dishes and time period retrieved from the database
[0132] Output: Generated menu list (Example: "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki")
[0133] Step 6:
[0134] The server generates a response. The generated menu list is converted to JSON format and returned to the terminal as an HTTP response. The response is created using Flask's jsonify function.
[0135] Input: Generated menu list
[0136] Output: JSON-formatted response data sent to the terminal (Example: {"menu": ["Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki"]})
[0137] Step 7:
[0138] The device receives the response and displays it on the screen. The device's JavaScript code receives the response from the server and dynamically updates the HTML document to display the menu list.
[0139] Input: JSON-formatted response data sent from the server.
[0140] Output: Menu list displayed in the browser (Example: "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki")
[0141] Through the steps described above, this automated meal planning system enables users to easily generate meal plans that suit their mood and timeframe.
[0142] (Application Example 1)
[0143] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0144] Busy housewives and working parents face challenges in reducing the effort required to plan daily meals and efficiently ordering ingredients. There is a need for a system that easily generates meal plans based on the user's mood and timeframe, provides a list of corresponding ingredients, and allows for all orders to be placed in one go. Furthermore, a function that provides appropriate notifications when a requested dish is not found in the database is essential.
[0145] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0146] In this invention, the server includes means for inputting the user's mood and duration; means for retrieving dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; means for generating a list of necessary ingredients based on the selected dishes; and means for providing the generated ingredient list to the user and allowing them to order the ingredients on the spot. This makes it possible for the user to easily and automatically generate a menu that suits their mood and the number of days, and to quickly order the necessary ingredients.
[0147] A "user" is a user who uses the system to generate menus and order ingredients.
[0148] "Mood" refers to input information that users use to specify the genre or style of cuisine for the day, including examples such as Chinese, Japanese, and Western.
[0149] "Period" refers to the number of days specified by the user when generating the menu.
[0150] A "database" is a storage location where recipe ideas and information about the necessary ingredients are kept, and the system uses this information to retrieve it.
[0151] "Cooking options" refer to multiple dish choices stored in the database, which are offered to the user according to their specified mood.
[0152] "Random selection" is the operation of randomly selecting a dish from a list of dish candidates retrieved from a database using a specific algorithm.
[0153] A "food ingredient list" refers to a list of ingredients needed based on the selected dish, provided in a format that allows users to easily check and order them.
[0154] An "order" is the process by which a user purchases ingredients based on a generated list of ingredients.
[0155] An "error message" is a notification displayed when the mood entered by the user does not exist in the database, informing the user of the mistake.
[0156] "Display means" refers to devices or functions that visually provide users with generated menu lists or ingredient lists.
[0157] This invention is a system that automatically generates a menu based on the mood and time period entered by the user and provides a list of necessary ingredients. A specific embodiment of this system is shown below.
[0158] System Configuration
[0159] This system mainly consists of the following components.
[0160] 1. User's device:
[0161] It provides a GUI (Graphical User Interface) for users to input their mood and duration on devices such as smartphones and tablets.
[0162] The application will be developed using React Native.
[0163] 2. Server:
[0164] The system receives requests from users, retrieves dish suggestions from the database, and randomly generates menus.
[0165] Amazon Web Services (AWS®) EC2 will be used for the server.
[0166] API endpoints are managed by AWS API Gateway, and data processing is performed using Node.js.
[0167] 3. Database:
[0168] AWS RDS using MySQL (registered trademark) is used to manage information about various dishes and their ingredients.
[0169] Program processing
[0170] 1. The user enters their mood and duration on the device:
[0171] The user enters information such as "Japanese style" and "7 days".
[0172] The input data is sent to the server in JSON format.
[0173] 2. The server receives the request and retrieves recipe candidates from the database:
[0174] The API endpoint receives the request, and a Node.js script executes the database query.
[0175] Retrieve the corresponding dish candidates.
[0176] 3. Generate a menu randomly:
[0177] The system randomly selects 7 days' worth of menus from the acquired recipe candidates and generates a list of ingredients needed for each dish.
[0178] The system returns a list of dishes and ingredients to the client in JSON format.
[0179] 4. The device displays the menu and ingredient list and provides an ordering function:
[0180] The received JSON data is displayed visually so that the user can verify it.
[0181] Provide links or buttons for ordering ingredients on the spot.
[0182] Specific example
[0183] 1. Example of a prompt:
[0184] The following request is sent to the server as a prompt:
[0185] curl -X POST "https: / / api.example.com / generateMenu" -H "Content-Type: application / json" -d '{
[0186] "mood": "Japanese style",
[0187] "duration": "7"
[0188] }'
[0189] 2. Example response:
[0190] The server returns a menu list and an ingredient list in JSON format, as shown below.
[0191] json
[0192] {
[0193] "menu": [
[0194] "Sukiyaki",
[0195] "Teriyaki Chicken",
[0196] "sashimi",
[0197] "Oden",
[0198] "Tempura",
[0199] "Shabu-shabu",
[0200] "Nikujaga"
[0201] ],
[0202] "ingredients": [
[0203] "beef",
[0204] "soy sauce",
[0205] "Fish for sashimi",
[0206] "Ingredients for oden",
[0207] "Tempura flour",
[0208] "pork",
[0209] "Potato"
[0210] ]
[0211] }
[0212] Hardware and software used
[0213] Server: Amazon Web Services (AWS) EC2
[0214] Database: AWS RDS (MySQL)
[0215] Client app: iOS / ANDROID (registered trademark) app (React Native)
[0216] API Gateway: AWS API Gateway
[0217] Processing JSON data: JavaScript (Node.js)
[0218] This invention makes it easy for busy housewives and working parents to create meal plans tailored to specific timeframes and quickly order the necessary ingredients.
[0219] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0220] Step 1:
[0221] The user enters their mood and duration into their device. Specifically, the user enters information such as "Japanese style" and "7 days" into a smartphone or tablet application. The entered data is converted into JSON format and prepared to be sent to the server.
[0222] Input: Mood (e.g., "Japanese style"), Duration (e.g., "7 days")
[0223] Output: Request data in JSON format
[0224] Specific actions: Enter your mood and duration in the designated fields, then tap the confirmation button.
[0225] Step 2:
[0226] The device sends a request to the server. JSON formatted data from the device is sent to the server's API endpoint via a POST request.
[0227] Input: Request data in JSON format
[0228] Output: Sending a request to the server
[0229] Specific action: Execute an HTTP POST request
[0230] Step 3:
[0231] The server receives the request and retrieves recipe candidates from the database. A Node.js script processes the request and queries the MySQL database to retrieve "Japanese-style" recipe candidates.
[0232] Input: Request data in JSON format, query conditions (based on mood)
[0233] Output: List of recipe candidates
[0234] Specific operation: Issue queries to a MySQL database and retrieve results.
[0235] Step 4:
[0236] The server randomly selects dishes corresponding to each period from the dish candidates it has acquired. Seven days' worth of dishes are randomly selected from the list of dish candidates using Python's random module.
[0237] Input: List of dish suggestions
[0238] Output: A list of 7 randomly selected recipes.
[0239] Specific operation: Generating a list of dishes using a random module.
[0240] Step 5:
[0241] The server generates a list of necessary ingredients based on the selected dish. It retrieves ingredient information related to each dish from the database and compiles the overall ingredient list.
[0242] Input: A randomly selected list of 7 meals
[0243] Output: Corresponding ingredient list
[0244] Specific operation: Retrieve ingredient information from the database and generate a list.
[0245] Step 6:
[0246] The server returns the generated menu list and ingredient list to the client in JSON format. The generated data is converted to JSON format and sent to the client.
[0247] Input: Menu list, ingredient list
[0248] Output: Response data in JSON format
[0249] Specific actions: Generation and transmission of response data
[0250] Step 7:
[0251] The terminal displays the menu and ingredient list received from the server and provides them to the user. The application parses the received JSON data and displays it visually. Buttons or links are also provided that allow the user to order the necessary ingredients on the spot.
[0252] Input: Response data in JSON format
[0253] Output: Visually displayed menu list and ingredient list
[0254] Specific actions: Parsing JSON data, displaying it on the screen, and providing a food ordering function.
[0255] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0256] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe, and aims to reduce the effort required for busy housewives and working parents to plan meals. Furthermore, by combining this with an emotion engine that recognizes the user's emotions and suggests menus based on those emotions, more personalized and appropriate menu suggestions become possible.
[0257] The following program and its processing flow are shown as an embodiment of this system.
[0258] System Overview
[0259] When a user accesses the system using a terminal, the terminal provides an interface for entering their mood (e.g., "Chinese," "Japanese," "Western," etc.) and duration (number of days). Furthermore, an emotion engine recognizes the user's current mood and sends that information to the server. Once the user enters and submits this information, the server receives the request and retrieves corresponding dish candidates from the database. The server then randomly selects dishes corresponding to each day from the retrieved candidates to generate a menu list, which is then provided to the user.
[0260] Program processing
[0261] The server sets up a specific endpoint to receive requests from users. At the endpoint, it receives data on the user's mood, duration, and emotions recognized by the emotion engine, and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes from the retrieved suggestions to create a menu list.
[0262] For example, if a user requests a 7-day menu in a "Japanese style" mood, and the emotion engine recognizes the user's mood as "stressed," the server retrieves "Japanese style" dishes with a "relaxing effect" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database. Then, it randomly selects 7 days' worth of menus to generate a list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki").
[0263] The server returns the generated menu list to the user in JSON format, and the system completes by displaying the received data in a way that the user can easily see. This process allows users to easily automatically generate menus that match not only their mood and the number of days, but also their emotions.
[0264] Furthermore, if the entered mood does not exist in the database or if the emotion engine fails to accurately recognize the emotion, the server generates an error message and notifies the user. This error handling feature makes the system easier to use. In addition, the generated menu list is visually displayed on the terminal, improving user convenience.
[0265] This invention significantly reduces the time and effort required for busy housewives and working parents to plan their daily meals, enabling them to efficiently create daily meal plans. This allows for optimal menu suggestions tailored to each user's individual circumstances, supporting a healthy and satisfying diet.
[0266] The following describes the processing flow.
[0267] Step 1:
[0268] The user accesses the system through a terminal and displays the interface. The terminal displays options to use mood, duration, and emotion engines.
[0269] Step 2:
[0270] The user inputs their mood (e.g., "Chinese," "Japanese," "Western," etc.) and duration (number of days). Additionally, the device's built-in camera and microphone are used by an emotion engine to analyze the user's facial expressions and voice tone, thereby recognizing their emotions.
[0271] Step 3:
[0272] The terminal converts the input mood, duration, and emotion recognized by the emotion engine into JSON format and sends it to the server.
[0273] Step 4:
[0274] The server analyzes the JSON data received at the endpoint and extracts the mood, period, and sentiment information. It checks whether the mood specified by the user exists in the database.
[0275] Step 5:
[0276] If the mood does not exist in the database, the server generates an error message and sends it back to the terminal along with the HTTP status code 400. The terminal receives this and displays the error message to the user.
[0277] Step 6:
[0278] The server retrieves the cooking candidates corresponding to the input mood from the database. At this time, the sentiment recognized by the sentiment engine is also considered. For example, when "there is stress", dishes with a relaxing effect are preferentially retrieved.
[0279] Step 7:
[0280] The server randomly selects dishes from the list of cooking candidates it retrieved for the specified period (number of days) and generates a menu list.
[0281] Step 8:
[0282] The server converts the menu list it generated into JSON format and sends it to the user's terminal. This includes the name and a brief description of each dish.
[0283] Step 9:
[0284] The terminal analyzes the JSON data it received and displays it to the user in a visible form. Thus, the user can easily check the daily menu.
[0285] As a specific example, when a user requests a menu for "a week" with a "Japanese atmosphere" and the emotion engine recognizes the user's emotion as "with stress", the server retrieves from the database dishes that are "Japanese" and have a "relaxing effect" (e.g., "sukiyaki", "grilled chicken", "sashimi", etc.), and randomly selects dishes for seven days. As a result, the generated menu list (e.g., "sukiyaki", "grilled chicken", "sashimi", "sukiyaki", "grilled chicken", "sashimi", "sukiyaki") is provided to the user.
[0286] The above is an explanation of dividing the processing of the program into specific steps.
[0287] (Example 2)
[0288] Next, Example 2 will be described. In the following description, the data processing device 12 is referred to as the "server", and the smart device 14 is referred to as the "terminal".
[0289] In modern society, many users, especially busy housewives and working parents, require a great deal of time and effort when determining their daily menus. Also, by providing dishes that match the user's mood and emotion, it is expected to improve the satisfaction of meals, but it is difficult to make proposals considering emotions in the current system. Therefore, there is a demand for an automatic menu creation system that reflects emotions in addition to the user's mood and period.
[0290] The specific processing by the specific processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0291] In this invention, the server includes means for inputting the user's mood, period, and emotion, means for obtaining appropriate dish candidates from the database based on the input mood, period, and emotion, means for randomly selecting dishes corresponding to each period from the obtained dish candidates, and means for providing the selected dishes to the user. Thereby, the user can easily generate a menu that matches the mood, period, and emotion, and it becomes possible to make the daily meal plan efficient and highly satisfactory.
[0292] "Mood" refers to the style or preference of the cuisine that the user desires at that particular time. Examples include "Chinese," "Japanese," and "Western."
[0293] "Period" refers to the number of days for which the menu specified by the user will be provided. This includes a range from one day to several days.
[0294] "Emotion" refers to the user's current mental state. This represents the user's feelings as recognized by the emotion engine, such as "stressed" or "relaxed."
[0295] "Means of input" refers to interfaces or devices that allow users to provide moods, durations, and emotions to the system.
[0296] "Means of acquisition" refers to a system or program that searches a database for and acquires suitable dish candidates based on the entered mood, time period, and emotions.
[0297] "Means of selection" refers to methods or devices for randomly selecting dishes from acquired dish candidates that correspond to a specified period.
[0298] "Means of provision" refers to systems or programs that present selected dishes to users visually or digitally.
[0299] An "error message" refers to a notification message generated when the system fails to find a suitable dish or when there is an input mismatch.
[0300] A "menu list" refers to a list of selected dishes combined together. This list includes dishes for a number of days specified by the user.
[0301] The "displaying means" refers to a digital screen or display for presenting the generated menu list and error messages to the user in a visible form.
[0302] Mode for Implementing the Invention
[0303] The present invention relates to a system for automatically creating a menu based on the user's mood, period, and emotion. This system aims to reduce the time and effort for the user to consider the menu and provide an optimal meal suggestion according to the user's emotion at that time. To specifically implement this system, the following hardware and software are used to perform specific processes.
[0304] Hardware and Software
[0305] 1. Terminal: A device for the user to access the system and input their mood, period, and emotion. Examples include smartphones, tablets, and personal computers.
[0306] 2. Emotion Engine: Software for recognizing the user's emotion. Such as "Emotion API" is used.
[0307] 3. Server: A central system that receives the user's input data, retrieves cooking candidates from the database, and generates a menu list.
[0308] 4. Database: A system for storing cooking information. A relational database such as "MySQL" is used.
[0309] Overview of the Process
[0310] 1. User Input: An interface is provided for the user to operate the terminal to access the system and input their mood (e.g., "Chinese", "Japanese", "Western") and period (number of days). <02. Emotion Recognition and Transmission: The emotion engine installed in the device analyzes the user's facial expressions and voice to acquire emotion data. This emotion data, along with the entered mood and duration, is sent to the server.
[0312] 3. Server processing: The server receives requests from users (mood, duration, sentiment data) at specific endpoints and retrieves corresponding dish candidates from the database.
[0313] 4. Generating the menu list: Randomly select dishes corresponding to each period from the acquired dish candidates and generate a menu list for the specified number of days.
[0314] 5. Returning and displaying results: The server returns the generated menu list to the user in JSON format, which the terminal receives and displays visually.
[0315] 6. Error Handling: If the entered mood does not exist in the database or if the emotion engine is unable to accurately recognize the emotion, the server will generate an error message and notify the user.
[0316] Specific examples of operation
[0317] Example: Suppose a user requests a 7-day menu in a "Japanese style" mood, and the emotion engine recognizes that the user is "stressed." In this case, the server retrieves "Japanese style" dishes with a "relaxing effect" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database, randomly selects dishes for 7 days, and generates a menu list.
[0318] Example of a prompt
[0319] The following are specific examples of prompt statements to be input into the generating AI model.
[0320] Example: "If a user requests a 7-day menu in a 'Japanese-style' mood, and the emotion engine detects 'stress,' please suggest dishes with a relaxing effect."
[0321] Using this prompt allows the system to suggest accurate and appropriate menus. This enables users to plan their daily meals efficiently and with greater satisfaction.
[0322] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0323] Step 1:
[0324] The user accesses the system using a terminal. The terminal displays an interface for entering a mood (e.g., "Chinese," "Japanese," "Western") and duration (number of days). The user then enters their desired mood and duration and sends it to the system. As a specific example, the user selects "Japanese" and "7 days" and submits it.
[0325] Input: mood, duration
[0326] Output: Mood and time period data
[0327] Step 2:
[0328] The emotion engine built into the device recognizes the user's current emotions. The emotion engine analyzes the user's facial expressions and voice, and acquires emotional state data. This emotional data, along with the input mood and duration data, is sent to the server. As a concrete example, the emotion engine scans the user's face and generates emotional data indicating "stressed."
[0329] Input: User's facial expressions, voice
[0330] Output: Sentiment data
[0331] Step 3:
[0332] The server receives requests from users (mood, duration, and emotion data) at a specific endpoint. The server parses the received data and prepares to search the database for appropriate recipes based on mood, duration, and emotion. Specifically, the server parses the data received in JSON format and processes it as "Mood: Japanese style", "Duration: 7 days", and "Emotion: Stressed".
[0333] Input: Mood, duration, emotional data
[0334] Output: Analyzed data
[0335] Step 4:
[0336] The server queries the database to retrieve relevant dish candidates. Specifically, the server executes an SQL query to search for "Japanese-style" dishes with "relaxing effects," retrieving items such as "sukiyaki," "teriyaki chicken," and "sashimi." This process extracts dish information that matches specific criteria based on the retrieved data.
[0337] Input: Analyzed data
[0338] Output: List of recipe candidates
[0339] Step 5:
[0340] The server randomly selects dishes from a list of dish candidates for a specified period and generates a menu list. The server uses a program such as Python to perform the random selection. For example, it might generate a menu list for 7 days that includes "Sukiyaki," "Teriyaki Chicken," "Sashimi," "Sukiyaki," "Teriyaki Chicken," "Sashimi," and "Sukiyaki."
[0341] Input: List of recipe suggestions
[0342] Output: Menu list
[0343] Step 6:
[0344] The server generates a menu list and sends it back to the user in JSON format. Upon receiving this data, the device displays it in a format visible to the user using HTML or JavaScript. Specifically, the device parses the returned JSON data and displays it in list format.
[0345] Input: Menu list
[0346] Output: Display to the user
[0347] Step 7:
[0348] If the entered mood does not exist in the database, or if the emotion engine is unable to accurately recognize the emotion, the server generates an error message and notifies the user. For example, it might create and display a message such as "No matching dishes were found."
[0349] Input: Error information
[0350] Output: Error messages and notifications
[0351] (Application Example 2)
[0352] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0353] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe. However, conventional systems have the problem of not being able to suggest menus that take the user's emotions into account. As a result, optimal menu suggestions are not made that are tailored to situations in which the user is feeling stressed or happy, making it difficult to provide a highly satisfying dining experience. Furthermore, while combining facial recognition technology and emotion analysis technology could enable more effective menu suggestions tailored to the user's emotional state, challenges remain in realizing such a system.
[0354] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0355] In this invention, the server includes means for inputting the user's mood and duration; means for obtaining dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the obtained dish candidates; means for providing the selected dishes to the user; means for performing facial recognition and emotion analysis; and means for suggesting the most suitable dishes based on the user's emotions. This makes it possible to suggest menus that are appropriate to the user's current emotional state.
[0356] "User" refers to an entity that uses the system to generate menus based on its own mood and timeframe.
[0357] "Mood" refers to information that indicates the user's preferences and emotional state regarding the genre and type of food.
[0358] "Period" refers to information indicating the time range or number of days for which menu suggestions are to be made.
[0359] "Means for input" refers to an interface that allows users to provide the system with information about their mood or time period.
[0360] "Means of acquisition" refers to the system's function of retrieving dish candidates that match the specified criteria from the database.
[0361] "Means for random selection" refers to a function that randomly selects dishes from the acquired dish candidates according to each period.
[0362] "Means of providing" refers to the function of presenting the selected dishes to the user visually or digitally.
[0363] "Facial recognition" refers to a technology that uses a camera to identify a user's face and acquire image data of it.
[0364] "Emotional analysis" refers to a technology that analyzes a user's emotional state based on acquired facial image data.
[0365] "Means of making suggestions" refers to a function that selects and provides the most suitable dish to the user based on analyzed emotional data and the user's input mood.
[0366] An "error message" refers to a warning message that the system sends when there is a problem with the user's input.
[0367] "Means for displaying" refers to the function of presenting the generated menu list and other important information on the user's device.
[0368] A "terminal" refers to a device used by a user to access a system and operate its interface.
[0369] This invention relates to an automated menu creation system based on the user's mood, timeframe, and emotions, and is particularly intended for application in physical stores. This system aims to improve user satisfaction by using a smartphone application to recognize the user's emotions and, based on that information, suggesting the most suitable menu to be offered in the store. Specific embodiments of this system are described below.
[0370] Hardware configuration
[0371] First, a smartphone, which is the user's device, and a network system including a server are required.
[0372] A smartphone is a device that has a camera function and can connect to the internet.
[0373] The server handles the overall system processing and is built using Node.js and the Express framework.
[0374] Software Configuration
[0375] It consists of a smartphone application and a server-side backend system.
[0376] Smartphone application: Provides an interface for inputting and recognizing the user's mood, duration, and emotions.
[0377] Server-side backend system: Performs tasks such as database operations, facial recognition, emotion analysis, retrieval of recipe candidates, and recipe suggestions.
[0378] Specific technologies to be used
[0379] Face Recognition and Emotion Analysis: Using OpenCV and Google® Cloud Vision API, we recognize the user's face and analyze their emotions.
[0380] Database: Use Firebase Firestore and similar tools to manage recipe suggestions and user data.
[0381] The server uses Node.js and is implemented on the Express framework.
[0382] System operation procedures
[0383] 1. User input operations:
[0384] The user launches a smartphone application and points their face at the camera.
[0385] Use the application interface to enter your current mood (e.g., "Japanese style," "Western style," etc.) and duration (e.g., "7 days").
[0386] 2. Facial Recognition and Emotion Analysis:
[0387] The user's face is captured using the smartphone's camera.
[0388] It performs facial recognition and analyzes specific emotions (e.g., "stressed").
[0389] 3. Data transmission:
[0390] The recognized emotion data, mood, and duration are sent to the server.
[0391] 4. Data acquisition and recipe suggestions:
[0392] The server retrieves dish suggestions that are appropriate for the mood and feelings entered from Firebase Firestore.
[0393] The system randomly selects dishes corresponding to each period from the acquired dish candidates and generates the optimal menu to offer to users.
[0394] 5. Menu presentation and ordering:
[0395] The generated menu is displayed in the smartphone application.
[0396] Users can select and order the suggested dishes.
[0397] Specific example
[0398] When a user launches the app and points their face at the built-in camera, the emotion engine recognizes that the user is "stressed." Based on this, the app suggests relaxing dishes (e.g., "ochazuke" or "hot udon"), and the user can then order them directly through the app.
[0399] Example of a prompt:
[0400] User: Launch the app and point your face at the camera.
[0401] System: The system has analyzed your emotions as "stressed." We suggest a menu with relaxing effects.
[0402] System: The following dishes are suggested: "Ochazuke" (rice with tea poured over it) and "Hot Udon" (hot udon noodles).
[0403] User: I select hot udon and place my order.
[0404] As described above, this system can improve customer satisfaction in physical stores. Furthermore, by taking into account not only the user's mood but also their emotions, it becomes possible to provide more personalized and optimal menu suggestions.
[0405] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0406] Step 1:
[0407] The user launches a smartphone application and points their face at the built-in camera.
[0408] Operation: The smartphone's camera captures the user's face and acquires image data.
[0409] Input: User's face image
[0410] Output: Acquired facial image data
[0411] Step 2:
[0412] The device performs facial recognition and emotion analysis.
[0413] Operation: Using OpenCV and the Google Cloud Vision API, it identifies the user's face from acquired facial images and then performs sentiment analysis.
[0414] Input: Face image data
[0415] Output: Analyzed emotion data (e.g., "Stressed")
[0416] Step 3:
[0417] The user enters their mood (e.g., "Japanese style," "Western style") and duration (e.g., "7 days") into the application interface.
[0418] Operation: The user enters their mood and duration using the application's input fields and presses the submit button.
[0419] Input: User's mood and duration information
[0420] Output: Input data for mood and duration
[0421] Step 4:
[0422] The device sends the entered mood and duration, along with the analyzed emotional data, to the server.
[0423] Operation: The device sends input data and emotion data to the server in JSON format.
[0424] Input: Mood, duration, emotional data
[0425] Output: Data request in JSON format
[0426] Step 5:
[0427] The server retrieves recipe candidates from the database.
[0428] Operation: Based on the request data received by the server, it searches for suitable recipe candidates from a database such as Firebase Firestore.
[0429] Input: Mood, duration, emotional data
[0430] Output: List of recipe candidates
[0431] Step 6:
[0432] The server randomly selects a dish from the retrieved dish candidates.
[0433] Operation: The server executes an algorithm that randomly selects dishes corresponding to each period from a list of dishes it has acquired.
[0434] Input: List of recipe suggestions
[0435] Output: List of selected dishes
[0436] Step 7:
[0437] The server sends a randomly selected list of dishes to the user's terminal.
[0438] Operation: The server returns the selected list of dishes to the user's terminal in JSON format.
[0439] Input: Selected list of dishes
[0440] Output: Recipe list in JSON format
[0441] Step 8:
[0442] The device displays a list of suggested dishes.
[0443] Function: Performs a function that visually displays the list of dishes received by the device.
[0444] Input: Recipe list in JSON format
[0445] Output: List of dishes displayed on the screen
[0446] Step 9:
[0447] The user selects their desired dish from the suggested options and places an order.
[0448] Operation: The user selects a dish and confirms the order by pressing the order button in the application.
[0449] Input: User's selected dish
[0450] Output: Order confirmation data
[0451] This will enable a system that suggests and allows users to order the optimal menu based on their emotions, mood, and timeframe.
[0452] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0453] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0454] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart device 14.
[0455] [Second Embodiment]
[0456] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0457] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0458] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0459] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.
[0460] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0461] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0462] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0463] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0464] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0465] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0466] In the smart glasses 214, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0467] Next, the identification processing performed by the identification processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0468] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe, and aims to reduce the effort required for busy housewives and working parents to plan meals.
[0469] The following program and its processing flow are shown as an embodiment of this system.
[0470] System Overview
[0471] The user accesses the system using a terminal. The terminal is provided with an interface for entering a mood (e.g., "Chinese," "Japanese," "Western," etc.) and a duration (number of days). Once the user enters and submits this information, the server receives the request and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes corresponding to each day from the retrieved suggestions to generate a menu list, which is then provided to the user.
[0472] Program processing
[0473] The server sets up a specific endpoint to receive requests from users. At the endpoint, it receives data on the user's mood and time period, and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes from the retrieved suggestions to create a menu list.
[0474] For example, if a user requests a 7-day menu in the mood for "Japanese style," the server retrieves dishes that fit the "Japanese style" category from the database (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.). Then, it randomly selects 7 days' worth of menus to generate a list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki").
[0475] The server returns the generated menu list to the user in JSON format, and the system completes by displaying the received data in a format that the user can easily see. This process allows users to easily and automatically generate menus that suit their mood and the number of days they are staying.
[0476] Furthermore, if the entered mood does not exist in the database, the server generates an error message and notifies the user. This error handling function makes the system easier to use. In addition, the user convenience is improved by visually displaying the generated menu list on the terminal.
[0477] This invention significantly reduces the time and effort busy housewives and working parents spend planning daily meals, enabling them to efficiently create daily meal plans.
[0478] The following describes the processing flow.
[0479] Step 1:
[0480] The user accesses the system via their device and enters their preferred style (e.g., "Chinese," "Japanese," "Western") and duration (number of days). This information is then sent to the server.
[0481] Step 2:
[0482] The server receives the POST request at the endpoint and parses the user's input data using request.get_json(). Here, it extracts information about mood and duration (days).
[0483] Step 3:
[0484] The server checks if the extracted mood exists in the database. If it does not exist, the server generates an error message and sends it back to the user with HTTP status code 400.
[0485] Step 4:
[0486] The server retrieves dish suggestions from the database that correspond to the entered mood. This database stores multiple dishes corresponding to each mood.
[0487] Step 5:
[0488] The server randomly selects dishes from a list of available dishes for a specified period (number of days). For example, dishes can be selected using `random.choice()` to generate a menu list.
[0489] Step 6:
[0490] The server generates a menu list, converts it to JSON format, and sends it to the user as a response. The menu list includes dishes for the specified period.
[0491] Step 7:
[0492] The device parses the JSON-formatted response received from the server and displays it to the user in a visually accessible format. This allows the user to easily check their daily meal plans.
[0493] For example, if a user requests a 7-day menu with the subject "in a Japanese mood," the server retrieves Japanese dishes (e.g., sukiyaki, teriyaki chicken, sashimi, etc.) from the database and randomly selects dishes for 7 days. As a result, it provides the user with a generated menu list (e.g., sukiyaki, teriyaki chicken, sashimi, sukiyaki, teriyaki chicken, sashimi, sukiyaki).
[0494] The above explains the program's processing steps by breaking them down into specific steps.
[0495] (Example 1)
[0496] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0497] Busy families need a system that makes it easy to create meal plans tailored to their mood and timeframe, reducing the effort required to plan meals. However, conventional systems struggle to flexibly accommodate diverse moods and timeframes, and they lack intuitive user interfaces.
[0498] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0499] In this invention, the server includes means for inputting mood and duration; means for retrieving dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; means for serving the selected dishes; and means for creating a menu list by randomly selecting dishes from the retrieved dish candidates. This makes it possible for users to easily and automatically generate menus suitable for a variety of moods and durations.
[0500] "User" refers to an individual or organization that intends to use this system to create a menu.
[0501] "Mood" refers to the type or style of cuisine that the user desires (e.g., "Chinese," "Japanese," "Western," etc.).
[0502] "Period" refers to a specified number of days and serves as the unit for generating menus.
[0503] "Input method" refers to an interface or device that allows users to input their mood or time period.
[0504] A "database" refers to a data storage system where recipe candidates and other related information are stored.
[0505] "Means of acquisition" refers to a system or program that has the function of retrieving information from a database according to the entered mood or time period.
[0506] "Selection method" refers to a system or program that has the function of randomly selecting from acquired dish candidates based on specific logic or conditions.
[0507] "Means of provision" refers to a system or program that has the function of notifying or displaying randomly selected dishes to the user.
[0508] A "menu list" refers to a list of selected dishes, organized by day.
[0509] An "error message" refers to a warning message displayed when the entered mood or other information does not exist in the system's database.
[0510] This invention relates to a system that automatically creates meal plans according to the user's mood and timeframe, and aims to reduce the effort required to plan meals, especially in busy households. Specific embodiments of the system are described below.
[0511] System Overview
[0512] Users access the system via a web browser using a device (e.g., PC, smartphone). The device provides an interface for entering a mood (e.g., "Chinese," "Japanese," "Western," etc.) and a duration (number of days). Once the user enters and submits this information, the server receives the request and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes corresponding to each day from the retrieved suggestions to generate a menu list, which is then provided to the user.
[0513] Hardware and software to be used
[0514] This system is implemented using the following hardware and software.
[0515] hardware
[0516] 1. User's device: A device capable of running a web browser, such as a PC or smartphone.
[0517] 2. Server: A server that receives requests and performs backend processing to generate menus.
[0518] 3. Database: A storage system such as SQLite or PostgreSQL for saving recipe candidates.
[0519] software
[0520] 1. Web browser: A client-side application used by users to interact with an interface.
[0521] 2. Flask: A Python framework for server-side processing.
[0522] 3. SQLAlchemy: An ORM (Object-Relational Mapping) library for performing database operations.
[0523] 4. JavaScript: A scripting language used to process and display responses on the client side.
[0524] Data processing and data calculation
[0525] The system performs data processing and calculations in the following steps:
[0526] 1. User enters mood and duration: The user enters their mood (e.g., "Japanese style") and duration (e.g., "7 days") using a web browser interface.
[0527] 2. The terminal sends the request to the server: The terminal converts the entered data into JSON format and sends it to a specific endpoint on the server using the POST method.
[0528] 3. The server receives the request: The server receives the request and retrieves the data at an endpoint for processing.
[0529] 4. Server accesses database: The server retrieves suitable dish candidates from the database using SQL queries based on its mood.
[0530] 5. The server generates the menu list: It randomly selects dishes for the specified number of days from the retrieved dish candidates and generates a menu list.
[0531] 6. Server generates response: Converts the generated menu list into JSON format and sends it to the terminal as a response.
[0532] 7. The device receives and displays the response: The device receives the response and displays it on the screen in a way that is visible to the user. This allows the user to check menus that are suitable for their mood or time period.
[0533] Examples of specific cases and prompt statements
[0534] When a user wants the system to generate a 7-day menu with a "Japanese" theme, the following prompt message is used:
[0535] Example of a prompt:
[0536] "Please generate a 7-day menu with a Japanese theme."
[0537] Based on this prompt, the system retrieves dish candidates corresponding to "Japanese style" from the database (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.), randomly generates a 7-day menu, and provides it to the user. Specifically, a menu list like the following may be generated.
[0538] Example of a generated menu list:
[0539] "Sukiyaki, teriyaki chicken, sashimi, sukiyaki, teriyaki chicken, sashimi, sukiyaki"
[0540] Through the above process, this automated menu creation system enables users to easily generate menus that suit their mood and timeframe.
[0541] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0542] Step 1:
[0543] The user enters their mood and duration. On the device interface (e.g., a web browser), the user enters their mood (e.g., "Chinese," "Japanese," "Western") and duration (e.g., "7 days"). Input formats include text fields and dropdown menus. The user enters "Japanese" and "7 days" and clicks the submit button.
[0544] Input: User-selected mood and duration
[0545] Output: Input data acquired by the terminal (Mood: "Japanese style", Duration: 7)
[0546] Step 2:
[0547] The device sends a request to the server. The device converts the input data into JSON format and sends it as an HTTP POST request to a specific endpoint on the server. This endpoint is specified in the URL for receiving requests.
[0548] Input: Information entered by the user on the form (mood and duration)
[0549] Output: Request data in JSON format (Example: {"mood": "Japanese style", "days": 7})
[0550] Step 3:
[0551] The server receives the request. The server uses the Flask framework to receive the request at the specified endpoint. The received data is retrieved and parsed in JSON format.
[0552] Input: Request data sent from the terminal
[0553] Output: Analyzed input data (Mood: "Japanese style", Period: 7)
[0554] Step 4:
[0555] The server accesses the database to retrieve potential dishes. The server uses an ORM such as SQLAlchemy to retrieve the corresponding dishes from the database based on the parsed data (mood: "Japanese style"). The database stores the dish names and their characteristics, and the server retrieves the data by issuing SQL queries.
[0556] Input: Analyzed input data
[0557] Output: Candidate dishes retrieved from the database (e.g., "Sukiyaki", "Teriyaki Chicken", "Sashimi")
[0558] Step 5:
[0559] The server generates a menu list. From the retrieved list of dish candidates, a dish corresponding to a specified period (e.g., 7 days) is randomly selected. The Python `random` module is used to randomly select from the dish candidates and generate the menu list.
[0560] Input: Candidate dishes and time period retrieved from the database
[0561] Output: Generated menu list (Example: "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki")
[0562] Step 6:
[0563] The server generates a response. The generated menu list is converted to JSON format and returned to the terminal as an HTTP response. The response is created using Flask's jsonify function.
[0564] Input: Generated menu list
[0565] Output: JSON-formatted response data sent to the terminal (Example: {"menu": ["Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki"]})
[0566] Step 7:
[0567] The device receives the response and displays it on the screen. The device's JavaScript code receives the response from the server and dynamically updates the HTML document to display the menu list.
[0568] Input: JSON-formatted response data sent from the server.
[0569] Output: Menu list displayed in the browser (Example: "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki")
[0570] Through the steps described above, this automated meal planning system enables users to easily generate meal plans that suit their mood and timeframe.
[0571] (Application Example 1)
[0572] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0573] Busy housewives and working parents face challenges in reducing the effort required to plan daily meals and efficiently ordering ingredients. There is a need for a system that easily generates meal plans based on the user's mood and timeframe, provides a list of corresponding ingredients, and allows for all orders to be placed in one go. Furthermore, a function that provides appropriate notifications when a requested dish is not found in the database is essential.
[0574] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0575] In this invention, the server includes means for inputting the user's mood and duration; means for retrieving dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; means for generating a list of necessary ingredients based on the selected dishes; and means for providing the generated ingredient list to the user and allowing them to order the ingredients on the spot. This makes it possible for the user to easily and automatically generate a menu that suits their mood and the number of days, and to quickly order the necessary ingredients.
[0576] A "user" is a user who uses the system to generate menus and order ingredients.
[0577] "Mood" refers to input information that users use to specify the genre or style of cuisine for the day, including examples such as Chinese, Japanese, and Western.
[0578] "Period" refers to the number of days specified by the user when generating the menu.
[0579] A "database" is a storage location where recipe ideas and information about the necessary ingredients are kept, and the system uses this information to retrieve it.
[0580] "Cooking options" refer to multiple dish choices stored in the database, which are offered to the user according to their specified mood.
[0581] "Random selection" is the operation of randomly selecting a dish from a list of dish candidates retrieved from a database using a specific algorithm.
[0582] A "food ingredient list" refers to a list of ingredients needed based on the selected dish, provided in a format that allows users to easily check and order them.
[0583] An "order" is the process by which a user purchases ingredients based on a generated list of ingredients.
[0584] An "error message" is a notification displayed when the mood entered by the user does not exist in the database, informing the user of the mistake.
[0585] "Display means" refers to devices or functions that visually provide users with generated menu lists or ingredient lists.
[0586] This invention is a system that automatically generates a menu based on the mood and time period entered by the user and provides a list of necessary ingredients. A specific embodiment of this system is shown below.
[0587] System Configuration
[0588] This system mainly consists of the following components.
[0589] 1. User's device:
[0590] It provides a GUI (Graphical User Interface) for users to input their mood and duration on devices such as smartphones and tablets.
[0591] The application will be developed using React Native.
[0592] 2. Server:
[0593] The system receives requests from users, retrieves dish suggestions from the database, and randomly generates menus.
[0594] Amazon Web Services (AWS) EC2 will be used for the server.
[0595] API endpoints are managed by AWS API Gateway, and data processing is performed using Node.js.
[0596] 3. Database:
[0597] AWS RDS using MySQL is used to manage information about various dishes and their ingredients.
[0598] Program processing
[0599] 1. The user enters their mood and duration on the device:
[0600] The user enters information such as "Japanese style" and "7 days".
[0601] The input data is sent to the server in JSON format.
[0602] 2. The server receives the request and retrieves recipe candidates from the database:
[0603] The API endpoint receives the request, and a Node.js script executes the database query.
[0604] Retrieve the corresponding dish candidates.
[0605] 3. Generate a menu randomly:
[0606] The system randomly selects 7 days' worth of menus from the acquired recipe candidates and generates a list of ingredients needed for each dish.
[0607] The system returns a list of dishes and ingredients to the client in JSON format.
[0608] 4. The device displays the menu and ingredient list and provides an ordering function:
[0609] The received JSON data is displayed visually so that the user can verify it.
[0610] Provide links or buttons for ordering ingredients on the spot.
[0611] Specific example
[0612] 1. Example of a prompt:
[0613] The following request is sent to the server as a prompt:
[0614] curl -X POST "https: / / api.example.com / generateMenu" -H "Content-Type: application / json" -d '{
[0615] "mood": "Japanese style",
[0616] "duration": "7"
[0617] }'
[0618] 2. Example response:
[0619] The server returns a menu list and an ingredient list in JSON format, as shown below.
[0620] json
[0621] {
[0622] "menu": [
[0623] "Sukiyaki",
[0624] "Teriyaki Chicken",
[0625] "sashimi",
[0626] "Oden",
[0627] "Tempura",
[0628] "Shabu-shabu",
[0629] "Nikujaga"
[0630] ],
[0631] "ingredients": [
[0632] "beef",
[0633] "soy sauce",
[0634] "Fish for sashimi",
[0635] "Ingredients for oden",
[0636] "Tempura flour",
[0637] "pork",
[0638] "Potato"
[0639] ]
[0640] }
[0641] Hardware and software used
[0642] Server: Amazon Web Services (AWS) EC2
[0643] Database: AWS RDS (MySQL)
[0644] Client app: iOS / Android app (React Native)
[0645] API Gateway: AWS API Gateway
[0646] Processing JSON data: JavaScript (Node.js)
[0647] This invention makes it easy for busy housewives and working parents to create meal plans tailored to specific timeframes and quickly order the necessary ingredients.
[0648] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0649] Step 1:
[0650] The user enters their mood and duration into their device. Specifically, the user enters information such as "Japanese style" and "7 days" into a smartphone or tablet application. The entered data is converted into JSON format and prepared to be sent to the server.
[0651] Input: Mood (e.g., "Japanese style"), Duration (e.g., "7 days")
[0652] Output: Request data in JSON format
[0653] Specific actions: Enter your mood and duration in the designated fields, then tap the confirmation button.
[0654] Step 2:
[0655] The device sends a request to the server. JSON formatted data from the device is sent to the server's API endpoint via a POST request.
[0656] Input: Request data in JSON format
[0657] Output: Sending a request to the server
[0658] Specific action: Execute an HTTP POST request
[0659] Step 3:
[0660] The server receives the request and retrieves recipe candidates from the database. A Node.js script processes the request and queries the MySQL database to retrieve "Japanese-style" recipe candidates.
[0661] Input: Request data in JSON format, query conditions (based on mood)
[0662] Output: List of recipe candidates
[0663] Specific operation: Issue queries to a MySQL database and retrieve results.
[0664] Step 4:
[0665] The server randomly selects dishes corresponding to each period from the dish candidates it has acquired. Seven days' worth of dishes are randomly selected from the list of dish candidates using Python's random module.
[0666] Input: List of dish suggestions
[0667] Output: A list of 7 randomly selected recipes.
[0668] Specific operation: Generating a list of dishes using a random module.
[0669] Step 5:
[0670] The server generates a list of necessary ingredients based on the selected dish. It retrieves ingredient information related to each dish from the database and compiles the overall ingredient list.
[0671] Input: A randomly selected list of 7 meals
[0672] Output: Corresponding ingredient list
[0673] Specific operation: Retrieve ingredient information from the database and generate a list.
[0674] Step 6:
[0675] The server returns the generated menu list and ingredient list to the client in JSON format. The generated data is converted to JSON format and sent to the client.
[0676] Input: Menu list, ingredient list
[0677] Output: Response data in JSON format
[0678] Specific actions: Generation and transmission of response data
[0679] Step 7:
[0680] The terminal displays the menu and ingredient list received from the server and provides them to the user. The application parses the received JSON data and displays it visually. Buttons or links are also provided that allow the user to order the necessary ingredients on the spot.
[0681] Input: Response data in JSON format
[0682] Output: Visually displayed menu list and ingredient list
[0683] Specific actions: Parsing JSON data, displaying it on the screen, and providing a food ordering function.
[0684] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0685] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe, and aims to reduce the effort required for busy housewives and working parents to plan meals. Furthermore, by combining this with an emotion engine that recognizes the user's emotions and suggests menus based on those emotions, more personalized and appropriate menu suggestions become possible.
[0686] The following program and its processing flow are shown as an embodiment of this system.
[0687] System Overview
[0688] When a user accesses the system using a terminal, the terminal provides an interface for entering their mood (e.g., "Chinese," "Japanese," "Western," etc.) and duration (number of days). Furthermore, an emotion engine recognizes the user's current mood and sends that information to the server. Once the user enters and submits this information, the server receives the request and retrieves corresponding dish candidates from the database. The server then randomly selects dishes corresponding to each day from the retrieved candidates to generate a menu list, which is then provided to the user.
[0689] Program processing
[0690] The server sets up a specific endpoint to receive requests from users. At the endpoint, it receives data on the user's mood, duration, and emotions recognized by the emotion engine, and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes from the retrieved suggestions to create a menu list.
[0691] For example, if a user requests a 7-day menu in a "Japanese style" mood, and the emotion engine recognizes the user's mood as "stressed," the server retrieves "Japanese style" dishes with a "relaxing effect" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database. Then, it randomly selects 7 days' worth of menus to generate a list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki").
[0692] The server returns the generated menu list to the user in JSON format, and the system completes by displaying the received data in a way that the user can easily see. This process allows users to easily automatically generate menus that match not only their mood and the number of days, but also their emotions.
[0693] Furthermore, if the entered mood does not exist in the database or if the emotion engine fails to accurately recognize the emotion, the server generates an error message and notifies the user. This error handling feature makes the system easier to use. In addition, the generated menu list is visually displayed on the terminal, improving user convenience.
[0694] This invention significantly reduces the time and effort required for busy housewives and working parents to plan their daily meals, enabling them to efficiently create daily meal plans. This allows for optimal menu suggestions tailored to each user's individual circumstances, supporting a healthy and satisfying diet.
[0695] The following describes the processing flow.
[0696] Step 1:
[0697] The user accesses the system through a terminal and displays the interface. The terminal displays options to use mood, duration, and emotion engines.
[0698] Step 2:
[0699] The user inputs their mood (e.g., "Chinese," "Japanese," "Western," etc.) and duration (number of days). Additionally, the device's built-in camera and microphone are used by an emotion engine to analyze the user's facial expressions and voice tone, thereby recognizing their emotions.
[0700] Step 3:
[0701] The terminal converts the input mood, duration, and emotion recognized by the emotion engine into JSON format and sends it to the server.
[0702] Step 4:
[0703] The server parses the JSON data received at the endpoint and extracts mood, duration, and sentiment information. It then checks if the mood specified by the user exists in the database.
[0704] Step 5:
[0705] If the mood is not found in the database, the server generates an error message and sends it back to the terminal with HTTP status code 400. The terminal receives this and displays the error message to the user.
[0706] Step 6:
[0707] The server retrieves dish candidates from the database that correspond to the mood entered. In this process, it also takes into account the emotions recognized by the emotion engine; for example, if the mood is "stressed," it prioritizes retrieving dishes with relaxing effects.
[0708] Step 7:
[0709] The server randomly selects dishes from a list of dish candidates for a specified period (number of days) and generates a menu list.
[0710] Step 8:
[0711] The server generates a menu list, converts it to JSON format, and sends it to the user's terminal. This includes the name and a brief description of each dish.
[0712] Step 9:
[0713] The device parses the received JSON data and displays it to the user in a visually understandable format. This allows the user to easily check their daily meal plans.
[0714] As a concrete example, if a user requests a 7-day menu in a "Japanese mood," and the emotion engine recognizes the user's mood as "stressed," the server retrieves "Japanese-style" dishes with "relaxing effects" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database and randomly selects dishes for the 7 days. As a result, the generated menu list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki") is provided to the user.
[0715] The above explains the program's processing steps by breaking them down into specific steps.
[0716] (Example 2)
[0717] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0718] In modern society, many users, especially busy housewives and working parents, spend a great deal of time and effort deciding on their daily menus. Furthermore, while providing meals tailored to the user's mood and emotions is expected to improve meal satisfaction, current systems struggle to make suggestions that take emotions into account. Therefore, there is a need for an automated menu creation system that reflects not only the user's mood and timeframe, but also their emotions.
[0719] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0720] In this invention, the server includes means for inputting the user's mood, duration, and emotions; means for retrieving appropriate dish candidates from a database based on the input mood, duration, and emotions; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; and means for providing the selected dishes to the user. This makes it possible for users to easily generate menus that match their mood, duration, and emotions, making their daily meal planning efficient and satisfying.
[0721] "Mood" refers to the style or preference of the cuisine that the user desires at that particular time. Examples include "Chinese," "Japanese," and "Western."
[0722] "Period" refers to the number of days for which the menu specified by the user will be provided. This includes a range from one day to several days.
[0723] "Emotion" refers to the user's current mental state. This represents the user's feelings as recognized by the emotion engine, such as "stressed" or "relaxed."
[0724] "Means of input" refers to interfaces or devices that allow users to provide moods, durations, and emotions to the system.
[0725] "Means of acquisition" refers to a system or program that searches a database for and acquires suitable dish candidates based on the entered mood, time period, and emotions.
[0726] "Means of selection" refers to methods or devices for randomly selecting dishes from acquired dish candidates that correspond to a specified period.
[0727] "Means of provision" refers to systems or programs that present selected dishes to users visually or digitally.
[0728] An "error message" refers to a notification message generated when the system fails to find a suitable dish or when there is an input mismatch.
[0729] A "menu list" refers to a list of selected dishes combined together. This list includes dishes for a number of days specified by the user.
[0730] "Means of display" refers to digital screens or displays used to show generated menu lists and error messages to users in a visually apparent manner.
[0731] Modes for carrying out the invention
[0732] This invention relates to a system that automatically creates menus based on the user's mood, timeframe, and emotions. The system aims to reduce the effort required for users to plan meals and to provide optimal meal suggestions tailored to their mood at any given time. To implement this system, the following hardware and software are used to perform specific processing.
[0733] Hardware and software
[0734] 1. Terminal: A device used by the user to access the system and input mood, duration, and emotions. Examples include smartphones, tablets, and personal computers.
[0735] 2. Emotion Engine: Software used to recognize the user's emotions. This may involve using services such as the "Emotion API".
[0736] 3. Server: A central system for receiving user input data, retrieving recipe suggestions from the database, and generating a menu list.
[0737] 4. Database: A system for storing cooking information. Relational databases such as "MySQL" are used.
[0738] Process Overview
[0739] 1. User Input: An interface is provided for the user to access the system by operating a terminal and inputting their mood (e.g., "Chinese," "Japanese," "Western") and duration (number of days).
[0740] 2. Emotion Recognition and Transmission: The emotion engine installed in the device analyzes the user's facial expressions and voice to acquire emotion data. This emotion data, along with the entered mood and duration, is sent to the server.
[0741] 3. Server processing: The server receives requests from users (mood, duration, sentiment data) at specific endpoints and retrieves corresponding dish candidates from the database.
[0742] 4. Generating the menu list: Randomly select dishes corresponding to each period from the acquired dish candidates and generate a menu list for the specified number of days.
[0743] 5. Returning and displaying results: The server returns the generated menu list to the user in JSON format, which the terminal receives and displays visually.
[0744] 6. Error Handling: If the entered mood does not exist in the database or if the emotion engine is unable to accurately recognize the emotion, the server will generate an error message and notify the user.
[0745] Specific examples of operation
[0746] Example: Suppose a user requests a 7-day menu in a "Japanese style" mood, and the emotion engine recognizes that the user is "stressed." In this case, the server retrieves "Japanese style" dishes with a "relaxing effect" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database, randomly selects dishes for 7 days, and generates a menu list.
[0747] Example of a prompt
[0748] The following are specific examples of prompt statements to be input into the generating AI model.
[0749] Example: "If a user requests a 7-day menu in a 'Japanese-style' mood, and the emotion engine detects 'stress,' please suggest dishes with a relaxing effect."
[0750] Using this prompt allows the system to suggest accurate and appropriate menus. This enables users to plan their daily meals efficiently and with greater satisfaction.
[0751] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0752] Step 1:
[0753] The user accesses the system using a terminal. The terminal displays an interface for entering a mood (e.g., "Chinese," "Japanese," "Western") and duration (number of days). The user then enters their desired mood and duration and sends it to the system. As a specific example, the user selects "Japanese" and "7 days" and submits it.
[0754] Input: mood, duration
[0755] Output: Mood and time period data
[0756] Step 2:
[0757] The emotion engine built into the device recognizes the user's current emotions. The emotion engine analyzes the user's facial expressions and voice, and acquires emotional state data. This emotional data, along with the input mood and duration data, is sent to the server. As a concrete example, the emotion engine scans the user's face and generates emotional data indicating "stressed."
[0758] Input: User's facial expressions, voice
[0759] Output: Sentiment data
[0760] Step 3:
[0761] The server receives requests from users (mood, duration, and emotion data) at a specific endpoint. The server parses the received data and prepares to search the database for appropriate recipes based on mood, duration, and emotion. Specifically, the server parses the data received in JSON format and processes it as "Mood: Japanese style", "Duration: 7 days", and "Emotion: Stressed".
[0762] Input: Mood, duration, emotional data
[0763] Output: Analyzed data
[0764] Step 4:
[0765] The server queries the database to retrieve relevant dish candidates. Specifically, the server executes an SQL query to search for "Japanese-style" dishes with "relaxing effects," retrieving items such as "sukiyaki," "teriyaki chicken," and "sashimi." This process extracts dish information that matches specific criteria based on the retrieved data.
[0766] Input: Analyzed data
[0767] Output: List of recipe candidates
[0768] Step 5:
[0769] The server randomly selects dishes from a list of dish candidates for a specified period and generates a menu list. The server uses a program such as Python to perform the random selection. For example, it might generate a menu list for 7 days that includes "Sukiyaki," "Teriyaki Chicken," "Sashimi," "Sukiyaki," "Teriyaki Chicken," "Sashimi," and "Sukiyaki."
[0770] Input: List of recipe suggestions
[0771] Output: Menu list
[0772] Step 6:
[0773] The server generates a menu list and sends it back to the user in JSON format. Upon receiving this data, the device displays it in a format visible to the user using HTML or JavaScript. Specifically, the device parses the returned JSON data and displays it in list format.
[0774] Input: Menu list
[0775] Output: Display to the user
[0776] Step 7:
[0777] If the entered mood does not exist in the database, or if the emotion engine is unable to accurately recognize the emotion, the server generates an error message and notifies the user. For example, it might create and display a message such as "No matching dishes were found."
[0778] Input: Error information
[0779] Output: Error messages and notifications
[0780] (Application Example 2)
[0781] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0782] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe. However, conventional systems have the problem of not being able to suggest menus that take the user's emotions into account. As a result, optimal menu suggestions are not made that are tailored to situations in which the user is feeling stressed or happy, making it difficult to provide a highly satisfying dining experience. Furthermore, while combining facial recognition technology and emotion analysis technology could enable more effective menu suggestions tailored to the user's emotional state, challenges remain in realizing such a system.
[0783] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0784] In this invention, the server includes means for inputting the user's mood and duration; means for obtaining dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the obtained dish candidates; means for providing the selected dishes to the user; means for performing facial recognition and emotion analysis; and means for suggesting the most suitable dishes based on the user's emotions. This makes it possible to suggest menus that are appropriate to the user's current emotional state.
[0785] "User" refers to an entity that uses the system to generate menus based on its own mood and timeframe.
[0786] "Mood" refers to information that indicates the user's preferences and emotional state regarding the genre and type of food.
[0787] "Period" refers to information indicating the time range or number of days for which menu suggestions are to be made.
[0788] "Means for input" refers to an interface that allows users to provide the system with information about their mood or time period.
[0789] "Means of acquisition" refers to the system's function of retrieving dish candidates that match the specified criteria from the database.
[0790] "Means for random selection" refers to a function that randomly selects dishes from the acquired dish candidates according to each period.
[0791] "Means of providing" refers to the function of presenting the selected dishes to the user visually or digitally.
[0792] "Facial recognition" refers to a technology that uses a camera to identify a user's face and acquire image data of it.
[0793] "Emotional analysis" refers to a technology that analyzes a user's emotional state based on acquired facial image data.
[0794] "Means of making suggestions" refers to a function that selects and provides the most suitable dish to the user based on analyzed emotional data and the user's input mood.
[0795] An "error message" refers to a warning message that the system sends when there is a problem with the user's input.
[0796] "Means for displaying" refers to the function of presenting the generated menu list and other important information on the user's device.
[0797] A "terminal" refers to a device used by a user to access a system and operate its interface.
[0798] This invention relates to an automated menu creation system based on the user's mood, timeframe, and emotions, and is particularly intended for application in physical stores. This system aims to improve user satisfaction by using a smartphone application to recognize the user's emotions and, based on that information, suggesting the most suitable menu to be offered in the store. Specific embodiments of this system are described below.
[0799] Hardware configuration
[0800] First, a smartphone, which is the user's device, and a network system including a server are required.
[0801] A smartphone is a device that has a camera function and can connect to the internet.
[0802] The server handles the overall system processing and is built using Node.js and the Express framework.
[0803] Software Configuration
[0804] It consists of a smartphone application and a server-side backend system.
[0805] Smartphone application: Provides an interface for inputting and recognizing the user's mood, duration, and emotions.
[0806] Server-side backend system: Performs tasks such as database operations, facial recognition, emotion analysis, retrieval of recipe candidates, and recipe suggestions.
[0807] Specific technologies to be used
[0808] Face Recognition and Emotion Analysis: Using OpenCV and the Google Cloud Vision API, we recognize users' faces and analyze their emotions.
[0809] Database: Use Firebase Firestore and similar tools to manage recipe suggestions and user data.
[0810] The server uses Node.js and is implemented on the Express framework.
[0811] System operation procedures
[0812] 1. User input operations:
[0813] The user launches a smartphone application and points their face at the camera.
[0814] Use the application interface to enter your current mood (e.g., "Japanese style," "Western style," etc.) and duration (e.g., "7 days").
[0815] 2. Facial Recognition and Emotion Analysis:
[0816] The user's face is captured using the smartphone's camera.
[0817] It performs facial recognition and analyzes specific emotions (e.g., "stressed").
[0818] 3. Data transmission:
[0819] The recognized emotion data, mood, and duration are sent to the server.
[0820] 4. Data acquisition and recipe suggestions:
[0821] The server retrieves dish suggestions that are appropriate for the mood and feelings entered from Firebase Firestore.
[0822] The system randomly selects dishes corresponding to each period from the acquired dish candidates and generates the optimal menu to offer to users.
[0823] 5. Menu presentation and ordering:
[0824] The generated menu is displayed in the smartphone application.
[0825] Users can select and order the suggested dishes.
[0826] Specific example
[0827] When a user launches the app and points their face at the built-in camera, the emotion engine recognizes that the user is "stressed." Based on this, the app suggests relaxing dishes (e.g., "ochazuke" or "hot udon"), and the user can then order them directly through the app.
[0828] Example of a prompt:
[0829] User: Launch the app and point your face at the camera.
[0830] System: The system has analyzed your emotions as "stressed." We suggest a menu with relaxing effects.
[0831] System: The following dishes are suggested: "Ochazuke" (rice with tea poured over it) and "Hot Udon" (hot udon noodles).
[0832] User: I select hot udon and place my order.
[0833] As described above, this system can improve customer satisfaction in physical stores. Furthermore, by taking into account not only the user's mood but also their emotions, it becomes possible to provide more personalized and optimal menu suggestions.
[0834] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0835] Step 1:
[0836] The user launches a smartphone application and points their face at the built-in camera.
[0837] Operation: The smartphone's camera captures the user's face and acquires image data.
[0838] Input: User's face image
[0839] Output: Acquired facial image data
[0840] Step 2:
[0841] The device performs facial recognition and emotion analysis.
[0842] Operation: Using OpenCV and the Google Cloud Vision API, it identifies the user's face from acquired facial images and then performs sentiment analysis.
[0843] Input: Face image data
[0844] Output: Analyzed emotion data (e.g., "Stressed")
[0845] Step 3:
[0846] The user enters their mood (e.g., "Japanese style," "Western style") and duration (e.g., "7 days") into the application interface.
[0847] Operation: The user enters their mood and duration using the application's input fields and presses the submit button.
[0848] Input: User's mood and duration information
[0849] Output: Input data for mood and duration
[0850] Step 4:
[0851] The device sends the entered mood and duration, along with the analyzed emotional data, to the server.
[0852] Operation: The device sends input data and emotion data to the server in JSON format.
[0853] Input: Mood, duration, emotional data
[0854] Output: Data request in JSON format
[0855] Step 5:
[0856] The server retrieves recipe candidates from the database.
[0857] Operation: Based on the request data received by the server, it searches for suitable recipe candidates from a database such as Firebase Firestore.
[0858] Input: Mood, duration, emotional data
[0859] Output: List of recipe candidates
[0860] Step 6:
[0861] The server randomly selects a dish from the retrieved dish candidates.
[0862] Operation: The server executes an algorithm that randomly selects dishes corresponding to each period from a list of dishes it has acquired.
[0863] Input: List of recipe suggestions
[0864] Output: List of selected dishes
[0865] Step 7:
[0866] The server sends a randomly selected list of dishes to the user's terminal.
[0867] Operation: The server returns the selected list of dishes to the user's terminal in JSON format.
[0868] Input: Selected list of dishes
[0869] Output: Recipe list in JSON format
[0870] Step 8:
[0871] The device displays a list of suggested dishes.
[0872] Function: Performs a function that visually displays the list of dishes received by the device.
[0873] Input: Recipe list in JSON format
[0874] Output: List of dishes displayed on the screen
[0875] Step 9:
[0876] The user selects their desired dish from the suggested options and places an order.
[0877] Operation: The user selects a dish and confirms the order by pressing the order button in the application.
[0878] Input: User's selected dish
[0879] Output: Order confirmation data
[0880] This will enable a system that suggests and allows users to order the optimal menu based on their emotions, mood, and timeframe.
[0881] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0882] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0883] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart glasses 214.
[0884] [Third Embodiment]
[0885] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0886] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0887] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0888] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.
[0889] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0890] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0891] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0892] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0893] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0894] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0895] In the headset terminal 314, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0896] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the headset terminal 314 will be referred to as the "terminal".
[0897] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe, and aims to reduce the effort required for busy housewives and working parents to plan meals.
[0898] The following program and its processing flow are shown as an embodiment of this system.
[0899] System Overview
[0900] The user accesses the system using a terminal. The terminal is provided with an interface for entering a mood (e.g., "Chinese," "Japanese," "Western," etc.) and a duration (number of days). Once the user enters and submits this information, the server receives the request and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes corresponding to each day from the retrieved suggestions to generate a menu list, which is then provided to the user.
[0901] Program processing
[0902] The server sets up a specific endpoint to receive requests from users. At the endpoint, it receives data on the user's mood and time period, and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes from the retrieved suggestions to create a menu list.
[0903] For example, if a user requests a 7-day menu in the mood for "Japanese style," the server retrieves dishes that fit the "Japanese style" category from the database (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.). Then, it randomly selects 7 days' worth of menus to generate a list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki").
[0904] The server returns the generated menu list to the user in JSON format, and the system completes by displaying the received data in a format that the user can easily see. This process allows users to easily and automatically generate menus that suit their mood and the number of days they are staying.
[0905] Furthermore, if the entered mood does not exist in the database, the server generates an error message and notifies the user. This error handling function makes the system easier to use. In addition, the user convenience is improved by visually displaying the generated menu list on the terminal.
[0906] This invention significantly reduces the time and effort busy housewives and working parents spend planning daily meals, enabling them to efficiently create daily meal plans.
[0907] The following describes the processing flow.
[0908] Step 1:
[0909] The user accesses the system via their device and enters their preferred style (e.g., "Chinese," "Japanese," "Western") and duration (number of days). This information is then sent to the server.
[0910] Step 2:
[0911] The server receives the POST request at the endpoint and parses the user's input data using request.get_json(). Here, it extracts information about mood and duration (days).
[0912] Step 3:
[0913] The server checks if the extracted mood exists in the database. If it does not exist, the server generates an error message and sends it back to the user with HTTP status code 400.
[0914] Step 4:
[0915] The server retrieves dish suggestions from the database that correspond to the entered mood. This database stores multiple dishes corresponding to each mood.
[0916] Step 5:
[0917] The server randomly selects dishes from a list of available dishes for a specified period (number of days). For example, dishes can be selected using `random.choice()` to generate a menu list.
[0918] Step 6:
[0919] The server generates a menu list, converts it to JSON format, and sends it to the user as a response. The menu list includes dishes for the specified period.
[0920] Step 7:
[0921] The device parses the JSON-formatted response received from the server and displays it to the user in a visually accessible format. This allows the user to easily check their daily meal plans.
[0922] For example, if a user requests a 7-day menu with the subject "in a Japanese mood," the server retrieves Japanese dishes (e.g., sukiyaki, teriyaki chicken, sashimi, etc.) from the database and randomly selects dishes for 7 days. As a result, it provides the user with a generated menu list (e.g., sukiyaki, teriyaki chicken, sashimi, sukiyaki, teriyaki chicken, sashimi, sukiyaki).
[0923] The above explains the program's processing steps by breaking them down into specific steps.
[0924] (Example 1)
[0925] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0926] Busy families need a system that makes it easy to create meal plans tailored to their mood and timeframe, reducing the effort required to plan meals. However, conventional systems struggle to flexibly accommodate diverse moods and timeframes, and they lack intuitive user interfaces.
[0927] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0928] In this invention, the server includes means for inputting mood and duration; means for retrieving dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; means for serving the selected dishes; and means for creating a menu list by randomly selecting dishes from the retrieved dish candidates. This makes it possible for users to easily and automatically generate menus suitable for a variety of moods and durations.
[0929] "User" refers to an individual or organization that intends to use this system to create a menu.
[0930] "Mood" refers to the type or style of cuisine that the user desires (e.g., "Chinese," "Japanese," "Western," etc.).
[0931] "Period" refers to a specified number of days and serves as the unit for generating menus.
[0932] "Input method" refers to an interface or device that allows users to input their mood or time period.
[0933] A "database" refers to a data storage system where recipe candidates and other related information are stored.
[0934] "Means of acquisition" refers to a system or program that has the function of retrieving information from a database according to the entered mood or time period.
[0935] "Selection method" refers to a system or program that has the function of randomly selecting from acquired dish candidates based on specific logic or conditions.
[0936] "Means of provision" refers to a system or program that has the function of notifying or displaying randomly selected dishes to the user.
[0937] A "menu list" refers to a list of selected dishes, organized by day.
[0938] An "error message" refers to a warning message displayed when the entered mood or other information does not exist in the system's database.
[0939] This invention relates to a system that automatically creates meal plans according to the user's mood and timeframe, and aims to reduce the effort required to plan meals, especially in busy households. Specific embodiments of the system are described below.
[0940] System Overview
[0941] Users access the system via a web browser using a device (e.g., PC, smartphone). The device provides an interface for entering a mood (e.g., "Chinese," "Japanese," "Western," etc.) and a duration (number of days). Once the user enters and submits this information, the server receives the request and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes corresponding to each day from the retrieved suggestions to generate a menu list, which is then provided to the user.
[0942] Hardware and software to be used
[0943] This system is implemented using the following hardware and software.
[0944] hardware
[0945] 1. User's device: A device capable of running a web browser, such as a PC or smartphone.
[0946] 2. Server: A server that receives requests and performs backend processing to generate menus.
[0947] 3. Database: A storage system such as SQLite or PostgreSQL for saving recipe candidates.
[0948] software
[0949] 1. Web browser: A client-side application used by users to interact with an interface.
[0950] 2. Flask: A Python framework for server-side processing.
[0951] 3. SQLAlchemy: An ORM (Object-Relational Mapping) library for performing database operations.
[0952] 4. JavaScript: A scripting language used to process and display responses on the client side.
[0953] Data processing and data calculation
[0954] The system performs data processing and calculations in the following steps:
[0955] 1. User enters mood and duration: The user enters their mood (e.g., "Japanese style") and duration (e.g., "7 days") using a web browser interface.
[0956] 2. The terminal sends the request to the server: The terminal converts the entered data into JSON format and sends it to a specific endpoint on the server using the POST method.
[0957] 3. The server receives the request: The server receives the request and retrieves the data at an endpoint for processing.
[0958] 4. Server accesses database: The server retrieves suitable dish candidates from the database using SQL queries based on its mood.
[0959] 5. The server generates the menu list: It randomly selects dishes for the specified number of days from the retrieved dish candidates and generates a menu list.
[0960] 6. Server generates response: Converts the generated menu list into JSON format and sends it to the terminal as a response.
[0961] 7. The device receives and displays the response: The device receives the response and displays it on the screen in a way that is visible to the user. This allows the user to check menus that are suitable for their mood or time period.
[0962] Examples of specific cases and prompt statements
[0963] When a user wants the system to generate a 7-day menu with a "Japanese" theme, the following prompt message is used:
[0964] Example of a prompt:
[0965] "Please generate a 7-day menu with a Japanese theme."
[0966] Based on this prompt, the system retrieves dish candidates corresponding to "Japanese style" from the database (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.), randomly generates a 7-day menu, and provides it to the user. Specifically, a menu list like the following may be generated.
[0967] Example of a generated menu list:
[0968] "Sukiyaki, teriyaki chicken, sashimi, sukiyaki, teriyaki chicken, sashimi, sukiyaki"
[0969] Through the above process, this automated menu creation system enables users to easily generate menus that suit their mood and timeframe.
[0970] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0971] Step 1:
[0972] The user enters their mood and duration. On the device interface (e.g., a web browser), the user enters their mood (e.g., "Chinese," "Japanese," "Western") and duration (e.g., "7 days"). Input formats include text fields and dropdown menus. The user enters "Japanese" and "7 days" and clicks the submit button.
[0973] Input: User-selected mood and duration
[0974] Output: Input data acquired by the terminal (Mood: "Japanese style", Duration: 7)
[0975] Step 2:
[0976] The device sends a request to the server. The device converts the input data into JSON format and sends it as an HTTP POST request to a specific endpoint on the server. This endpoint is specified in the URL for receiving requests.
[0977] Input: Information entered by the user on the form (mood and duration)
[0978] Output: Request data in JSON format (Example: {"mood": "Japanese style", "days": 7})
[0979] Step 3:
[0980] The server receives the request. The server uses the Flask framework to receive the request at the specified endpoint. The received data is retrieved and parsed in JSON format.
[0981] Input: Request data sent from the terminal
[0982] Output: Analyzed input data (Mood: "Japanese style", Period: 7)
[0983] Step 4:
[0984] The server accesses the database to retrieve potential dishes. The server uses an ORM such as SQLAlchemy to retrieve the corresponding dishes from the database based on the parsed data (mood: "Japanese style"). The database stores the dish names and their characteristics, and the server retrieves the data by issuing SQL queries.
[0985] Input: Analyzed input data
[0986] Output: Candidate dishes retrieved from the database (e.g., "Sukiyaki", "Teriyaki Chicken", "Sashimi")
[0987] Step 5:
[0988] The server generates a menu list. From the retrieved list of dish candidates, a dish corresponding to a specified period (e.g., 7 days) is randomly selected. The Python `random` module is used to randomly select from the dish candidates and generate the menu list.
[0989] Input: Candidate dishes and time period retrieved from the database
[0990] Output: Generated menu list (Example: "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki")
[0991] Step 6:
[0992] The server generates a response. The generated menu list is converted to JSON format and returned to the terminal as an HTTP response. The response is created using Flask's jsonify function.
[0993] Input: Generated menu list
[0994] Output: JSON-formatted response data sent to the terminal (Example: {"menu": ["Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki"]})
[0995] Step 7:
[0996] The device receives the response and displays it on the screen. The device's JavaScript code receives the response from the server and dynamically updates the HTML document to display the menu list.
[0997] Input: JSON-formatted response data sent from the server.
[0998] Output: Menu list displayed in the browser (Example: "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki")
[0999] Through the steps described above, this automated meal planning system enables users to easily generate meal plans that suit their mood and timeframe.
[1000] (Application Example 1)
[1001] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[1002] Busy housewives and working parents face challenges in reducing the effort required to plan daily meals and efficiently ordering ingredients. There is a need for a system that easily generates meal plans based on the user's mood and timeframe, provides a list of corresponding ingredients, and allows for all orders to be placed in one go. Furthermore, a function that provides appropriate notifications when a requested dish is not found in the database is essential.
[1003] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[1004] In this invention, the server includes means for inputting the user's mood and duration; means for retrieving dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; means for generating a list of necessary ingredients based on the selected dishes; and means for providing the generated ingredient list to the user and allowing them to order the ingredients on the spot. This makes it possible for the user to easily and automatically generate a menu that suits their mood and the number of days, and to quickly order the necessary ingredients.
[1005] A "user" is a user who uses the system to generate menus and order ingredients.
[1006] "Mood" refers to input information that users use to specify the genre or style of cuisine for the day, including examples such as Chinese, Japanese, and Western.
[1007] "Period" refers to the number of days specified by the user when generating the menu.
[1008] A "database" is a storage location where recipe ideas and information about the necessary ingredients are kept, and the system uses this information to retrieve it.
[1009] "Cooking options" refer to multiple dish choices stored in the database, which are offered to the user according to their specified mood.
[1010] "Random selection" is the operation of randomly selecting a dish from a list of dish candidates retrieved from a database using a specific algorithm.
[1011] A "food ingredient list" refers to a list of ingredients needed based on the selected dish, provided in a format that allows users to easily check and order them.
[1012] An "order" is the process by which a user purchases ingredients based on a generated list of ingredients.
[1013] An "error message" is a notification displayed when the mood entered by the user does not exist in the database, informing the user of the mistake.
[1014] "Display means" refers to devices or functions that visually provide users with generated menu lists or ingredient lists.
[1015] This invention is a system that automatically generates a menu based on the mood and time period entered by the user and provides a list of necessary ingredients. A specific embodiment of this system is shown below.
[1016] System Configuration
[1017] This system mainly consists of the following components.
[1018] 1. User's device:
[1019] It provides a GUI (Graphical User Interface) for users to input their mood and duration on devices such as smartphones and tablets.
[1020] The application will be developed using React Native.
[1021] 2. Server:
[1022] The system receives requests from users, retrieves dish suggestions from the database, and randomly generates menus.
[1023] Amazon Web Services (AWS) EC2 will be used for the server.
[1024] API endpoints are managed by AWS API Gateway, and data processing is performed using Node.js.
[1025] 3. Database:
[1026] AWS RDS using MySQL is used to manage information about various dishes and their ingredients.
[1027] Program processing
[1028] 1. The user enters their mood and duration on the device:
[1029] The user enters information such as "Japanese style" and "7 days".
[1030] The input data is sent to the server in JSON format.
[1031] 2. The server receives the request and retrieves recipe candidates from the database:
[1032] The API endpoint receives the request, and a Node.js script executes the database query.
[1033] Retrieve the corresponding dish candidates.
[1034] 3. Generate a menu randomly:
[1035] The system randomly selects 7 days' worth of menus from the acquired recipe candidates and generates a list of ingredients needed for each dish.
[1036] The system returns a list of dishes and ingredients to the client in JSON format.
[1037] 4. The device displays the menu and ingredient list and provides an ordering function:
[1038] The received JSON data is displayed visually so that the user can verify it.
[1039] Provide links or buttons for ordering ingredients on the spot.
[1040] Specific example
[1041] 1. Example of a prompt:
[1042] The following request is sent to the server as a prompt:
[1043] curl -X POST "https: / / api.example.com / generateMenu" -H "Content-Type: application / json" -d '{
[1044] "mood": "Japanese style",
[1045] "duration": "7"
[1046] }'
[1047] 2. Example response:
[1048] The server returns a menu list and an ingredient list in JSON format, as shown below.
[1049] json
[1050] {
[1051] "menu": [
[1052] "Sukiyaki",
[1053] "Teriyaki Chicken",
[1054] "sashimi",
[1055] "Oden",
[1056] "Tempura",
[1057] "Shabu-shabu",
[1058] "Nikujaga"
[1059] ],
[1060] "ingredients": [
[1061] "beef",
[1062] "soy sauce",
[1063] "Fish for sashimi",
[1064] "Ingredients for oden",
[1065] "Tempura flour",
[1066] "pork",
[1067] "Potato"
[1068] ]
[1069] }
[1070] Hardware and software used
[1071] Server: Amazon Web Services (AWS) EC2
[1072] Database: AWS RDS (MySQL)
[1073] Client app: iOS / Android app (React Native)
[1074] API Gateway: AWS API Gateway
[1075] Processing JSON data: JavaScript (Node.js)
[1076] This invention makes it easy for busy housewives and working parents to generate meal plans tailored to specific timeframes and quickly order the necessary ingredients.
[1077] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[1078] Step 1:
[1079] The user enters their mood and duration into their device. Specifically, the user enters information such as "Japanese style" and "7 days" into a smartphone or tablet application. The entered data is converted into JSON format and prepared to be sent to the server.
[1080] Input: Mood (e.g., "Japanese style"), Duration (e.g., "7 days")
[1081] Output: Request data in JSON format
[1082] Specific actions: Enter your mood and duration in the designated fields, then tap the confirmation button.
[1083] Step 2:
[1084] The device sends a request to the server. JSON formatted data from the device is sent to the server's API endpoint via a POST request.
[1085] Input: Request data in JSON format
[1086] Output: Sending a request to the server
[1087] Specific action: Executing an HTTP POST request
[1088] Step 3:
[1089] The server receives the request and retrieves recipe candidates from the database. A Node.js script processes the request and queries the MySQL database to retrieve "Japanese-style" recipe candidates.
[1090] Input: Request data in JSON format, query conditions (based on mood)
[1091] Output: List of recipe candidates
[1092] Specific operation: Issue queries to a MySQL database and retrieve results.
[1093] Step 4:
[1094] The server randomly selects dishes corresponding to each period from the dish candidates it has acquired. Seven days' worth of dishes are randomly selected from the list of dish candidates using Python's random module.
[1095] Input: List of dish suggestions
[1096] Output: A list of 7 randomly selected recipes.
[1097] Specific operation: Generating a list of dishes using a random module.
[1098] Step 5:
[1099] The server generates a list of necessary ingredients based on the selected dish. It retrieves ingredient information related to each dish from the database and compiles the overall ingredient list.
[1100] Input: A randomly selected list of 7 meals
[1101] Output: Corresponding ingredient list
[1102] Specific operation: Retrieve ingredient information from the database and generate a list.
[1103] Step 6:
[1104] The server returns the generated menu list and ingredient list to the client in JSON format. The generated data is converted to JSON format and sent to the client.
[1105] Input: Menu list, ingredient list
[1106] Output: Response data in JSON format
[1107] Specific actions: Generation and transmission of response data
[1108] Step 7:
[1109] The terminal displays the menu and ingredient list received from the server and provides them to the user. The application parses the received JSON data and displays it visually. Buttons or links are also provided that allow the user to order the necessary ingredients on the spot.
[1110] Input: Response data in JSON format
[1111] Output: Visually displayed menu list and ingredient list
[1112] Specific actions: Parsing JSON data, displaying it on the screen, and providing a food ordering function.
[1113] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[1114] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe, and aims to reduce the effort required for busy housewives and working parents to plan meals. Furthermore, by combining this with an emotion engine that recognizes the user's emotions and suggests menus based on those emotions, more personalized and appropriate menu suggestions become possible.
[1115] The following program and its processing flow are shown as an embodiment of this system.
[1116] System Overview
[1117] When a user accesses the system using a terminal, the terminal provides an interface for entering their mood (e.g., "Chinese," "Japanese," "Western," etc.) and duration (number of days). Furthermore, an emotion engine recognizes the user's current mood and sends that information to the server. Once the user enters and submits this information, the server receives the request and retrieves corresponding dish candidates from the database. The server then randomly selects dishes corresponding to each day from the retrieved candidates to generate a menu list, which is then provided to the user.
[1118] Program processing
[1119] The server sets up a specific endpoint to receive requests from users. At the endpoint, it receives data on the user's mood, duration, and emotions recognized by the emotion engine, and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes from the retrieved suggestions to create a menu list.
[1120] For example, if a user requests a 7-day menu in a "Japanese style" mood, and the emotion engine recognizes the user's mood as "stressed," the server retrieves "Japanese style" dishes with a "relaxing effect" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database. Then, it randomly selects 7 days' worth of menus to generate a list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki").
[1121] The server returns the generated menu list to the user in JSON format, and the system completes by displaying the received data in a way that the user can easily see. This process allows users to easily automatically generate menus that match not only their mood and the number of days, but also their emotions.
[1122] Furthermore, if the entered mood does not exist in the database or if the emotion engine fails to accurately recognize the emotion, the server generates an error message and notifies the user. This error handling feature makes the system easier to use. In addition, the generated menu list is visually displayed on the terminal, improving user convenience.
[1123] This invention significantly reduces the time and effort required for busy housewives and working parents to plan their daily meals, enabling them to efficiently create daily meal plans. This allows for optimal menu suggestions tailored to each user's individual circumstances, supporting a healthy and satisfying diet.
[1124] The following describes the processing flow.
[1125] Step 1:
[1126] The user accesses the system through a terminal and displays the interface. The terminal displays options to use mood, duration, and emotion engines.
[1127] Step 2:
[1128] The user inputs their mood (e.g., "Chinese," "Japanese," "Western," etc.) and duration (number of days). Additionally, the device's built-in camera and microphone are used by an emotion engine to analyze the user's facial expressions and voice tone, thereby recognizing their emotions.
[1129] Step 3:
[1130] The terminal converts the input mood, duration, and emotion recognized by the emotion engine into JSON format and sends it to the server.
[1131] Step 4:
[1132] The server parses the JSON data received at the endpoint and extracts mood, duration, and sentiment information. It then checks if the mood specified by the user exists in the database.
[1133] Step 5:
[1134] If the mood is not found in the database, the server generates an error message and sends it back to the terminal with HTTP status code 400. The terminal receives this and displays the error message to the user.
[1135] Step 6:
[1136] The server retrieves dish candidates from the database that correspond to the mood entered. In this process, it also takes into account the emotions recognized by the emotion engine; for example, if the mood is "stressed," it prioritizes retrieving dishes with relaxing effects.
[1137] Step 7:
[1138] The server randomly selects dishes from a list of dish candidates for a specified period (number of days) and generates a menu list.
[1139] Step 8:
[1140] The server generates a menu list, converts it to JSON format, and sends it to the user's terminal. This includes the name and a brief description of each dish.
[1141] Step 9:
[1142] The device parses the received JSON data and displays it to the user in a visually understandable format. This allows the user to easily check their daily meal plans.
[1143] As a concrete example, if a user requests a 7-day menu in a "Japanese mood," and the emotion engine recognizes the user's mood as "stressed," the server retrieves "Japanese-style" dishes with "relaxing effects" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database and randomly selects dishes for the 7 days. As a result, the generated menu list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki") is provided to the user.
[1144] The above explains the program's processing steps by breaking them down into specific steps.
[1145] (Example 2)
[1146] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[1147] In modern society, many users, especially busy housewives and working parents, spend a great deal of time and effort deciding on their daily menus. Furthermore, while providing meals tailored to the user's mood and emotions is expected to improve meal satisfaction, current systems struggle to make suggestions that take emotions into account. Therefore, there is a need for an automated menu creation system that reflects not only the user's mood and timeframe, but also their emotions.
[1148] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[1149] In this invention, the server includes means for inputting the user's mood, duration, and emotions; means for retrieving appropriate dish candidates from a database based on the input mood, duration, and emotions; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; and means for providing the selected dishes to the user. This makes it possible for users to easily generate menus that match their mood, duration, and emotions, making their daily meal planning efficient and satisfying.
[1150] "Mood" refers to the style or preference of the cuisine that the user desires at that particular time. Examples include "Chinese," "Japanese," and "Western."
[1151] "Period" refers to the number of days for which the menu specified by the user will be provided. This includes a range from one day to several days.
[1152] "Emotion" refers to the user's current mental state. This represents the user's feelings as recognized by the emotion engine, such as "stressed" or "relaxed."
[1153] "Means of input" refers to interfaces or devices that allow users to provide moods, durations, and emotions to the system.
[1154] "Means of acquisition" refers to a system or program that searches a database for and acquires suitable dish candidates based on the entered mood, time period, and emotions.
[1155] "Means of selection" refers to methods or devices for randomly selecting dishes from acquired dish candidates that correspond to a specified period.
[1156] "Means of provision" refers to systems or programs that present selected dishes to users visually or digitally.
[1157] An "error message" refers to a notification message generated when the system fails to find a suitable dish or when there is an input mismatch.
[1158] A "menu list" refers to a list of selected dishes combined together. This list includes dishes for a number of days specified by the user.
[1159] "Means of display" refers to digital screens or displays used to show generated menu lists and error messages to users in a visually apparent manner.
[1160] Modes for carrying out the invention
[1161] This invention relates to a system that automatically creates menus based on the user's mood, timeframe, and emotions. The system aims to reduce the effort required for users to plan meals and to provide optimal meal suggestions tailored to their mood at any given time. To implement this system, the following hardware and software are used to perform specific processing.
[1162] Hardware and software
[1163] 1. Terminal: A device used by the user to access the system and input mood, duration, and emotions. Examples include smartphones, tablets, and personal computers.
[1164] 2. Emotion Engine: Software used to recognize the user's emotions. This may involve using services such as the "Emotion API".
[1165] 3. Server: A central system for receiving user input data, retrieving recipe suggestions from the database, and generating a menu list.
[1166] 4. Database: A system for storing cooking information. Relational databases such as "MySQL" are used.
[1167] Process Overview
[1168] 1. User Input: An interface is provided for the user to access the system by operating a terminal and inputting their mood (e.g., "Chinese," "Japanese," "Western") and duration (number of days).
[1169] 2. Emotion Recognition and Transmission: The emotion engine installed in the device analyzes the user's facial expressions and voice to acquire emotion data. This emotion data, along with the entered mood and duration, is sent to the server.
[1170] 3. Server processing: The server receives requests from users (mood, duration, sentiment data) at specific endpoints and retrieves corresponding dish candidates from the database.
[1171] 4. Generating the menu list: Randomly select dishes corresponding to each period from the acquired dish candidates and generate a menu list for the specified number of days.
[1172] 5. Returning and displaying results: The server returns the generated menu list to the user in JSON format, which the terminal receives and displays visually.
[1173] 6. Error Handling: If the entered mood does not exist in the database or if the emotion engine is unable to accurately recognize the emotion, the server will generate an error message and notify the user.
[1174] Specific examples of operation
[1175] Example: Suppose a user requests a 7-day menu in a "Japanese style" mood, and the emotion engine recognizes that the user is "stressed." In this case, the server retrieves "Japanese style" dishes with a "relaxing effect" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database, randomly selects dishes for 7 days, and generates a menu list.
[1176] Example of a prompt
[1177] The following are specific examples of prompt statements to be input into the generating AI model.
[1178] Example: "If a user requests a 7-day menu in a 'Japanese-style' mood, and the emotion engine detects 'stress,' please suggest dishes with a relaxing effect."
[1179] Using this prompt allows the system to suggest accurate and appropriate menus. This enables users to plan their daily meals efficiently and with greater satisfaction.
[1180] The flow of the specific processing in Example 2 will be explained using Figure 13.
[1181] Step 1:
[1182] The user accesses the system using a terminal. The terminal displays an interface for entering a mood (e.g., "Chinese," "Japanese," "Western") and duration (number of days). The user then enters their desired mood and duration and sends it to the system. As a specific example, the user selects "Japanese" and "7 days" and submits it.
[1183] Input: mood, duration
[1184] Output: Mood and time period data
[1185] Step 2:
[1186] The emotion engine built into the device recognizes the user's current emotions. The emotion engine analyzes the user's facial expressions and voice, and acquires emotional state data. This emotional data, along with the input mood and duration data, is sent to the server. As a concrete example, the emotion engine scans the user's face and generates emotional data indicating "stressed."
[1187] Input: User's facial expressions, voice
[1188] Output: Sentiment data
[1189] Step 3:
[1190] The server receives requests from users (mood, duration, and emotion data) at a specific endpoint. The server parses the received data and prepares to search the database for appropriate recipes based on mood, duration, and emotion. Specifically, the server parses the data received in JSON format and processes it as "Mood: Japanese style", "Duration: 7 days", and "Emotion: Stressed".
[1191] Input: Mood, duration, emotional data
[1192] Output: Analyzed data
[1193] Step 4:
[1194] The server queries the database to retrieve relevant dish candidates. Specifically, the server executes an SQL query to search for "Japanese-style" dishes with "relaxing effects," retrieving items such as "sukiyaki," "teriyaki chicken," and "sashimi." This process extracts dish information that matches specific criteria based on the retrieved data.
[1195] Input: Analyzed data
[1196] Output: List of recipe candidates
[1197] Step 5:
[1198] The server randomly selects dishes from a list of dish candidates for a specified period and generates a menu list. The server uses a program such as Python to perform the random selection. For example, it might generate a menu list for 7 days that includes "Sukiyaki," "Teriyaki Chicken," "Sashimi," "Sukiyaki," "Teriyaki Chicken," "Sashimi," and "Sukiyaki."
[1199] Input: List of recipe suggestions
[1200] Output: Menu list
[1201] Step 6:
[1202] The server generates a menu list and sends it back to the user in JSON format. Upon receiving this data, the device displays it in a format visible to the user using HTML or JavaScript. Specifically, the device parses the returned JSON data and displays it in list format.
[1203] Input: Menu list
[1204] Output: Display to the user
[1205] Step 7:
[1206] If the entered mood does not exist in the database, or if the emotion engine is unable to accurately recognize the emotion, the server generates an error message and notifies the user. For example, it might create and display a message such as "No matching dishes were found."
[1207] Input: Error information
[1208] Output: Error messages and notifications
[1209] (Application Example 2)
[1210] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[1211] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe. However, conventional systems have the problem of not being able to suggest menus that take the user's emotions into account. As a result, optimal menu suggestions are not made that are tailored to situations in which the user is feeling stressed or happy, making it difficult to provide a highly satisfying dining experience. Furthermore, while combining facial recognition technology and emotion analysis technology could enable more effective menu suggestions tailored to the user's emotional state, challenges remain in realizing such a system.
[1212] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[1213] In this invention, the server includes means for inputting the user's mood and duration; means for obtaining dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the obtained dish candidates; means for providing the selected dishes to the user; means for performing facial recognition and emotion analysis; and means for suggesting the most suitable dishes based on the user's emotions. This makes it possible to suggest menus that are appropriate to the user's current emotional state.
[1214] "User" refers to an entity that uses the system to generate menus based on its own mood and timeframe.
[1215] "Mood" refers to information that indicates the user's preferences and emotional state regarding the genre and type of food.
[1216] "Period" refers to information indicating the time range or number of days for which menu suggestions are to be made.
[1217] "Means for input" refers to an interface that allows users to provide the system with information about their mood or time period.
[1218] "Means of acquisition" refers to the system's function of retrieving dish candidates that match the specified criteria from the database.
[1219] "Means for random selection" refers to a function that randomly selects dishes from the acquired dish candidates according to each period.
[1220] "Means of providing" refers to the function of presenting the selected dishes to the user visually or digitally.
[1221] "Facial recognition" refers to a technology that uses a camera to identify a user's face and acquire image data of it.
[1222] "Emotional analysis" refers to a technology that analyzes a user's emotional state based on acquired facial image data.
[1223] "Means of making suggestions" refers to a function that selects and provides the most suitable dish to the user based on analyzed emotional data and the user's input mood.
[1224] An "error message" refers to a warning message that the system sends when there is a problem with the user's input.
[1225] "Means for displaying" refers to the function of presenting the generated menu list and other important information on the user's device.
[1226] A "terminal" refers to a device used by a user to access a system and operate its interface.
[1227] This invention relates to an automated menu creation system based on the user's mood, timeframe, and emotions, and is particularly intended for application in physical stores. This system aims to improve user satisfaction by using a smartphone application to recognize the user's emotions and, based on that information, suggesting the most suitable menu to be offered in the store. Specific embodiments of this system are described below.
[1228] Hardware configuration
[1229] First, a smartphone, which is the user's device, and a network system including a server are required.
[1230] A smartphone is a device that has a camera function and can connect to the internet.
[1231] The server handles the overall system processing and is built using Node.js and the Express framework.
[1232] Software Configuration
[1233] It consists of a smartphone application and a server-side backend system.
[1234] Smartphone application: Provides an interface for inputting and recognizing the user's mood, duration, and emotions.
[1235] Server-side backend system: Performs tasks such as database operations, facial recognition, emotion analysis, retrieval of recipe candidates, and recipe suggestions.
[1236] Specific technologies to be used
[1237] Face Recognition and Emotion Analysis: Using OpenCV and the Google Cloud Vision API, we recognize users' faces and analyze their emotions.
[1238] Database: Use Firebase Firestore and similar tools to manage recipe suggestions and user data.
[1239] The server uses Node.js and is implemented on the Express framework.
[1240] System operation procedures
[1241] 1. User input operations:
[1242] The user launches a smartphone application and points their face at the camera.
[1243] Use the application interface to enter your current mood (e.g., "Japanese style," "Western style," etc.) and duration (e.g., "7 days").
[1244] 2. Facial Recognition and Emotion Analysis:
[1245] The user's face is captured using the smartphone's camera.
[1246] It performs facial recognition and analyzes specific emotions (e.g., "stressed").
[1247] 3. Data transmission:
[1248] The recognized emotion data, mood, and duration are sent to the server.
[1249] 4. Data acquisition and recipe suggestions:
[1250] The server retrieves dish suggestions that are appropriate for the mood and feelings entered from Firebase Firestore.
[1251] The system randomly selects dishes corresponding to each period from the acquired dish candidates and generates the optimal menu to offer to users.
[1252] 5. Menu presentation and ordering:
[1253] The generated menu is displayed in the smartphone application.
[1254] Users can select and order the suggested dishes.
[1255] Specific example
[1256] When a user launches the app and points their face at the built-in camera, the emotion engine recognizes that the user is "stressed." Based on this, the app suggests relaxing dishes (e.g., "ochazuke" or "hot udon"), and the user can then order them directly through the app.
[1257] Example of a prompt:
[1258] User: Launch the app and point your face at the camera.
[1259] System: The system has analyzed your emotions as "stressed." We suggest a menu with relaxing effects.
[1260] System: The following dishes are suggested: "Ochazuke" (rice with tea poured over it) and "Hot Udon" (udon noodles).
[1261] User: I select hot udon and place my order.
[1262] As described above, this system can improve customer satisfaction in physical stores. Furthermore, by taking into account not only the user's mood but also their emotions, it becomes possible to provide more personalized and optimal menu suggestions.
[1263] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[1264] Step 1:
[1265] The user launches a smartphone application and points their face at the built-in camera.
[1266] Operation: The smartphone's camera captures the user's face and acquires image data.
[1267] Input: User's face image
[1268] Output: Acquired facial image data
[1269] Step 2:
[1270] The device performs facial recognition and emotion analysis.
[1271] Operation: Using OpenCV and the Google Cloud Vision API, it identifies the user's face from acquired facial images and then performs sentiment analysis.
[1272] Input: Face image data
[1273] Output: Analyzed emotion data (e.g., "Stressed")
[1274] Step 3:
[1275] The user enters their mood (e.g., "Japanese style," "Western style") and duration (e.g., "7 days") into the application interface.
[1276] Operation: The user enters their mood and duration using the application's input fields and presses the submit button.
[1277] Input: User's mood and duration information
[1278] Output: Input data for mood and duration
[1279] Step 4:
[1280] The device sends the entered mood and duration, along with the analyzed emotional data, to the server.
[1281] Operation: The device sends input data and emotion data to the server in JSON format.
[1282] Input: Mood, duration, emotional data
[1283] Output: Data request in JSON format
[1284] Step 5:
[1285] The server retrieves recipe candidates from the database.
[1286] Operation: Based on the request data received by the server, it searches for suitable recipe candidates from a database such as Firebase Firestore.
[1287] Input: Mood, duration, emotional data
[1288] Output: List of recipe candidates
[1289] Step 6:
[1290] The server randomly selects a dish from the retrieved dish candidates.
[1291] Operation: The server executes an algorithm that randomly selects dishes corresponding to each period from a list of dishes it has acquired.
[1292] Input: List of recipe suggestions
[1293] Output: List of selected dishes
[1294] Step 7:
[1295] The server sends a randomly selected list of dishes to the user's terminal.
[1296] Operation: The server returns the selected list of dishes to the user's terminal in JSON format.
[1297] Input: Selected list of dishes
[1298] Output: Recipe list in JSON format
[1299] Step 8:
[1300] The device displays a list of suggested dishes.
[1301] Function: Performs a function that visually displays the list of dishes received by the device.
[1302] Input: Recipe list in JSON format
[1303] Output: List of dishes displayed on the screen
[1304] Step 9:
[1305] The user selects their desired dish from the suggested options and places an order.
[1306] Operation: The user selects a dish and confirms the order by pressing the order button in the application.
[1307] Input: User's selected dish
[1308] Output: Order confirmation data
[1309] This will enable a system that suggests and allows users to order the optimal menu based on their emotions, mood, and timeframe.
[1310] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[1311] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1312] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and specific processing may also be performed by the headset terminal 314.
[1313] [Fourth Embodiment]
[1314] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[1315] As shown in Figure 7, the data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[1316] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[1317] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.
[1318] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[1319] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[1320] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[1321] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the robot 414's emotions can be expressed by controlling these motors. Furthermore, the robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.
[1322] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[1323] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[1324] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[1325] In robot 414, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[1326] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1327] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe, and aims to reduce the effort required for busy housewives and working parents to plan meals.
[1328] The following program and its processing flow are shown as an embodiment of this system.
[1329] System Overview
[1330] The user accesses the system using a terminal. The terminal is provided with an interface for entering a mood (e.g., "Chinese," "Japanese," "Western," etc.) and a duration (number of days). Once the user enters and submits this information, the server receives the request and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes corresponding to each day from the retrieved suggestions to generate a menu list, which is then provided to the user.
[1331] Program processing
[1332] The server sets up a specific endpoint to receive requests from users. At the endpoint, it receives data on the user's mood and time period, and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes from the retrieved suggestions to create a menu list.
[1333] For example, if a user requests a 7-day menu in the mood for "Japanese style," the server retrieves dishes that fit the "Japanese style" category from the database (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.). Then, it randomly selects 7 days' worth of menus to generate a list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki").
[1334] The server returns the generated menu list to the user in JSON format, and the system completes by displaying the received data in a format that the user can easily see. This process allows users to easily and automatically generate menus that suit their mood and the number of days they are staying.
[1335] Furthermore, if the entered mood does not exist in the database, the server generates an error message and notifies the user. This error handling function makes the system easier to use. In addition, the user convenience is improved by visually displaying the generated menu list on the terminal.
[1336] This invention significantly reduces the time and effort busy housewives and working parents spend planning daily meals, enabling them to efficiently create daily meal plans.
[1337] The following describes the processing flow.
[1338] Step 1:
[1339] The user accesses the system via their device and enters their preferred style (e.g., "Chinese," "Japanese," "Western") and duration (number of days). This information is then sent to the server.
[1340] Step 2:
[1341] The server receives the POST request at the endpoint and parses the user's input data using request.get_json(). Here, it extracts information about mood and duration (days).
[1342] Step 3:
[1343] The server checks if the extracted mood exists in the database. If it does not exist, the server generates an error message and sends it back to the user with HTTP status code 400.
[1344] Step 4:
[1345] The server retrieves dish suggestions from the database that correspond to the entered mood. This database stores multiple dishes corresponding to each mood.
[1346] Step 5:
[1347] The server randomly selects dishes from a list of available dishes for a specified period (number of days). For example, dishes can be selected using `random.choice()` to generate a menu list.
[1348] Step 6:
[1349] The server generates a menu list, converts it to JSON format, and sends it to the user as a response. The menu list includes dishes for the specified period.
[1350] Step 7:
[1351] The device parses the JSON-formatted response received from the server and displays it to the user in a visually accessible format. This allows the user to easily check their daily meal plans.
[1352] For example, if a user requests a 7-day menu with the subject "in a Japanese mood," the server retrieves Japanese dishes (e.g., sukiyaki, teriyaki chicken, sashimi, etc.) from the database and randomly selects dishes for 7 days. As a result, it provides the user with a generated menu list (e.g., sukiyaki, teriyaki chicken, sashimi, sukiyaki, teriyaki chicken, sashimi, sukiyaki).
[1353] The above explains the program's processing steps by breaking them down into specific steps.
[1354] (Example 1)
[1355] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1356] Busy families need a system that makes it easy to create meal plans tailored to their mood and timeframe, reducing the effort required to plan meals. However, conventional systems struggle to flexibly accommodate diverse moods and timeframes, and they lack intuitive user interfaces.
[1357] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[1358] In this invention, the server includes means for inputting mood and duration; means for retrieving dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; means for serving the selected dishes; and means for creating a menu list by randomly selecting dishes from the retrieved dish candidates. This makes it possible for users to easily and automatically generate menus suitable for a variety of moods and durations.
[1359] "User" refers to an individual or organization that intends to use this system to create a menu.
[1360] "Mood" refers to the type or style of cuisine that the user desires (e.g., "Chinese," "Japanese," "Western," etc.).
[1361] "Period" refers to a specified number of days and serves as the unit for generating menus.
[1362] "Input method" refers to an interface or device that allows users to input their mood or time period.
[1363] A "database" refers to a data storage system where recipe candidates and other related information are stored.
[1364] "Means of acquisition" refers to a system or program that has the function of retrieving information from a database according to the entered mood or time period.
[1365] "Selection method" refers to a system or program that has the function of randomly selecting from acquired dish candidates based on specific logic or conditions.
[1366] "Means of provision" refers to a system or program that has the function of notifying or displaying randomly selected dishes to the user.
[1367] A "menu list" refers to a list of selected dishes, organized by day.
[1368] An "error message" refers to a warning message displayed when the entered mood or other information does not exist in the system's database.
[1369] This invention relates to a system that automatically creates meal plans according to the user's mood and timeframe, and aims to reduce the effort required to plan meals, especially in busy households. Specific embodiments of the system are described below.
[1370] System Overview
[1371] Users access the system via a web browser using a device (e.g., PC, smartphone). The device provides an interface for entering a mood (e.g., "Chinese," "Japanese," "Western," etc.) and a duration (number of days). Once the user enters and submits this information, the server receives the request and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes corresponding to each day from the retrieved suggestions to generate a menu list, which is then provided to the user.
[1372] Hardware and software to be used
[1373] This system is implemented using the following hardware and software.
[1374] hardware
[1375] 1. User's device: A device capable of running a web browser, such as a PC or smartphone.
[1376] 2. Server: A server that receives requests and performs backend processing to generate menus.
[1377] 3. Database: A storage system such as SQLite or PostgreSQL for saving recipe candidates.
[1378] software
[1379] 1. Web browser: A client-side application used by users to interact with an interface.
[1380] 2. Flask: A Python framework for server-side processing.
[1381] 3. SQLAlchemy: An ORM (Object-Relational Mapping) library for performing database operations.
[1382] 4. JavaScript: A scripting language used to process and display responses on the client side.
[1383] Data processing and data calculation
[1384] The system performs data processing and calculations in the following steps:
[1385] 1. User enters mood and duration: The user enters their mood (e.g., "Japanese style") and duration (e.g., "7 days") using a web browser interface.
[1386] 2. The terminal sends the request to the server: The terminal converts the entered data into JSON format and sends it to a specific endpoint on the server using the POST method.
[1387] 3. The server receives the request: The server receives the request and retrieves the data at an endpoint for processing.
[1388] 4. Server accesses database: The server retrieves suitable dish candidates from the database using SQL queries based on its mood.
[1389] 5. The server generates the menu list: It randomly selects dishes for the specified number of days from the retrieved dish candidates and generates a menu list.
[1390] 6. Server generates response: Converts the generated menu list into JSON format and sends it to the terminal as a response.
[1391] 7. The device receives and displays the response: The device receives the response and displays it on the screen in a way that is visible to the user. This allows the user to check menus that are suitable for their mood or time period.
[1392] Examples of specific cases and prompt statements
[1393] When a user wants the system to generate a 7-day menu with a "Japanese" theme, the following prompt message is used:
[1394] Example of a prompt:
[1395] "Please generate a 7-day menu with a Japanese theme."
[1396] Based on this prompt, the system retrieves dish candidates corresponding to "Japanese style" from the database (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.), randomly generates a 7-day menu, and provides it to the user. Specifically, a menu list like the following may be generated.
[1397] Example of a generated menu list:
[1398] "Sukiyaki, teriyaki chicken, sashimi, sukiyaki, teriyaki chicken, sashimi, sukiyaki"
[1399] Through the above process, this automated menu creation system enables users to easily generate menus that suit their mood and timeframe.
[1400] The flow of the specific processing in Example 1 will be explained using Figure 11.
[1401] Step 1:
[1402] The user enters their mood and duration. On the device interface (e.g., a web browser), the user enters their mood (e.g., "Chinese," "Japanese," "Western") and duration (e.g., "7 days"). Input formats include text fields and dropdown menus. The user enters "Japanese" and "7 days" and clicks the submit button.
[1403] Input: User-selected mood and duration
[1404] Output: Input data acquired by the terminal (Mood: "Japanese style", Duration: 7)
[1405] Step 2:
[1406] The device sends a request to the server. The device converts the input data into JSON format and sends it as an HTTP POST request to a specific endpoint on the server. This endpoint is specified in the URL for receiving requests.
[1407] Input: Information entered by the user on the form (mood and duration)
[1408] Output: Request data in JSON format (Example: {"mood": "Japanese style", "days": 7})
[1409] Step 3:
[1410] The server receives the request. The server uses the Flask framework to receive the request at the specified endpoint. The received data is retrieved and parsed in JSON format.
[1411] Input: Request data sent from the terminal
[1412] Output: Analyzed input data (Mood: "Japanese style", Period: 7)
[1413] Step 4:
[1414] The server accesses the database to retrieve potential dishes. The server uses an ORM such as SQLAlchemy to retrieve the corresponding dishes from the database based on the parsed data (mood: "Japanese style"). The database stores the dish names and their characteristics, and the server retrieves the data by issuing SQL queries.
[1415] Input: Analyzed input data
[1416] Output: Candidate dishes retrieved from the database (e.g., "Sukiyaki", "Teriyaki Chicken", "Sashimi")
[1417] Step 5:
[1418] The server generates a menu list. From the retrieved list of dish candidates, a dish corresponding to a specified period (e.g., 7 days) is randomly selected. The Python `random` module is used to randomly select from the dish candidates and generate the menu list.
[1419] Input: Candidate dishes and time period retrieved from the database
[1420] Output: Generated menu list (Example: "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki")
[1421] Step 6:
[1422] The server generates a response. The generated menu list is converted to JSON format and returned to the terminal as an HTTP response. The response is created using Flask's jsonify function.
[1423] Input: Generated menu list
[1424] Output: JSON-formatted response data sent to the terminal (Example: {"menu": ["Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki"]})
[1425] Step 7:
[1426] The device receives the response and displays it on the screen. The device's JavaScript code receives the response from the server and dynamically updates the HTML document to display the menu list.
[1427] Input: JSON-formatted response data sent from the server.
[1428] Output: Menu list displayed in the browser (Example: "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki", "Teriyaki Chicken", "Sashimi", "Sukiyaki")
[1429] Through the steps described above, this automated meal planning system enables users to easily generate meal plans that suit their mood and timeframe.
[1430] (Application Example 1)
[1431] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1432] Busy housewives and working parents face challenges in reducing the effort required to plan daily meals and efficiently ordering ingredients. There is a need for a system that easily generates meal plans based on the user's mood and timeframe, provides a list of corresponding ingredients, and allows for all orders to be placed in one go. Furthermore, a function that provides appropriate notifications when a requested dish is not found in the database is essential.
[1433] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[1434] In this invention, the server includes means for inputting the user's mood and duration; means for retrieving dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; means for generating a list of necessary ingredients based on the selected dishes; and means for providing the generated ingredient list to the user and allowing them to order the ingredients on the spot. This makes it possible for the user to easily and automatically generate a menu that suits their mood and the number of days, and to quickly order the necessary ingredients.
[1435] A "user" is a user who uses the system to generate menus and order ingredients.
[1436] "Mood" refers to input information that users use to specify the genre or style of cuisine for the day, including examples such as Chinese, Japanese, and Western.
[1437] "Period" refers to the number of days specified by the user when generating the menu.
[1438] A "database" is a storage location where recipe ideas and information about the necessary ingredients are kept, and the system uses this information to retrieve it.
[1439] "Cooking options" refer to multiple dish choices stored in the database, which are offered to the user according to their specified mood.
[1440] "Random selection" is the operation of randomly selecting a dish from a list of dish candidates retrieved from a database using a specific algorithm.
[1441] A "food ingredient list" refers to a list of ingredients needed based on the selected dish, provided in a format that allows users to easily check and order them.
[1442] An "order" is the process by which a user purchases ingredients based on a generated list of ingredients.
[1443] An "error message" is a notification displayed when the mood entered by the user does not exist in the database, informing the user of the mistake.
[1444] "Display means" refers to devices or functions that visually provide users with generated menu lists or ingredient lists.
[1445] This invention is a system that automatically generates a menu based on the mood and time period entered by the user and provides a list of necessary ingredients. A specific embodiment of this system is shown below.
[1446] System Configuration
[1447] This system mainly consists of the following components.
[1448] 1. User's device:
[1449] It provides a GUI (Graphical User Interface) for users to input their mood and duration on devices such as smartphones and tablets.
[1450] The application will be developed using React Native.
[1451] 2. Server:
[1452] The system receives requests from users, retrieves dish suggestions from the database, and randomly generates menus.
[1453] Amazon Web Services (AWS) EC2 will be used for the server.
[1454] API endpoints are managed by AWS API Gateway, and data processing is performed using Node.js.
[1455] 3. Database:
[1456] AWS RDS using MySQL is used to manage information about various dishes and their ingredients.
[1457] Program processing
[1458] 1. The user enters their mood and duration on the device:
[1459] The user enters information such as "Japanese style" and "7 days".
[1460] The input data is sent to the server in JSON format.
[1461] 2. The server receives the request and retrieves recipe candidates from the database:
[1462] The API endpoint receives the request, and a Node.js script executes the database query.
[1463] Retrieve the corresponding dish candidates.
[1464] 3. Generate a menu randomly:
[1465] The system randomly selects 7 days' worth of menus from the acquired recipe candidates and generates a list of ingredients needed for each dish.
[1466] The system returns a list of dishes and ingredients to the client in JSON format.
[1467] 4. The device displays the menu and ingredient list and provides an ordering function:
[1468] The received JSON data is displayed visually so that the user can verify it.
[1469] Provide links or buttons for ordering ingredients on the spot.
[1470] Specific example
[1471] 1. Example of a prompt:
[1472] The following request is sent to the server as a prompt:
[1473] curl -X POST "https: / / api.example.com / generateMenu" -H "Content-Type: application / json" -d '{
[1474] "mood": "Japanese style",
[1475] "duration": "7"
[1476] }'
[1477] 2. Example response:
[1478] The server returns a menu list and an ingredient list in JSON format, as shown below.
[1479] json
[1480] {
[1481] "menu": [
[1482] "Sukiyaki",
[1483] "Teriyaki Chicken",
[1484] "sashimi",
[1485] "Oden",
[1486] "Tempura",
[1487] "Shabu-shabu",
[1488] "Nikujaga"
[1489] ],
[1490] "ingredients": [
[1491] "beef",
[1492] "soy sauce",
[1493] "Fish for sashimi",
[1494] "Ingredients for oden",
[1495] "Tempura flour",
[1496] "pork",
[1497] "Potato"
[1498] ]
[1499] }
[1500] Hardware and software used
[1501] Server: Amazon Web Services (AWS) EC2
[1502] Database: AWS RDS (MySQL)
[1503] Client app: iOS / Android app (React Native)
[1504] API Gateway: AWS API Gateway
[1505] Processing JSON data: JavaScript (Node.js)
[1506] This invention makes it easy for busy housewives and working parents to generate meal plans tailored to specific timeframes and quickly order the necessary ingredients.
[1507] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[1508] Step 1:
[1509] The user enters their mood and duration into their device. Specifically, the user enters information such as "Japanese style" and "7 days" into a smartphone or tablet application. The entered data is converted into JSON format and prepared to be sent to the server.
[1510] Input: Mood (e.g., "Japanese style"), Duration (e.g., "7 days")
[1511] Output: Request data in JSON format
[1512] Specific actions: Enter your mood and duration in the designated fields, then tap the confirmation button.
[1513] Step 2:
[1514] The device sends a request to the server. JSON formatted data from the device is sent to the server's API endpoint via a POST request.
[1515] Input: Request data in JSON format
[1516] Output: Sending a request to the server
[1517] Specific action: Executing an HTTP POST request
[1518] Step 3:
[1519] The server receives the request and retrieves recipe candidates from the database. A Node.js script processes the request and queries the MySQL database to retrieve "Japanese-style" recipe candidates.
[1520] Input: Request data in JSON format, query conditions (based on mood)
[1521] Output: List of recipe candidates
[1522] Specific operation: Issue queries to a MySQL database and retrieve results.
[1523] Step 4:
[1524] The server randomly selects dishes corresponding to each period from the dish candidates it has acquired. Seven days' worth of dishes are randomly selected from the list of dish candidates using Python's random module.
[1525] Input: List of dish suggestions
[1526] Output: A list of 7 randomly selected recipes.
[1527] Specific operation: Generating a list of dishes using a random module.
[1528] Step 5:
[1529] The server generates a list of necessary ingredients based on the selected dish. It retrieves ingredient information related to each dish from the database and compiles the overall ingredient list.
[1530] Input: A randomly selected list of 7 meals
[1531] Output: Corresponding ingredient list
[1532] Specific operation: Retrieve ingredient information from the database and generate a list.
[1533] Step 6:
[1534] The server returns the generated menu list and ingredient list to the client in JSON format. The generated data is converted to JSON format and sent to the client.
[1535] Input: Menu list, ingredient list
[1536] Output: Response data in JSON format
[1537] Specific actions: Generation and transmission of response data
[1538] Step 7:
[1539] The terminal displays the menu and ingredient list received from the server and provides them to the user. The application parses the received JSON data and displays it visually. Buttons or links are also provided that allow the user to order the necessary ingredients on the spot.
[1540] Input: Response data in JSON format
[1541] Output: Visually displayed menu list and ingredient list
[1542] Specific actions: Parsing JSON data, displaying it on the screen, and providing a food ordering function.
[1543] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[1544] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe, and aims to reduce the effort required for busy housewives and working parents to plan meals. Furthermore, by combining this with an emotion engine that recognizes the user's emotions and suggests menus based on those emotions, more personalized and appropriate menu suggestions become possible.
[1545] The following program and its processing flow are shown as an embodiment of this system.
[1546] System Overview
[1547] When a user accesses the system using a terminal, the terminal provides an interface for entering their mood (e.g., "Chinese," "Japanese," "Western," etc.) and duration (number of days). Furthermore, an emotion engine recognizes the user's current mood and sends that information to the server. Once the user enters and submits this information, the server receives the request and retrieves corresponding dish candidates from the database. The server then randomly selects dishes corresponding to each day from the retrieved candidates to generate a menu list, which is then provided to the user.
[1548] Program processing
[1549] The server sets up a specific endpoint to receive requests from users. At the endpoint, it receives data on the user's mood, duration, and emotions recognized by the emotion engine, and retrieves corresponding dish suggestions from the database. The server then randomly selects dishes from the retrieved suggestions to create a menu list.
[1550] For example, if a user requests a 7-day menu in a "Japanese style" mood, and the emotion engine recognizes the user's mood as "stressed," the server retrieves "Japanese style" dishes with a "relaxing effect" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database. Then, it randomly selects 7 days' worth of menus to generate a list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki").
[1551] The server returns the generated menu list to the user in JSON format, and the system completes by displaying the received data in a way that the user can easily see. This process allows users to easily automatically generate menus that match not only their mood and the number of days, but also their emotions.
[1552] Furthermore, if the entered mood does not exist in the database or if the emotion engine fails to accurately recognize the emotion, the server generates an error message and notifies the user. This error handling feature makes the system easier to use. In addition, the generated menu list is visually displayed on the terminal, improving user convenience.
[1553] This invention significantly reduces the time and effort required for busy housewives and working parents to plan their daily meals, enabling them to efficiently create daily meal plans. This allows for optimal menu suggestions tailored to each user's individual circumstances, supporting a healthy and satisfying diet.
[1554] The following describes the processing flow.
[1555] Step 1:
[1556] The user accesses the system through a terminal and displays the interface. The terminal displays options to use mood, duration, and emotion engines.
[1557] Step 2:
[1558] The user inputs their mood (e.g., "Chinese," "Japanese," "Western," etc.) and duration (number of days). Additionally, the device's built-in camera and microphone are used by an emotion engine to analyze the user's facial expressions and voice tone, thereby recognizing their emotions.
[1559] Step 3:
[1560] The terminal converts the input mood, duration, and emotion recognized by the emotion engine into JSON format and sends it to the server.
[1561] Step 4:
[1562] The server parses the JSON data received at the endpoint and extracts mood, duration, and sentiment information. It then checks if the mood specified by the user exists in the database.
[1563] Step 5:
[1564] If the mood is not found in the database, the server generates an error message and sends it back to the terminal with HTTP status code 400. The terminal receives this and displays the error message to the user.
[1565] Step 6:
[1566] The server retrieves dish candidates from the database that correspond to the mood entered. In this process, it also takes into account the emotions recognized by the emotion engine; for example, if the mood is "stressed," it prioritizes retrieving dishes with relaxing effects.
[1567] Step 7:
[1568] The server randomly selects dishes from a list of dish candidates for a specified period (number of days) and generates a menu list.
[1569] Step 8:
[1570] The server generates a menu list, converts it to JSON format, and sends it to the user's terminal. This includes the name and a brief description of each dish.
[1571] Step 9:
[1572] The device parses the received JSON data and displays it to the user in a visually understandable format. This allows the user to easily check their daily meal plans.
[1573] As a concrete example, if a user requests a 7-day menu in a "Japanese mood," and the emotion engine recognizes the user's mood as "stressed," the server retrieves "Japanese-style" dishes with "relaxing effects" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database and randomly selects dishes for the 7 days. As a result, the generated menu list (e.g., "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki," "teriyaki chicken," "sashimi," "sukiyaki") is provided to the user.
[1574] The above explains the program's processing steps by breaking them down into specific steps.
[1575] (Example 2)
[1576] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1577] In modern society, many users, especially busy housewives and working parents, spend a great deal of time and effort deciding on their daily menus. Furthermore, while providing meals tailored to the user's mood and emotions is expected to improve meal satisfaction, current systems struggle to make suggestions that take emotions into account. Therefore, there is a need for an automated menu creation system that reflects not only the user's mood and timeframe, but also their emotions.
[1578] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[1579] In this invention, the server includes means for inputting the user's mood, duration, and emotions; means for retrieving appropriate dish candidates from a database based on the input mood, duration, and emotions; means for randomly selecting dishes corresponding to each duration from the retrieved dish candidates; and means for providing the selected dishes to the user. This makes it possible for users to easily generate menus that match their mood, duration, and emotions, making their daily meal planning efficient and satisfying.
[1580] "Mood" refers to the style or preference of the cuisine that the user desires at that particular time. Examples include "Chinese," "Japanese," and "Western."
[1581] "Period" refers to the number of days for which the menu specified by the user will be provided. This includes a range from one day to several days.
[1582] "Emotion" refers to the user's current mental state. This represents the user's feelings as recognized by the emotion engine, such as "stressed" or "relaxed."
[1583] "Means of input" refers to interfaces or devices that allow users to provide moods, durations, and emotions to the system.
[1584] "Means of acquisition" refers to a system or program that searches a database for and acquires suitable dish candidates based on the entered mood, time period, and emotions.
[1585] "Means of selection" refers to methods or devices for randomly selecting dishes from acquired dish candidates that correspond to a specified period.
[1586] "Means of provision" refers to systems or programs that present selected dishes to users visually or digitally.
[1587] An "error message" refers to a notification message generated when the system fails to find a suitable dish or when there is an input mismatch.
[1588] A "menu list" refers to a list of selected dishes combined together. This list includes dishes for a number of days specified by the user.
[1589] "Means of display" refers to digital screens or displays used to show generated menu lists and error messages to users in a visually apparent manner.
[1590] Modes for carrying out the invention
[1591] This invention relates to a system that automatically creates menus based on the user's mood, timeframe, and emotions. The system aims to reduce the effort required for users to plan meals and to provide optimal meal suggestions tailored to their mood at any given time. To implement this system, the following hardware and software are used to perform specific processing.
[1592] Hardware and software
[1593] 1. Terminal: A device used by the user to access the system and input mood, duration, and emotions. Examples include smartphones, tablets, and personal computers.
[1594] 2. Emotion Engine: Software used to recognize the user's emotions. This may involve using services such as the "Emotion API".
[1595] 3. Server: A central system for receiving user input data, retrieving recipe suggestions from the database, and generating a menu list.
[1596] 4. Database: A system for storing cooking information. Relational databases such as "MySQL" are used.
[1597] Process Overview
[1598] 1. User Input: An interface is provided for the user to access the system by operating a terminal and inputting their mood (e.g., "Chinese," "Japanese," "Western") and duration (number of days).
[1599] 2. Emotion Recognition and Transmission: The emotion engine installed in the device analyzes the user's facial expressions and voice to acquire emotion data. This emotion data, along with the entered mood and duration, is sent to the server.
[1600] 3. Server processing: The server receives requests from users (mood, duration, sentiment data) at specific endpoints and retrieves corresponding dish candidates from the database.
[1601] 4. Generating the menu list: Randomly select dishes corresponding to each period from the acquired dish candidates and generate a menu list for the specified number of days.
[1602] 5. Returning and displaying results: The server returns the generated menu list to the user in JSON format, which the terminal receives and displays visually.
[1603] 6. Error Handling: If the entered mood does not exist in the database or if the emotion engine is unable to accurately recognize the emotion, the server will generate an error message and notify the user.
[1604] Specific examples of operation
[1605] Example: Suppose a user requests a 7-day menu in a "Japanese style" mood, and the emotion engine recognizes that the user is "stressed." In this case, the server retrieves "Japanese style" dishes with a "relaxing effect" (e.g., "sukiyaki," "teriyaki chicken," "sashimi," etc.) from the database, randomly selects dishes for 7 days, and generates a menu list.
[1606] Example of a prompt
[1607] The following are specific examples of prompt statements to be input into the generating AI model.
[1608] Example: "If a user requests a 7-day menu in a 'Japanese-style' mood, and the emotion engine detects 'stress,' please suggest dishes with a relaxing effect."
[1609] Using this prompt allows the system to suggest accurate and appropriate menus. This enables users to plan their daily meals efficiently and with greater satisfaction.
[1610] The flow of the specific processing in Example 2 will be explained using Figure 13.
[1611] Step 1:
[1612] The user accesses the system using a terminal. The terminal displays an interface for entering a mood (e.g., "Chinese," "Japanese," "Western") and duration (number of days). The user then enters their desired mood and duration and sends it to the system. As a specific example, the user selects "Japanese" and "7 days" and submits it.
[1613] Input: mood, duration
[1614] Output: Mood and time period data
[1615] Step 2:
[1616] The emotion engine built into the device recognizes the user's current emotions. The emotion engine analyzes the user's facial expressions and voice, and acquires emotional state data. This emotional data, along with the input mood and duration data, is sent to the server. As a concrete example, the emotion engine scans the user's face and generates emotional data indicating "stressed."
[1617] Input: User's facial expressions, voice
[1618] Output: Sentiment data
[1619] Step 3:
[1620] The server receives requests from users (mood, duration, and emotion data) at a specific endpoint. The server parses the received data and prepares to search the database for appropriate recipes based on mood, duration, and emotion. Specifically, the server parses the data received in JSON format and processes it as "Mood: Japanese style", "Duration: 7 days", and "Emotion: Stressed".
[1621] Input: Mood, duration, emotional data
[1622] Output: Analyzed data
[1623] Step 4:
[1624] The server queries the database to retrieve relevant dish candidates. Specifically, the server executes an SQL query to search for "Japanese-style" dishes with "relaxing effects," retrieving items such as "sukiyaki," "teriyaki chicken," and "sashimi." This process extracts dish information that matches specific criteria based on the retrieved data.
[1625] Input: Analyzed data
[1626] Output: List of recipe candidates
[1627] Step 5:
[1628] The server randomly selects dishes from a list of dish candidates for a specified period and generates a menu list. The server uses a program such as Python to perform the random selection. For example, it might generate a menu list for 7 days that includes "Sukiyaki," "Teriyaki Chicken," "Sashimi," "Sukiyaki," "Teriyaki Chicken," "Sashimi," and "Sukiyaki."
[1629] Input: List of recipe suggestions
[1630] Output: Menu list
[1631] Step 6:
[1632] The server generates a menu list and sends it back to the user in JSON format. Upon receiving this data, the device displays it in a format visible to the user using HTML or JavaScript. Specifically, the device parses the returned JSON data and displays it in list format.
[1633] Input: Menu list
[1634] Output: Display to the user
[1635] Step 7:
[1636] If the entered mood does not exist in the database, or if the emotion engine is unable to accurately recognize the emotion, the server generates an error message and notifies the user. For example, it might create and display a message such as "No matching dishes were found."
[1637] Input: Error information
[1638] Output: Error messages and notifications
[1639] (Application Example 2)
[1640] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1641] This invention relates to an automated menu creation system that adapts to the user's mood and timeframe. However, conventional systems have the problem of not being able to suggest menus that take the user's emotions into account. As a result, optimal menu suggestions are not made that are tailored to situations in which the user is feeling stressed or happy, making it difficult to provide a highly satisfying dining experience. Furthermore, while combining facial recognition technology and emotion analysis technology could enable more effective menu suggestions tailored to the user's emotional state, challenges remain in realizing such a system.
[1642] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[1643] In this invention, the server includes means for inputting the user's mood and duration; means for obtaining dish candidates from a database corresponding to the input mood and duration; means for randomly selecting dishes corresponding to each duration from the obtained dish candidates; means for providing the selected dishes to the user; means for performing facial recognition and emotion analysis; and means for suggesting the most suitable dishes based on the user's emotions. This makes it possible to suggest menus that are appropriate to the user's current emotional state.
[1644] "User" refers to an entity that uses the system to generate menus based on its own mood and timeframe.
[1645] "Mood" refers to information that indicates the user's preferences and emotional state regarding the genre and type of food.
[1646] "Period" refers to information indicating the time range or number of days for which menu suggestions are to be made.
[1647] "Means for input" refers to an interface that allows users to provide the system with information about their mood or time period.
[1648] "Means of acquisition" refers to the system's function of retrieving dish candidates that match the specified criteria from the database.
[1649] "Means for random selection" refers to a function that randomly selects dishes from the acquired dish candidates according to each period.
[1650] "Means of providing" refers to the function of presenting the selected dishes to the user visually or digitally.
[1651] "Facial recognition" refers to a technology that uses a camera to identify a user's face and acquire image data of it.
[1652] "Emotional analysis" refers to a technology that analyzes a user's emotional state based on acquired facial image data.
[1653] "Means of making suggestions" refers to a function that selects and provides the most suitable dish to the user based on analyzed emotional data and the user's input mood.
[1654] An "error message" refers to a warning message that the system sends when there is a problem with the user's input.
[1655] "Means for displaying" refers to the function of presenting the generated menu list and other important information on the user's device.
[1656] A "terminal" refers to a device used by a user to access a system and operate its interface.
[1657] This invention relates to an automated menu creation system based on the user's mood, timeframe, and emotions, and is particularly intended for application in physical stores. This system aims to improve user satisfaction by using a smartphone application to recognize the user's emotions and, based on that information, suggesting the most suitable menu to be offered in the store. Specific embodiments of this system are described below.
[1658] Hardware configuration
[1659] First, a smartphone, which is the user's device, and a network system including a server are required.
[1660] A smartphone is a device that has a camera function and can connect to the internet.
[1661] The server handles the overall system processing and is built using Node.js and the Express framework.
[1662] Software Configuration
[1663] It consists of a smartphone application and a server-side backend system.
[1664] Smartphone application: Provides an interface for inputting and recognizing the user's mood, duration, and emotions.
[1665] Server-side backend system: Performs tasks such as database operations, facial recognition, emotion analysis, retrieval of recipe candidates, and recipe suggestions.
[1666] Specific technologies to be used
[1667] Face Recognition and Emotion Analysis: Using OpenCV and the Google Cloud Vision API, we recognize users' faces and analyze their emotions.
[1668] Database: Use Firebase Firestore and similar tools to manage recipe suggestions and user data.
[1669] The server uses Node.js and is implemented on the Express framework.
[1670] System operation procedures
[1671] 1. User input operations:
[1672] The user launches a smartphone application and points their face at the camera.
[1673] Use the application interface to enter your current mood (e.g., "Japanese style," "Western style," etc.) and duration (e.g., "7 days").
[1674] 2. Facial Recognition and Emotion Analysis:
[1675] The user's face is captured using the smartphone's camera.
[1676] It performs facial recognition and analyzes specific emotions (e.g., "stressed").
[1677] 3. Data transmission:
[1678] The recognized emotion data, mood, and duration are sent to the server.
[1679] 4. Data acquisition and recipe suggestions:
[1680] The server retrieves dish suggestions that are appropriate for the mood and feelings entered from Firebase Firestore.
[1681] The system randomly selects dishes corresponding to each period from the acquired dish candidates and generates the optimal menu to offer to users.
[1682] 5. Menu presentation and ordering:
[1683] The generated menu is displayed in the smartphone application.
[1684] Users can select and order the suggested dishes.
[1685] Specific example
[1686] When a user launches the app and points their face at the built-in camera, the emotion engine recognizes that the user is "stressed." Based on this, the app suggests relaxing dishes (e.g., "ochazuke" or "hot udon"), and the user can then order them directly through the app.
[1687] Example of a prompt:
[1688] User: Launch the app and point your face at the camera.
[1689] System: The system has analyzed your emotions as "stressed." We suggest a menu with relaxing effects.
[1690] System: The following dishes are suggested: "Ochazuke" (rice with tea poured over it) and "Hot Udon" (udon noodles).
[1691] User: I select hot udon and place my order.
[1692] As described above, this system can improve customer satisfaction in physical stores. Furthermore, by taking into account not only the user's mood but also their emotions, it becomes possible to provide more personalized and optimal menu suggestions.
[1693] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[1694] Step 1:
[1695] The user launches a smartphone application and points their face at the built-in camera.
[1696] Operation: The smartphone's camera captures the user's face and acquires image data.
[1697] Input: User's face image
[1698] Output: Acquired facial image data
[1699] Step 2:
[1700] The device performs facial recognition and emotion analysis.
[1701] Operation: Using OpenCV and the Google Cloud Vision API, it identifies the user's face from acquired facial images and then performs sentiment analysis.
[1702] Input: Face image data
[1703] Output: Analyzed emotion data (e.g., "Stressed")
[1704] Step 3:
[1705] The user enters their mood (e.g., "Japanese style," "Western style") and duration (e.g., "7 days") into the application interface.
[1706] Operation: The user enters their mood and duration using the application's input fields and presses the submit button.
[1707] Input: User's mood and duration information
[1708] Output: Input data for mood and duration
[1709] Step 4:
[1710] The device sends the entered mood and duration, along with the analyzed emotional data, to the server.
[1711] Operation: The device sends input data and emotion data to the server in JSON format.
[1712] Input: Mood, duration, emotional data
[1713] Output: Data request in JSON format
[1714] Step 5:
[1715] The server retrieves recipe candidates from the database.
[1716] Operation: Based on the request data received by the server, it searches for suitable recipe candidates from a database such as Firebase Firestore.
[1717] Input: Mood, duration, emotional data
[1718] Output: List of recipe candidates
[1719] Step 6:
[1720] The server randomly selects a dish from the retrieved dish candidates.
[1721] Operation: The server executes an algorithm that randomly selects dishes corresponding to each period from a list of dishes it has acquired.
[1722] Input: List of recipe suggestions
[1723] Output: List of selected dishes
[1724] Step 7:
[1725] The server sends a randomly selected list of dishes to the user's terminal.
[1726] Operation: The server returns the selected list of dishes to the user's terminal in JSON format.
[1727] Input: Selected list of dishes
[1728] Output: Recipe list in JSON format
[1729] Step 8:
[1730] The device displays a list of suggested dishes.
[1731] Function: Performs a function that visually displays the list of dishes received by the device.
[1732] Input: Recipe list in JSON format
[1733] Output: List of dishes displayed on the screen
[1734] Step 9:
[1735] The user selects their desired dish from the suggested options and places an order.
[1736] Operation: The user selects a dish and confirms the order by pressing the order button in the application.
[1737] Input: User's selected dish
[1738] Output: Order confirmation data
[1739] This will enable a system that suggests and allows users to order the optimal menu based on their emotions, mood, and timeframe.
[1740] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[1741] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1742] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the robot 414.
[1743] Furthermore, the emotion identification model 59, acting as an emotion engine, may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[1744] Figure 9 shows an emotion map 400 in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.
[1745] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.
[1746] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.
[1747] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, motorcycles, etc., emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.
[1748] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."
[1749] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.
[1750] The above description primarily focuses on the functions of the data processing device 12 in relation to this disclosure. However, the system related to this disclosure is not necessarily implemented on a server. The system related to this disclosure may be implemented as a general information processing system. This disclosure may be implemented, for example, as a software program that runs on a personal computer or as an application that runs on a smartphone. The method related to this disclosure may be provided to users in SaaS (Software as a Service) format.
[1751] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing of the specific process may be performed by multiple computers, including computer 22. For example, a data generation model 58 may be provided in an external device of the data processing device 12, and the external device may generate data according to the input data.
[1752] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.
[1753] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[1754] Furthermore, it is not necessary to store the entirety of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.
[1755] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.
[1756] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Alternatively, the hardware resource that performs a specific process may consist of a single processor.
[1757] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.
[1758] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.
[1759] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and the like that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.
[1760] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted as being incorporated by reference.
[1761] The following is further disclosed regarding the embodiments described above.
[1762] (Claim 1)
[1763] The user's mood and duration are input methods,
[1764] A means for obtaining dish suggestions from a database based on the entered mood and time period,
[1765] A method for randomly selecting a dish corresponding to each period from the acquired dish candidates,
[1766] Means of providing the selected dishes to the user,
[1767] A system that includes this.
[1768] (Claim 2)
[1769] The system according to claim 1, further comprising means for generating an error message and notifying the user if the entered mood does not exist in the database.
[1770] (Claim 3)
[1771] A means of displaying a list of dishes provided to the user,
[1772] The system according to claim 1, further comprising means for displaying on the user's terminal.
[1773] "Example 1"
[1774] (Claim 1)
[1775] The user's mood and duration are input methods,
[1776] A means for obtaining dish suggestions from a database based on the entered mood and time period,
[1777] A method for randomly selecting a dish corresponding to each period from the acquired dish candidates,
[1778] Means of providing the selected dishes to the user,
[1779] A method for creating a menu list by randomly selecting dishes from the acquired dish candidates,
[1780] A system that includes this.
[1781] (Claim 2)
[1782] The system according to claim 1, further comprising means for generating an error message and notifying the user if the entered mood does not exist in the database.
[1783] (Claim 3)
[1784] A display means for the list of selected dishes,
[1785] The system according to claim 1, further comprising means for displaying a list of selected dishes on the user's terminal.
[1786] "Application Example 1"
[1787] (Claim 1)
[1788] The user's mood and duration are input methods,
[1789] A means for obtaining dish suggestions from a database based on the entered mood and time period,
[1790] A method for randomly selecting a dish corresponding to each period from the acquired dish candidates,
[1791] Means of providing the selected dishes to the user,
[1792] A means for generating a list of necessary ingredients based on the selected dish,
[1793] A system that provides users with a generated list of ingredients and allows them to order ingredients on the spot,
[1794] A system that includes this.
[1795] (Claim 2)
[1796] The system according to claim 1, further comprising means for generating an error message and notifying the user if the entered mood does not exist in the database.
[1797] (Claim 3)
[1798] A display means for a list of dishes provided to the user and a generated list of ingredients,
[1799] The system according to claim 1, further comprising means for displaying on the user's terminal.
[1800] "Example 2 of combining an emotion engine"
[1801] (Claim 1)
[1802] A means for inputting the user's mood, duration, and emotions,
[1803] A means for retrieving appropriate dish candidates from a database based on the input mood, duration, and emotions,
[1804] A method for randomly selecting a dish corresponding to each period from the acquired dish candidates,
[1805] Means of providing the selected dishes to the user,
[1806] A system that includes means for generating a menu list to be provided to users.
[1807] (Claim 2)
[1808] The system according to claim 1, further comprising means for generating an error message and notifying the user if the entered mood does not exist in the database.
[1809] (Claim 3)
[1810] A means of displaying the menu list provided to the user,
[1811] The system according to claim 1, further comprising means for visually displaying on the user's terminal.
[1812] "Application example 2 when combining with an emotional engine"
[1813] (Claim 1)
[1814] A means for the user to input their mood and duration,
[1815] A means for retrieving dish suggestions from a database based on the entered mood and time period,
[1816] A means for randomly selecting a dish corresponding to each period from the acquired dish candidates,
[1817] Means for providing the selected dishes to the user,
[1818] A means for performing facial recognition and emotion analysis,
[1819] A means of suggesting the most suitable dish based on the user's emotions,
[1820] A system that includes this.
[1821] (Claim 2)
[1822] The system according to claim 1, further comprising means for generating an error message and notifying the user if the entered mood does not exist in the database.
[1823] (Claim 3)
[1824] A method for recognizing faces and analyzing emotions using the user's device camera,
[1825] Methods for using analyzed emotional data in recipe suggestions,
[1826] A means for displaying a list of dishes served to the user,
[1827] The system according to claim 1, further comprising means for displaying on the user's terminal. [Explanation of Symbols]
[1828] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots< / url:> < / url:> < / url:> < / url:>
Claims
1. The user's mood and duration are input methods, A means for obtaining dish suggestions from a database based on the entered mood and time period, A method for randomly selecting a dish corresponding to each period from the acquired dish candidates, Means of providing the selected dishes to the user, A system that includes this.
2. The system according to claim 1, further comprising means for generating an error message and notifying the user if the entered mood does not exist in the database.
3. A means of displaying a list of dishes provided to the user, The system according to claim 1, further comprising means for displaying on the user's terminal.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A