Systems, methods, and programs for generating travel plans

An AI-driven multi-agent system efficiently generates personalized travel plans by automating destination selection, route planning, and accommodation search, addressing the time-consuming nature of manual travel planning.

JP7868279B1Active Publication Date: 2026-06-01RAKUTEN GROUP INC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
RAKUTEN GROUP INC
Filing Date
2026-02-16
Publication Date
2026-06-01

AI Technical Summary

Technical Problem

Personalized travel arrangements require significant time and effort to generate a travel plan, including information gathering on tourist attractions and hotels.

Method used

A system utilizing AI and a multi-agent architecture to receive user input, determine destinations, plan a travel route, search for accommodations, and generate a travel plan efficiently.

Benefits of technology

Facilitates the generation of personalized travel plans with reduced time and effort by automating the process of destination selection, route planning, and accommodation search.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007868279000001_ABST
    Figure 0007868279000001_ABST
Patent Text Reader

Abstract

This document provides a system, method, and program for generating travel plans. [Solution] A method for generating a travel plan includes one or more processors receiving user input from a user terminal, determining a plurality of destinations based on the user input, determining the order in which to visit the plurality of destinations to determine a travel route including the plurality of destinations, searching for accommodation within a search range associated with the location information of the last of the plurality of destinations, generating a travel route by adding accommodation to the end of the travel route, and transmitting the travel plan including the travel route to the user terminal.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a system, a method, and a program for generating a travel plan.

Background Art

[0002] Generally, travel agencies provide reservation services for package tours that combine transportation means, tourist attractions, and hotels. As a technology related to such reservation services, for example, Patent Document 1 discloses a system that presents a travel plan desired by a user by asking the user various questions and obtaining answers thereto.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] Since travel information has become easily accessible through the Internet, the number of users who choose personalized travel arrangements that can be customized to their preferences rather than package tours has increased. However, personalized travel arrangements require time and effort to generate a travel plan, such as gathering information on tourist attractions, considering travel routes, and searching for hotels on a daily basis.

Means for Solving the Problems

[0005] A system for generating a travel plan according to one aspect of the present disclosure comprises one or more processors, the one or more processors being configured to perform the following: receive user input from a user terminal; determine a plurality of destinations based on the user input; determine the order in which to visit the plurality of destinations to determine a travel route including the plurality of destinations; search for accommodation within a search range associated with the location information of the last of the plurality of destinations; generate a travel route by adding the accommodation to the end of the travel route; and transmit the travel plan including the travel route to the user terminal.

[0006] A system for generating a travel plan according to one aspect of the present disclosure comprises one or more processors, the one or more processors configured to perform the following: receive user input including the travel destination from a user terminal; determine a plurality of destinations based on the user input; determine the order in which to visit the plurality of destinations to determine a travel route including the plurality of destinations; determine accommodation based on the user input; generate a travel route by adding the accommodation to the end of the travel route; and transmit the travel plan including the travel route to the user terminal.

[0007] A system according to one aspect of the present disclosure is a spatial graph construction system comprising one or more processors and a communication interface, wherein the one or more processors are configured to perform the following actions via the communication interface: receiving processing to receive a data generation request including unstructured data transmitted from an external terminal; parsing processing to extract geospatial parameters from the data generation request; node generation processing to generate a plurality of geospatial nodes based on the geospatial parameters; graph generation processing to generate a directed graph including the plurality of geospatial nodes by determining the order of the plurality of geospatial nodes; search processing to search for a terminal node from a search range associated with the last geospatial node among the plurality of geospatial nodes; concatenation processing to generate graph structure data by concatenating the terminal node to the end of the directed graph; and transmission processing to transmit the graph structure data to the external terminal via the communication interface.

[0008] A method for generating a travel plan according to one aspect of the present disclosure includes one or more processors receiving user input from a user terminal, determining a plurality of destinations based on the user input, determining a travel route including the plurality of destinations by determining the order in which to visit the plurality of destinations, searching for accommodation within a search range associated with the location information of the last of the plurality of destinations, generating a travel route by adding the accommodation to the end of the travel route, and transmitting the travel plan including the travel route to the user terminal.

[0009] A program for generating a travel plan according to one aspect of the present disclosure causes one or more processors to perform the following actions: receive user input from a user terminal; determine a plurality of destinations based on the user input; determine a travel route including the plurality of destinations by determining the order in which to visit the plurality of destinations; search for accommodation within a search range associated with the location information of the last of the plurality of destinations; generate a travel route by adding the accommodation to the end of the travel route; and transmit the travel plan including the travel route to the user terminal. [Brief explanation of the drawing]

[0010] [Figure 1] Figure 1 is a schematic diagram of the travel plan generation system according to the embodiment. [Figure 2] Figure 2 is a flowchart illustrating the processes performed by a travel agent. [Figure 3] Figure 3 is a flowchart illustrating the travel plan creation method described in this disclosure. [Figure 4] Figure 4 is a schematic diagram illustrating a chat screen of a travel agent. [Figure 5] Figure 5 is a schematic diagram showing a portion of the travel plan display page. [Figure 6] Figure 6 is a schematic diagram illustrating an editing chat box for editing a travel plan. [Figure 7] Figure 7 is a schematic diagram illustrating an example of a hotel slot included in a travel plan. [Figure 8] Figure 8 is a schematic diagram illustrating a re-selection screen for re-selecting hotels included in a travel plan. [Figure 9] Figure 9 is a schematic diagram illustrating a change chat box for changing hotels included in a travel plan. [Figure 10] Figure 10 is a schematic diagram illustrating the output screen of a travel plan. [Modes for carrying out the invention]

[0011] Examples of systems, methods, and programs for generating travel plans are described with reference to Figures 1 to 10. The present invention is not limited to these examples and is intended to include all modifications within the meaning and scope equivalent to the claims, as shown in the claims.

[0012] [System Overview] The travel plan generation system 11 shown in Figure 1 (hereinafter simply referred to as "System 11") is a data processing system configured to generate a travel plan according to user input conditions using AI (Artificial Intelligence). For example, System 11 may be a data structure processing system equipped with a multi-agent system (MAS) that generates a travel plan as structured data (e.g., JSON: JavaScript Object Notation) by applying various processes to user input, including unstructured data.

[0013] System 11 may include a service server 20 that provides a travel plan generation service via the Internet. The service server 20 may be implemented by a computer having, for example, one or more processors 21, one or more memory 22, and a communication interface 23. For convenience, the following description will explain an example in which the service server 20 has one processor 21 and one or more memory 22. The processor 21 is also called a server processor.

[0014] At least one of the one or more memories 22 may store a program 24 executed by the processor 21. The program 24 includes one or more applications and an operating system. The processor 21 implements various functions by executing multiple program codes contained in the program 24. The communication IF 23 enables communication with other devices (e.g., user terminal 30) via the network.

[0015] At least one of the memories 22 with a value of 1 or more may store a database 25. The database 25 may store user data for each of a plurality of registered users. The registered users may be users who have registered for use with the travel plan generation service, or may be users who have registered for use with other related services.

[0016] The user data may include, for example, the user ID, name, age, address, telephone number, email address, occupation, annual income, family composition, interests, concerns, and usage history of the services provided by the service server 20 for each user, but is not limited thereto.

[0017] The system 11 may include one or more user terminals 30 (external terminals). Hereinafter, an example in which the system 11 includes one user terminal 30 will be described. The user terminal 30 may be implemented by a computer including one or more processors 31, one or more memories 32, and a communication IF 33. The user terminal 30 may be a mobile terminal such as a smartphone, or may be a personal computer. Hereinafter, for convenience, a case in which the user terminal 30 includes one processor 31 and one memory 32 will be described.

[0018] The communication IF 33 enables communication with other devices (e.g., the service server 20) via a network. The user terminal 30 may include an output device 34 and an input device 35, or may be externally connected. The output device 34 may be, for example, a display. The user terminal 30 may include a touch panel which is an input / output device.

[0019] One or more applications include an AI agent configured to provide a travel plan generation service to the user terminal 30 that accesses the service server 20 through a network. Hereinafter, this AI agent will be referred to as a "travel agent". The travel agent may be a web application provided via a browser, or may be an application installed on the user terminal 30.

[0020] The service server 20 is configured to send display data to the user terminal 30 for displaying the chat screen 40, to obtain user input via the chat screen 40, and to output responses to user input, as part of the travel agent's functionality.

[0021] The travel agent may be one of a set of AI agent services provided by the service server 20. A sidebar 41 may be displayed on the side (e.g., left side) of the chat screen 40 for selecting one of the set of AI agents. The sidebar 41 may include, for example, multiple selection elements 42(42,42b) corresponding to multiple AI agents.

[0022] Each of the multiple AI agents may utilize one or more machine learning models 13 maintained on the service server 20 or one or more other servers. The one or more other servers may include one or more AI servers 12 included in system 11, or one or more AI servers 12 not included in system 11.

[0023] One or more AI servers 12 may provide one or more model APIs (Application Programming Interfaces) configured to receive processing requests. When the service server 20 sends a processing request including a prompt to the model API (AI server 12), the model API inputs the prompt to the machine learning model 13. When the machine learning model 13 outputs data generated based on the prompt,

[0024] The model API sends the generated data back to the service server 20 as a response. The service server 20 receives the returned response and obtains various data generated by the machine learning model 13. In this way, each of the multiple AI agents behaves as a generative AI by using the machine learning model 13 in conjunction with the model API.

[0025] One or more machine learning models 13 may include pre-trained models trained with training data containing ground truth data, or may include generative AI used for general purposes. The generative AI may be a language model that takes natural language as input in the form of speech or text. The language model may also be a Vision-Language Model (VLM) that can take images as input in addition to language.

[0026] A language model can be either a Large Language Model (LLM) or a Small Language Model (SLM). A Large Language Model is a language model trained using a large amount of text data. A Small Language Model is a language model that is smaller in scale than a Large Language Model (for example, with fewer parameters).

[0027] One or more machine learning models 13 may be general-purpose natural language processing (NLP) models that can adapt to various natural language processing tasks, such as information extraction, text summarization, text generation, or question-and-answer sessions, depending on the input prompt. The prompt may include instructions on what kind of output to produce.

[0028] Multiple AI agents may include, for example, a general agent that accepts any question and multiple specialist agents designed to provide expert answers. In Figure 1, the selection element 42a labeled "AI Agent" corresponds to the general agent, and each of the multiple selection elements 42b listed below the general agent corresponds to a different specialist agent.

[0029] Each AI agent may operate as a generative AI chatbot that autonomously generates responses to user input in various data formats, such as free-form text, voice, images, or videos, by linking with a model API of a natural language processing model used for general purposes. The chatbot may interact with the user via the chat screen 40.

[0030] Each of the multiple AI agents may contain multiple program codes for performing a corresponding task. Each program code may be distinguished by a name corresponding to the processing performed by the processor 21 through the execution of the corresponding program code. For example, a receiving process for receiving user input may be implemented by a "receiving code". Hereinafter, among the processing performed by the processor 21 through the execution of multiple program codes, processing implemented by the travel agent and one or more sub-agents will be described as being performed by the travel agent and one or more sub-agents, respectively.

[0031] [Travel agent chat screen] If the selection element 42b displaying the word "Travel" is selected from among several specialist agents, the Travel Agent chat screen 40 may be displayed on the main screen on the right side of the sidebar 41. The chat screen 40 may also be the initial screen when the Travel Agent is launched. The chat screen 40 is an example of a display screen for responses generated by the AI.

[0032] The chat screen 40 may include a login button 43 (labeled "Sign In" in Figure 1) for the user to log in. When a user registers for the service, user data is generated in the database 25. This allows the user to log in to the travel agent. When a user logs in, the travel agent may save the user's chat history as user data and refer to user data when responding to user input.

[0033] The chat screen 40 may include an explanatory text 44 for describing the functions of the travel agent and a free-form input field 45. In addition to text, the input field 45 may also allow voice and image input.

[0034] The chat screen 40 may include a generate button 46 (labeled "Travel Plan" in Figure 1) which is selected when requesting the generation of a travel plan. The chat screen 40 may further include a hotel search button 47 (labeled "Find a Hotel" in Figure 1) for searching for a hotel. If the chat screen 40 includes both the generate button 46 and the hotel search button 47, it may be possible to select either the generate button 46 or the hotel search button 47 alternately.

[0035] In this disclosure, "hotel" is used not as a limited term for hotels that provide Western-style structures and facilities, but as a general term for accommodations that provide any structure and facilities, including ryokans (Japanese inns) that provide Japanese-style structures and facilities.

[0036] The user terminal 30 sends user input entered via the chat screen 40 to the service server 20. User input includes characters, images, or audio entered in natural language in the input field 45. User input may also include a generation flag indicating that the generation button 46 has been selected, or a hotel flag indicating that the hotel search button 47 has been selected.

[0037] User input for generating a travel plan may need to include at least the travel destination. The destination may be a place name, area name, city / town name, street name, or region name, but is not limited to these; it should include geospatial information.

[0038] When the service server 20 receives user input, including the destination, from the user terminal 30, the orchestrator 26 retrieves the user input. If the user input does not include the generation flag and the hotel flag, the orchestrator 26 generates a response to the user input in question-and-answer mode (normal mode).

[0039] If the user input includes a generation flag, the orchestrator 26 uses the generation AI to determine that the user input includes a request to generate a travel plan. As a result, the orchestrator 26 dynamically switches from normal mode to generation mode and executes the generation of the travel plan. If the user input includes a hotel flag, the orchestrator 26 dynamically switches from normal mode to hotel mode and executes a hotel search.

[0040] By default, the travel agent responds to user input in normal mode. In normal mode, the travel agent analyzes the intent behind each user input and provides a response that aligns with that intent. In generation mode, the travel agent responds to user input with "generating a travel plan" as its main task. In hotel mode, the travel agent responds to user input with "searching for hotels (accommodations)" as its main task.

[0041] [Multi-agent system] The travel agent may implement a multi-agent system that includes an orchestrator agent (hereinafter referred to as "orchestrator 26") and multiple sub-agents. The multiple sub-agents may include, but are not limited to, a planning agent 27, a route agent 28, and a hotel agent 29. For example, a different sub-agent may be provided for each subtask, or one sub-agent may be responsible for multiple subtasks.

[0042] The orchestrator 26 may be configured to parse user input received from the user terminal 30. User input may include a user request (hereinafter simply referred to as "request") written in natural language text entered in the input field 45, as well as a generation flag selected by the generate button 46. In this case, the user input includes a request, which is unstructured data, and a generation flag, which is a data generation request. A statement such as "Generate a travel plan" included in the request also constitutes a data generation request.

[0043] The orchestrator 26 may be configured to determine the main task to be executed, to break down the main task to identify multiple subtasks, to determine the execution order of the multiple subtasks, and to determine multiple subagents to execute the multiple subtasks by analyzing the user intent contained in the user input.

[0044] The orchestrator 26 may, by parsing the user input, identify a main task for responding to the request and several subtasks for implementing the main task. For example, if the user input includes a generation flag, the orchestrator 26 may identify the main task as "generate a travel plan." In this case, the orchestrator 26 may identify two or more of the following subtasks as subtasks, but is not limited to these.

[0045] • Web search to find potential destinations (hereinafter referred to as the "web search task") • Determining the destination through verification of candidate sites (hereinafter referred to as the "verification task") • Geocoding of location information (hereinafter referred to as "geocoding task") • Route search (hereinafter referred to as the "route search task") • Hotel search (hereinafter referred to as the "hotel search task")

[0046] The orchestrator 26 may determine one or more subagents that should be responsible for multiple subtasks, and the execution order of the multiple subtasks. Depending on the execution order, the orchestrator 26 may generate an execution command (prompt) to be input to the first subagent responsible for the first subtask by utilizing a natural language processing model via a model API. The execution command may be, for example, a structured command object that defines the command to the subagent. The structured command object may include, for example, an execution context (a set of background information that serves as the basis for the decision).

[0047] Prior to generating execution instructions, the orchestrator 26 may tokenize (decompose) the unstructured data, the request (natural language text), and parse it. The parsing process may include assigning an identifier (converting it to a number) to each token and converting it into a sequence of token identifiers. For example, the orchestrator 26 may extract one or more parameters from the request, such as a destination (geospatial parameter), number of days (time parameter), and number of people (quantitative parameter), using the attention mechanism of a natural language processing model. The orchestrator 26 may normalize the extracted parameters and define them as constraints, such as geographical conditions, temporal conditions, and quantitative conditions.

[0048] The orchestrator 26 may generate a structured instruction object containing an action prompt that can be executed by a first subagent, based on the quantified user input. The action prompt may include constraints (parameters) based on the request and an instruction prompt that defines what to do. The instruction prompt may include, but is not limited to, a processing instruction indicating a task, such as "Perform a search" or "Find a route," and instructions on how to output the results of the subtask processing.

[0049] The output method instructions may include the output format of the subtask processing results and the specification of the subagent that will use the task output. The orchestrator 26 may dynamically control pipeline processing by multiple subagents by specifying the subagent that will next execute the subtask. Hereinafter, the processing results of subtasks output by a subagent will be referred to as subtask output.

[0050] In this disclosure, for the sake of simplification, it may be written as "the output of the first subtask of the first subagent is input to the second subagent," but in reality, the first subagent may store the output of the first subtask in memory 22. Subsequently, the orchestrator 26 may start the second subagent, and the second subagent may read the output of the first subtask from memory 22.

[0051] Alternatively, the orchestrator 26 may analyze the output of the first subtask of the first subagent stored in memory 22 and generate execution instructions for the second subagent. By having the orchestrator 26 asynchronously transfer data instead of the subagents directly transferring data to each other, the fault tolerance and scalability of the multi-agent system can be improved.

[0052] According to the execution order determined by the orchestrator 26, multiple subagents may process multiple subtasks in parallel or sequentially. The output format may be JSON in order to suppress hallucination of the language model.

[0053] For example, the orchestrator 26 may be configured to perform the main task (generating a travel plan) in cooperation with the planning agent 27, the route agent 28, and the hotel agent 29. For example, the planning agent 27 may output a search task output, a verification task output, and a conversion task output, respectively, by performing a web search task, a validation task, and a geocoding task among several subtasks.

[0054] The subtask output of the planning agent 27, which combines the search task output, verification task output, and conversion task output, is called the node task output. The node task output may include some or all of the search task output, verification task output, and conversion task output.

[0055] The orchestrator 26 may generate a route generation instruction, which is an execution instruction to the root agent 28, based on the node task output. The root agent 28 may execute a route search task according to the route generation instruction. The subtask output of the route search task by the root agent 28 is called the root task output.

[0056] The orchestrator 26 may generate a hotel search command, which is an execution command to the hotel agent 29, based on the root task output. The hotel agent 29 may execute a hotel search task according to the hotel search command. The subtask output of the hotel search task by the hotel agent 29 is called the hotel task output.

[0057] The orchestrator 26 may generate a main task output ("main task output") based on multiple subtask outputs from multiple subagents. The main task output, a travel plan, may be generated as a travel plan object. The travel plan object may be, for example, structured data in JSON format with a UI (User Interface) structure, but is not limited to this. For example, the travel plan object may include data that defines display elements in the chat screen 40, such as text, images, or buttons, as part of the UI structure, defined in JSON format.

[0058] [Multi-agent API] The travel agent may implement a multi-agent API that interacts with one or more APIs provided by one or more servers. For example, when the service server 20 sends a processing request (e.g., a search request or a display request) over the network to an API server that provides an API, the API server sends a response to the service server 20 via the API that corresponds to the processing request. The travel agent may obtain the data necessary for task processing by acquiring various information contained in the response.

[0059] One or more APIs may include, but are not limited to, the model API provided by the AI ​​server 12, the search API provided by the search server 14, the map API, location API, and location information API provided by the location information server 16, and the hotel API provided by the reservation server 18. For example, the map API, location API, and location information API may be provided by different location information servers. At least one of the search server 14, location information server 16, and reservation server 18 may be included in system 11 or may be an external server not included in system 11.

[0060] The orchestrator 26 and at least one of the multiple sub-agents may be configured to operate as an AI agent that performs natural language processing by communicating with a model API that provides the functionality of the natural language processing model.

[0061] The search API may be, for example, a web search API provided by a search server. The planning agent 27 may be configured to generate a web search query to search for multiple candidate locations when executing a web search task. The web search query may include geographical conditions (e.g., place names) extracted from the request. The web search query may also include an upper limit on the number of candidate locations to extract.

[0062] The service server 20 sends a search request, including a web search query, to the web search API over the network. Upon receiving the search request, the web search API may perform a web search based on the web search query and return the search results to the service server 20 as structured data (e.g., a JSON object). The search results may include, for example, the titles and excerpts of one or more websites.

[0063] If the user input includes multiple travel dates, the planning agent 27 may generate a complete set of candidate destinations for the entire travel period. Based on geospatial density and temporal constraints, the planning agent 27 may divide the complete set into N subcategories corresponding to the N days of travel.

[0064] The planning agent 27 may, for example, work with a model API to extract multiple candidate locations from the search results. The search task output of the web search task may include multiple candidate location data objects. Each candidate location data object may include information about the corresponding candidate location. The information about each candidate location may include location information (e.g., address) of the corresponding candidate location.

[0065] The location API may provide a search function for the place database 17 maintained by the location information server 16. The place database 17 stores place data for multiple real-world locations. The place data includes multiple place data objects for multiple locations, such as shops, tourist facilities, scenic spots, parks, restaurants, or hotels. In other words, the place database 17 stores a list of places that include multiple real-world locations. The place database 17 may also include facility information for each location (facility), such as a place ID, address, business hours, telephone number, website address, photos, user ratings, or user reviews.

[0066] The planning agent 27 may generate a matching request containing multiple candidate location data objects to perform a verification task. The service server 20 sends the matching request to the location API over the network. Upon receiving the matching request, the location API searches the location database 17 for each of the multiple candidate locations and returns a search result to the service server 20 indicating whether or not a matching location exists. The search results from the location API may include location information (e.g., address or location coordinates) of the locations (facilities) that match the search, as well as facility information such as the name of the corresponding facility, business hours, telephone number, homepage address, photos, user ratings, or user reviews.

[0067] Candidate locations that successfully match against the location database 17 are considered to have had their existence verified. Therefore, the planning agent 27 may include multiple verified candidate locations as multiple destination data objects in the verification task output. In this way, multiple candidate locations are determined for each travel day based on geospatial parameters extracted from user input.

[0068] The planning agent 27 may set an upper limit on the number of destinations to be included in the daily travel route (for example, 3 to 5 locations) and extract a number of destinations that is 2 or more but less than or equal to the upper limit. In this way, the planning agent 27 may include data objects of 2 or more but less than or equal to the upper limit, generated for each travel day, in the validation task output. Each destination data object may include location information and facility information for the corresponding destination.

[0069] The location information API may provide a function to convert (coordinate) an address into location coordinates such as latitude and longitude. The planning agent 27 may generate a conversion list containing information on multiple candidate locations in order to perform a geocoding task. The service server 20 sends a processing request (conversion request) containing the conversion list to the location information API over the network. Upon receiving the conversion request, the location information API returns the location information of each of the multiple candidate locations to the service server 20.

[0070] Location information may include geographic location information such as location coordinates (latitude and longitude) and geographic information related to the geographic location information (e.g., facility name, postal code, or address). The geocoding task may be performed for multiple candidate sites before the validation task. In this case, the location information of multiple candidate sites may be used in the validation task. The planning agent 27 may include multiple candidate site data objects corresponding to each of the validated visit sites in the output of the transformation task.

[0071] The route agent 28 may be configured to search for a suitable route including multiple destinations for each day of travel when performing a route search task. The suitable route may be selected, for example, using any route search algorithm to minimize the total cost (e.g., one or more of distance, travel time, or cost). The cost (weights) may be calculated using a machine learning model 13.

[0072] The route agent 28 may, for example, generate a route prompt that includes location information for multiple destinations and multiple route conditions. The route conditions may include one or more of the following: minimizing the distance traveled (distance condition), avoiding backtracking (direction condition), arriving at an intermediate or final destination at a specified time (time condition 1), and completing the route in one day (time condition 2). As a result, the route agent 28 generates a visit route that satisfies the multiple route conditions.

[0073] The route agent 28 may perform a route search via a model API for using a machine learning model 13 for route searching (hereinafter referred to as the "route search model"). In this case, the service server 20 may send a processing request including a route prompt to the model API. The machine learning model 13 for route searching generates a visit route that visits multiple destinations based on the route conditions.

[0074] For example, a route search model may determine a travel route that includes multiple destinations by treating each destination as a separate geospatial node for each day of travel, and determining the order in which these nodes are arranged (the order in which the destinations are visited). For instance, a route search model might take a set of nodes, each with its own positional coordinates (latitude and longitude) vectorized, as input data, and calculate the correlation (weight) between the current node and all unvisited nodes. Based on the results of this calculation, the route search model outputs the identifier of the next node to be visited from among all unvisited nodes.

[0075] The route search model may include a reward function that satisfies the distance condition of "minimizing travel distance," for example, by giving a higher positive reward for shorter total travel distance. In addition to this, or as an alternative, the route search model may include a process that selects only unvisited nodes as the next node, such as by setting the probability value for visited nodes to negative infinity and passing it through a softmax function, in order to satisfy the direction condition of "avoiding backtracking."

[0076] In addition to, or instead of, the route search model may include a process that provides a large negative reward (penalty) when the angle between the movement vectors between nodes is large (for example, a backtrack close to 180 degrees). In this case, the route search model includes a process that evaluates the consistency of the direction vectors in the node transition sequence and dynamically adds a cost function to transitions that violate the angle constraint. Such a process contributes to achieving the route conditions of "minimizing travel distance" and "avoiding backtracking."

[0077] The root agent 28 may generate a directed graph having multiple nodes as vertices, with a predetermined order of visits. The root agent 28 may structure multiple geospatial nodes as an ordered node list. The node list may be an array of multiple visited location data objects, each having geospatial (location) and temporal attributes. Each edge connecting nodes may have one or more edge attributes.

[0078] The route task output output by route agent 28 may be structured data. This structured data may include, for example, a sequence index which is an integer key that defines the order in which each node is visited, the location coordinates (latitude and longitude) of each node, edge attributes connecting the nodes, and temporal constraint metadata. One or more edge attributes may include, but are not limited to, attributes related to travel, such as the distance between nodes, travel time, or means of transportation. Temporal constraint metadata may include, but are not limited to, the arrival time at each node and the time spent at each node (visited location).

[0079] The hotel agent 29 may obtain location information of the last spatial node (last visited location) of the visited route from the route task output in order to perform the hotel search task. Furthermore, the hotel agent 29 generates multiple hotel search conditions for performing the hotel search task based on the location information of the last spatial node and one or more parameters extracted from the request.

[0080] For example, if one or more parameters include the number of people, multiple hotel search criteria will include a numerical value indicating the number of people. In addition, if the request includes specific hotel amenities (e.g., "twin room") or services (e.g., "breakfast included"), the hotel agent 29 will include these in the search criteria. For example, multiple hotel search criteria may also include, but are not limited to, the currency available, the dates of stay, or the budget, depending on the request.

[0081] Multiple hotel search criteria may include range criteria determined based on the location information of the final node (last visited location). Multiple hotel search criteria may include an initial condition and one or more re-search criteria that are applied if no hotels meet the initial condition. For example, the initial condition may be "within a first threshold range from the last visited location." In contrast, the one or more re-search criteria may include one or more of the following [1] to [5].

[0082] [1] Being within a second threshold range which is wider than the first threshold range. [2] It must be located within the same administrative area as the last place visited (for example, within the same town or city). [3] Among multiple visited locations, the search order is within the first threshold range from any visited location other than the last one (for example, a visited location before the last visited location). [4] If the travel day is not the last day, the first destination on the following day must be within the first specified area. [5] If the day of travel is not the last day, the destination must be within the second specified range along the route from the last place visited on that day to the first place visited on the following day.

[0083] The first threshold range, the second threshold range, the first specified range, and the second specified range may be the same or different from each other. The threshold range or specified range may be a distance range, a travel time range, or a range of combinations of means of travel and travel time (e.g., "within 10 minutes on foot"), but is not limited to these. The shape of the outer edge defining the search range is not limited to a circle centered on a geospatial node, but can be arbitrarily set, for example, as a band along a travel route.

[0084] If there are multiple re-search criteria, they may be set as re-search criteria in order of priority. The priority order may be, for example, [1] to [5], but is not limited to this. In order to implement a feedback loop in the case where the search with the initial conditions fails (when no hotels that meet the conditions are found), the prompt for hotel search may include a condition check (whether the search was successful with the initial conditions) and re-search criteria in case the search fails.

[0085] The hotel API may be configured to search the accommodation database 19. The accommodation database 19 may be maintained or managed by the reservation server 18, which provides hotel reservation services. The service server 20 may send a search request to the hotel API that includes multiple hotel search criteria. The hotel API may be configured to search the database 19 based on the multiple hotel search criteria and return the search results to the service server 20. The search results may include hotel location information and facility information. The hotel agent 29 may include hotel location information and facility information in the hotel task output.

[0086] The route agent 28 may generate a travel route based on the output of the route search task and the hotel task. For example, the route agent 28 may node hotels based on their location information to generate additional graph nodes (hotel nodes or terminal nodes) having coordinate and time attributes.

[0087] Furthermore, the route agent 28 may connect a hotel node as the terminal node to a visit sequence (a visit route that visits multiple destinations in order) composed of multiple geospatial nodes (visit destination nodes). This completes the travel route for one day. The travel route for one day may be generated as a directed graph showing a travel sequence that includes multiple visit destination nodes and a hotel node as the terminal node.

[0088] If user input includes multiple travel days, the orchestrator 26 may identify the generation of the overall route for the travel period including multiple travel days as a subtask (integration task). The orchestrator 26 may assign the integration task to the route agent 28. The route agent 28 may decompose the generation of the overall route into daily tasks that generate daily travel routes, and process multiple daily tasks in series or in parallel.

[0089] For example, the route agent 28 may generate travel routes that include destinations in a subset for each day of travel, and then generate an overall route by integrating these travel routes. For example, the route agent 28 may connect the end node of the previous day as the starting node to the beginning of the travel route from the second day onward. The route agent 28 may then ensure the continuity of the overall route by setting the end node (hotel node) of day (N) to the same coordinates as the starting node (hotel node of day N+1) of day (hotel node of day N).

[0090] In this case, each daily travel route may be defined as a single route data object, and the overall route object may be a higher-level structure that includes multiple route data objects as metanodes. This allows the route agent 28 to define multiple daily travel routes and the overall route in a two-tiered structure. The generated overall route object may be included in the route task output by the route agent 28.

[0091] The orchestrator 26 may generate the main task, a travel plan, as graph structure data of the overall route encompassing multiple nodes (places to visit and hotels) and a travel sequence (the order in which the multiple nodes are arranged), based on the subtask outputs from multiple subagents. The graph structure data may be, for example, hierarchical structured data having multiple layers (e.g., JSON). The multiple layers may include, but are not limited to, one or more of the following: a metadata layer, a time series sequence layer, a node property layer, or an edge property layer.

[0092] The metadata layer may include, but is not limited to, metadata such as a travel plan ID or user ID. The time-series sequence layer may include, but is not limited to, an array such as a daily node sequence. The node property layer may include, but is not limited to, detailed information about each destination and hotel.

[0093] Detailed information about a visited location may include, but is not limited to, the address, business hours, telephone number, website address, photos, user ratings, or user reviews obtained from the location database 17. Detailed information about a hotel may include, but is not limited to, the address, check-in time, telephone number, website address, photos, user ratings, or user reviews obtained from the accommodation database 19. The edge property layer may include, but is not limited to, travel data between nodes.

[0094] Graph structure data may include a UI configuration layer as a UI structure for screen display. For example, the UI configuration layer may define display attributes or operation attributes such as screen layout, geometric representation on a map, behavior of interactive elements (responses to user actions), or priority of display elements. In addition to, or instead of, this, properties indicating how each element included in the graph structure data, such as nodes or edges, is drawn (e.g., a mark or line type indicating a node) may be embedded.

[0095] [Response from the travel agent] Referring to Figure 2, the process by which the travel agent responds to user input will be explained. At least some of the decisions and processes included in the flow in Figure 2 may be realized by the travel agent working in conjunction with the model API and utilizing the machine learning model 13, which is a language model.

[0096] In step S11, the orchestrator 26 obtains user input. In step S12, the orchestrator 26 analyzes user intent from the user input. For example, the language model used by the orchestrator 26 may convert a natural language request into a multidimensional numerical vector and determine, based on that vector, which of several predefined purposes (e.g., creating a new plan, editing a plan, searching for a hotel, or simply asking a question) it falls under.

[0097] In step S13, the orchestrator 26 determines whether the user intent is clear or not. For example, if the meaning of the request is unclear, the intent is contradictory (for example, if a request for a day trip includes a hotel request), or if the user input includes a generation flag but the request is an inquiry unrelated to travel, the orchestrator 26 will determine that "the user intent is unclear."

[0098] If the user intent is unclear based on the judgment in step S13, the orchestrator 26 generates a question in step S14 to confirm the user intent. In this way, the orchestrator 26 verifies the validity of the user input, and if it is not valid, it may generate a clarification question as a fallback control.

[0099] Such control may be achieved, for example, by including strict instructions in the prompt, such as "If the input is unclear, do not guess, always confirm." This can suppress hallucination by the generating AI. In step S15, the orchestrator 26 sends the generated question to the user terminal 30 and terminates the process.

[0100] If the user intent is clear based on the judgment in step S13, the orchestrator 26 retrieves the previous response history in step S16. In step S17, the orchestrator 26 determines whether the current user input is related to the previous response.

[0101] If the judgment in step S17 indicates a connection to the previous response, the orchestrator 26 adds the previous response history to the current user input in step S18. As a result, the user input and the response obtained in the previous response are used as preconditions for the current response.

[0102] For example, if a travel plan was generated in the previous response, it is highly likely that the current generation request was entered with the intention of editing the already generated travel plan. Also, if the request includes descriptions that indicate an intention to modify the previously generated travel plan, such as "add Yokohama as a destination" or "set the departure date to Saturday," then even if the user input does not include a generation flag, it can be inferred that the current request is a request to modify the previously generated travel plan. In this way, if the current user input is related to the previous user input, step S17 will result in a positive judgment (YES).

[0103] If step S17 is a positive result, the orchestrator 26 may carry over parts of the current request that have not changed since the previous request (for example, conditions such as destination, dates, or number of people, or parts of the travel plan created based on those conditions). For example, the orchestrator 26 may read the previously generated graph structure data from memory 22, set the generated graph structure data as a baseline, and then modify only the elements that may change (for example, nodes or edges). In this way, if the previous response history is included in the current user input, the travel plan based on the current user input will be an edited plan that modifies the previously generated travel plan.

[0104] If step S17 is determined to be negative (not related to the previous response), the orchestrator 26 proceeds to step S19. In step S19, the orchestrator 26 determines whether the user input includes a generation flag (flag ON). If the user input includes a generation flag, the orchestrator 26 switches from normal mode to generation mode in step S20. Note that if a travel plan that has already been generated was obtained in step S18, the orchestrator may proceed to step S20 even if the current user input does not include a generation flag.

[0105] In step S21, the orchestrator 26 generates a travel plan (graph structure data) by executing the process shown in Figure 3. In step S22, the orchestrator 26 sends the generated travel plan (for example, JSON with a UI structure) to the user terminal 30 and terminates the process.

[0106] If step S19 is a negative result (does not include the generation flag), the orchestrator 26 determines in step S23 whether the user input includes the hotel flag (flag ON). If the determination in step S23 includes the hotel flag, the orchestrator 26 switches from normal mode to hotel mode in step S24.

[0107] In step S25, the hotel agent 29 may perform a hotel search process based on user input. The hotel search process in step S25 may be, for example, a task process similar to the hotel search task. In step S26, the orchestrator 26 sends the hotel search results to the user terminal 30 and terminates the process.

[0108] If step S23 is a negative result (no hotel flag), the orchestrator 26 maintains the normal mode, which is question-and-answer mode. In step S28, the orchestrator 26 generates a response to the user input by utilizing a natural language processing model via the model API. For example, if the user input (request) is a question such as "Can you also help with overseas travel planning?", the natural language processing model generates an answer to this question. In step S29, the orchestrator 26 sends the generated answer to the user terminal 30 and terminates the process.

[0109] Thus, selecting the generate button 46 triggers the start of the travel plan generation task. Similarly, selecting the hotel search button 47 triggers the hotel agent 29 to start the hotel search task.

[0110] For example, suppose the generate button 46 is selected and the conditions for the travel plan (in Figure 1, the conditions are "Tokyo", "2 adults", and "5 days") are entered into the input field 45. When the orchestrator 26 obtains this user input (step S11), it executes the generation of the travel plan as the main task in step S22, in step S21.

[0111] In contrast, even if the generate button 46 is not selected, if the input field 45 contains conditions for a travel plan and a request to generate a travel plan, such as "Generate a travel plan," the orchestrator 26 may recognize the user's intent and execute the generation of a travel plan as the main task. In other words, selecting the generate button 46 may be a substitute for a request to generate a travel plan written in natural language, such as "Generate a travel plan."

[0112] [Generating a travel plan] Referring to Figure 3, we will now explain how to create a travel plan in step S21. In step S41, the orchestrator 26 determines whether the request meets one or more requirements. One or more requirements may include the fact that the request contains information necessary for generating a travel plan. The information necessary for generating a travel plan may include, but is not limited to, a destination (geographical condition), dates (time condition), and the number of people (quantitative condition). The required information may also include information necessary to search for hotel rooms (availability). For example, the required information may include the number of adults and children separately (e.g., "2 adults, 2 children").

[0113] Alternatively, or in addition to this, one or more requirements may include a maximum number of travel days. The maximum number of travel days may be, for example, 7 days. The maximum number may be set to prevent the time required to generate the travel plan from becoming excessively long due to too many travel days. Alternatively, or in addition to this, one or more requirements may include the origin and destination, or a limitation on the scope of the destination (for example, being domestic).

[0114] If step S41 is a negative result (NO), the orchestrator 26 may send feedback to the user terminal 30 in step S42 to satisfy the requirements. The feedback may be, for example, a request for input of missing information, or a request for correction to adjust the number of days to less than the specified number of days, but is not limited to these. Such fallback control can be implemented, for example, by including a strict instruction in the prompt, such as "If the requirements are not met, be sure to request that the requirements be met."

[0115] For example, if the generate button 46 is selected and the user input "I want to travel to Tokyo" is received, the orchestrator 26 may generate an input request such as "Please tell us how many people are traveling and how long the trip will last" in order to obtain the number of people and the number of days. Then, the input request will be displayed on the chat screen 40.

[0116] When the orchestrator 26 obtains a response to the input request in step S43, it returns to step S41 and determines whether one or more requirements are met by the additional user input, which is the response. If the result of step S41 is positive (YES), the orchestrator 26 proceeds to step S44. At this point, the orchestrator 26 may generate an execution command for the planning agent 27 (the first sub-agent).

[0117] In step S44, the planning agent 27 generates a web search query according to the execution command. The web search performed by the web search query is executed to retrieve multiple candidate locations based on the conditions included in the request. The web search query may include additional conditions or additional search words based on user data (e.g., annual income, family structure, interests, or concerns), such as user ratings or user reviews.

[0118] In step S45, the planning agent 27 works with the search API to perform a web search using a web search query (web search task). This allows the planning agent 27 to obtain data on multiple candidate locations that match the web search query. The data on multiple candidate locations may include, but is not limited to, the candidate location name, the candidate location's genre (e.g., store, tourist facility, scenic spot, park, or restaurant), and the candidate location's address.

[0119] In step S46, the planning agent 27 verifies whether the multiple candidate sites actually exist (verification task). More specifically, the planning agent 27 works with the location API to compare the location information of the multiple candidate sites with the location list stored in the location database 17. Since the location list contains multiple real locations, the planning agent 27 identifies the multiple candidate sites whose existence has been confirmed through the comparison as multiple visit locations.

[0120] The planning agent 27 may exclude one or more candidate locations from the list of candidate locations if they were not registered in the location database 17 (i.e., their existence could not be confirmed). Through this verification, the planning agent 27 extracts multiple destinations from among the multiple candidate locations.

[0121] In step S47, the planning agent 27 generates a list of destinations based on multiple candidate locations whose existence has been verified. The number of candidate locations to include in the list of destinations may be determined by the planning agent 27 depending on the number of travel days. The planning agent 27 may also add major train stations to the list of destinations as departure or arrival points, for example.

[0122] In step S48, the planning agent 27 works with the location information API to convert the location information (addresses) of multiple candidate sites into coordinates (geocoding task). After that, the planning agent 27 may generate node task output and save it to memory 22.

[0123] In step S49, the route agent 28 performs a route search for each travel day based on the node task output (route search task). This causes the route agent 28 to generate a visit route that visits multiple destinations for each travel day. The route agent 28 may also save the route task output, which includes one or more visit routes, to memory 22.

[0124] In step S50, the hotel agent 29 generates hotel search conditions based on the route task output. In step S51, the hotel agent 29 works with the hotel API to perform a hotel search (hotel search task).

[0125] For example, the hotel agent 29 searches for hotels (terminal nodes) that match the hotel search criteria within a search range (e.g., a first threshold range) associated with the location information of the last visited destination among multiple destinations. The results of the hotel search may include, but are not limited to, the hotel's name, address, photos, user rating, user reviews, accommodation cost, or whether meals are included.

[0126] In step S52, the route agent 28 generates a one-day travel route by adding a hotel to the end of the visit route. In data generation, this corresponds to connecting a terminal node (hotel node) to the end of a directed graph representing the visit route. If the travel itinerary spans multiple days, the route agent 28 may generate the overall route in step S53 by integrating multiple one-day travel routes into an overall route.

[0127] In step S52, the orchestrator 26 may generate graph structure data for the overall route based on the subtask outputs from multiple subagents. Furthermore, the orchestrator 26 may, in conjunction with the model API, use the generation AI to create a title for the generated travel plan, generate a UI structure for UI control, and package this information as a travel plan object.

[0128] [Display travel plan] The travel plan generated by the travel agent is sent from the service server 20 to the user terminal 30. This is the travel agent's response (reply) to the user's input.

[0129] When user terminal 30 receives hierarchical structured data, it may use a program installed on the user terminal 30's browser (for example, JavaScript®) to display the travel plan defined in JSON format on the chat screen 40.

[0130] Figure 4 illustrates a chat screen 40 displaying the travel plan sent in step S22. The chat screen 40 includes user input 48, which includes a request to generate a travel plan, and a response 50 from the travel agent to it. The response 50 may include a response sentence 51 to the user input 48, a display element 52 linked to a page displaying the travel plan, and the title 53 of the travel plan. The display element 52 may include, but is not limited to, one or more of the following: photos of one or more destinations or hotels included in the travel plan, a map image with the route superimposed, or text summarizing the travel itinerary.

[0131] Figure 5 illustrates a travel plan display page 60 that is displayed by operating the display element 52. The display page 60 may include a detail frame 61 that shows the contents of the travel plan and a map frame 62 that displays a map. The detail frame 61 may include an output button 61O that is operated when outputting the travel plan.

[0132] The detail pane 61 may display the title 53. The detail pane 61 may contain multiple tabs 63 for switching between and displaying the itinerary for each day of the trip. Each of the multiple tabs 63 may display the words Day 1, Day 2, Day 3, etc. When one of the multiple tabs 63 is selected, the itinerary for the corresponding day of the trip may be displayed in the detail pane 61.

[0133] The itinerary for each travel day may include information on multiple destinations, each displayed in multiple spot slots 64, and travel information 65 between destinations. In addition to information on destinations obtained from the location database 17 (e.g., name, address, user rating, and photos), the spot slots 64 may also display estimated length of stay generated by the travel agent using AI.

[0134] The travel information 65 may include, but is not limited to, the means of transportation, travel time, and travel distance. The information of the visited location or the travel information 65 may be configured so that more detailed information is displayed by operating a detailed link.

[0135] The map frame 62 may display a route map 62M showing the travel route. The route map 62M may include, for example, spot markers 62V indicating multiple destinations (geospatial nodes) for the selected travel day, a hotel marker 62H indicating a hotel (terminal node), and edges 62R connecting these nodes. Travel information 62I may be displayed on the edges 62R.

[0136] The map data displayed as the base for the route map 62M may be obtained, for example, from a map database maintained by the location information server 16 via a map API provided by the location information server 16. Spot marks 62V, hotel marks 62H, edges 62R, and travel information 62I may be display objects dynamically placed on a layer of the base map. The route map 62M may be a layered map whose display changes according to the zoom level. In the route map 62M, when a user selects a display object, information associated with that display object (for example, detailed information about a destination or hotel) may be displayed in a pop-up window.

[0137] Display page 60 may include a free-form input field 66 for receiving user input regarding the travel plan. If the user wishes to edit the travel plan, they can enter their editing preferences in the input field 66.

[0138] The editing chat box 70 shown in Figure 6 may be displayed by user input in the input field 66. The editing chat box 70 may be superimposed on a grayed-out, inoperable display page 60. The editing chat box 70 may display an introductory statement 71 about editing and user input 72. User input 72 may include a request to edit the travel plan.

[0139] When the travel agent receives user input 72 from the user terminal 30, it edits the travel plan based on the requests contained in the user input 72. For example, if the travel agent receives user input 72 in the input field 66, it may obtain the generated travel plan data in step S17 of Figure 2 and proceed to step S20 based on the decision in step S19.

[0140] When the travel agent generates a travel plan (edited plan) based on the request, the service server 20 sends the edited plan object to the user terminal 30. Upon receiving the edited plan object, the user terminal 30 displays a response message 73 and a link element 74 (a button labeled "Confirm" in Figure 6) in the editing chat frame 70. When the link element 74 is clicked, the editing chat frame 70 may be replaced by an interactive display page 60 containing the edited plan.

[0141] As shown in Figure 7, a hotel frame 67 is displayed at the bottom of the details frame 61 to display information on recommended hotels for that day. In addition to hotel information obtained from the database 19 (e.g., name, address, user rating, or accommodation fee), the hotel frame 67 may also display a recommendation statement or a summary of hotel information generated by the travel agent using AI. An operation element 68 (a button labeled "Reselect" in Figure 7) for changing (re-selecting) a hotel may be displayed in or near the hotel frame 67.

[0142] The re-selection screen 80 shown in Figure 8 may be displayed by operating the operation element 68. The re-selection screen 80 may be superimposed on the grayed-out, inoperable display page 60. The re-selection screen 80 may include a condition input field 81 for entering hotel search criteria and one or more hotel frames 82 for displaying one or more hotels as candidates for change.

[0143] Each hotel slot 82 may include a swap button 83 for swapping the current hotel with a candidate hotel displayed in the corresponding hotel slot 82. The re-selection screen 80 may include an input field 84 for receiving user input regarding hotel search criteria.

[0144] The change chat box 85 shown in Figure 9 may be displayed by user input in the input field 84. The change chat box 85 may be superimposed on a grayed-out, inoperable display page 60. The change chat box 85 may display an introductory statement 86 about the change and user input 87.

[0145] The travel agent is configured to re-search for hotels based on user input 87. When the travel agent obtains the results of the re-search, the change chat box 85 may display a response message 88 and a link element 89 (a button labeled "Confirm" in Figure 6) for displaying the information of the changed hotel. When the link element 89 is clicked, the change chat box 85 may be replaced by an interactive display page 60 containing the information of the changed hotel.

[0146] Figure 10 illustrates the output screen 90 of the travel plan that appears when the output button 61O is operated in the detail frame 61 of Figure 5. The output screen 90 may include, for example, a title 53, a route map 91 displayed in the map frame 62, and a plan summary 92. The route map 91 may be a static map image (snapshot map) generated from a dynamic route map 62M.

[0147] The plan summary 92 may include, for example, one or more of the following: the number of travel days, the number of cities to visit, the number of destinations to visit, and a list of destinations for each day of travel. The output screen 90 may include a display code 93 for displaying the travel plan details page (not shown). The display code 93 may be a two-dimensional code, but is not limited to that. The display code 93 may be generated by encoding the address (URL: Uniform Resource Locator) for displaying the details page.

[0148] The output screen 90 may include a download button 94 and a link copy button 95. When the download button 94 is operated, the contents displayed on the output screen 90 may be saved as electronic data. When the link copy button 95 is operated, the address (URL) for displaying the details page may be copied. The user can send the copied address to their travel companions or refer to it during the trip as a travel guide.

[0149] [Effects of this disclosure] The travel agent automatically generates a travel plan that includes multiple destinations and hotels simply by having the user enter a brief travel outline (e.g., destination, dates, and number of people) in free language into the user terminal 30 via the chat screen 40. For example, the travel agent searches for multiple destinations based on the user's input and then searches for hotels near the last destination for each day of the trip. The destinations included in the travel plan are recommended tourist spots from the travel agent based on the user's input, and the hotels included in the travel plan are recommended hotels that are convenient for visiting the tourist spots.

[0150] Multiple destinations are extracted via web search, and hotels are retrieved from the accommodation database 19 maintained by the reservation server 18. At this time, the hotel search criteria are set to search for hotels within a search range associated with the location information of the last destination. This allows the system to suggest hotels near the last destination to the user, avoiding overlapping travel areas or backtracking within the travel route.

[0151] The travel agent packages travel routes, including multiple destinations and hotels, by associating them with detailed travel plan data. For example, multiple destinations are represented as geospatial nodes, each as a destination data object with geospatial attributes and time constraints. Edges connecting these nodes hold travel-related attributes such as distance, travel time, or mode of transport. These multiple geospatial nodes and terminal hotel nodes are then combined into a directed graph with a defined order.

[0152] By having each node in the directed graph hold location information (latitude and longitude), the travel route can be displayed on the map within the map frame 62. On the other hand, by extracting attribute information from each node, detailed travel information can be displayed in the detail frame 61.

[0153] Since the travel plan is generated as structured data, appropriate information can be displayed depending on the display screen (for example, display page 60 and output screen 90). For example, if the user terminal 30 is a small mobile device, the display space (display 34) will be smaller. Therefore, it is easy to change the display layout between a mobile device and a desktop display.

[0154] Furthermore, if the structured data includes a UI configuration layer, at least a portion of the screen configuration of the travel plan displayed on the user terminal 30 is determined by the JSON data received from the service server 20. This reduces communication traffic and enables rapid UI updates. In addition, the screen layout can be changed in real time according to the output of the orchestrator 26 without updating the application.

[0155] The travel agent performs multiple processes for generating travel plans using a multi-agent system that coordinates multiple AI agents. The orchestrator 26 included in the multi-agent system breaks down the main task of travel planning into multiple subtasks and has multiple subagents execute the subtasks.

[0156] The orchestrator 26 and multiple sub-agents execute multiple subtasks and cooperate with each other, utilizing the outputs of their subtasks, to complete the main task. This autonomous multi-agent orchestration realizes a spatial graph construction system capable of executing a main task that includes complex work processes.

[0157] [Effects of this disclosure] According to this disclosure, the following effects can be achieved. (1) When the user freely enters their travel preferences in the input field 45, the travel agent generates a travel plan and displays it on the user terminal 30. Therefore, the user can generate a travel plan to their liking without having to go through the trouble of searching for destinations and hotels.

[0158] (2) By setting one or more sub-search criteria in the accommodation search criteria, alternative hotels can be found even if the hotel search using the initial criteria fails. This fallback control prevents the task from being interrupted or hotels that do not meet the criteria from being included in the travel plan.

[0159] (3) By having the user select either the generate button 46 or the hotel search button 47, the intent of the user input can be understood more accurately, and the computational load required to understand that intent can be reduced.

[0160] (4) When user input includes multiple travel days, the task for each travel day can be distributed and processed by generating a travel route for each travel day. This reduces the number of computational elements (e.g., nodes) compared to generating the entire route from the beginning. Therefore, the computational complexity can be controlled so that the computation process does not become too complex.

[0161] (5) If user input does not meet the conditions necessary for generating a travel plan, the generating AI can suppress hallucination by requesting additional input from the user. In other words, it can avoid generating an ambiguous plan when the generating AI lacks necessary information, and instead generate a more accurate travel plan that is in line with the user's intentions.

[0162] (6) When selecting multiple destinations to visit, the latest information can be efficiently collected by extracting candidate locations through web searches. In addition, a wider variety of information can be collected compared to obtaining information from predetermined sources.

[0163] (7) Information obtained through web searches may be inaccurate or outdated. For example, information about facilities that have already closed may remain on the web. Therefore, by comparing the location information of a candidate site with the list of places stored in the location database 17, it is possible to confirm that the candidate site is visitable. In addition, accurate detailed information about the candidate site can be obtained from the location database 17. This makes it possible to extract information about the place to visit more accurately.

[0164] (8) When extracting multiple destinations, setting an upper limit on the number of destinations allows for control of the computational load to prevent the calculation process from becoming too complex. This also allows for the generation of realistic travel plans that are within a reasonable timeframe.

[0165] (9) When searching for a route to visit, by setting conditions such as short travel distance and avoiding backtracking, it is possible to generate an efficient route to visit.

[0166] (10) When a travel agent receives a request from a user to revise their travel plan, the agent edits the plan accordingly. This allows users to easily customize their travel plan to their own preferences.

[0167] (11) By implementing a multi-agent API, system 11 can integrate multiple AI agents with multiple external tools (APIs) to perform more complex tasks fully automatically.

[0168] This embodiment can be implemented with the following modifications. This embodiment and the following modifications can be combined with each other to the extent that they do not contradict each other technically.

[0169] [Example of changes to the input screen] The input screen for users to submit requests for travel plan creation is not limited to the AI-generated chat screen 40. For example, the input screen may be a form-type screen that includes one or more information input fields for entering conditions related to the travel plan, either item by item or in a free-form style.

[0170] [Example of changes to the chat screen] The chat screen 40 may include information input fields for entering information necessary for generating a travel plan, item by item. The information input fields may include, for example, one or more of the following: geographical conditions (e.g., one or more of the following: place name or region name of destination, departure point, or return point), temporal conditions (e.g., one or more of the following: number of travel days, departure time, or return time), quantitative conditions (e.g., one or more of the following: total number of people, number of adults, number of children, or budget), or transportation conditions (e.g., the mode of transportation: train, airplane, car, or ship). Conditions entered through these information input fields may be included in user input.

[0171] [Example of changing travel route] The travel route included in the travel plan may not include a hotel (terminal node). In this case, the travel plan does not need to include information on recommended hotels. The chat screen 40 may include a selection element for choosing whether or not to include a hotel in the travel route.

[0172] [Example of changing hotel search criteria] If a travel itinerary includes multiple travel days, the hotel search criteria for a given travel day may be set based on the first destination of the following day, rather than the last destination of that day. In this case, the search criteria may, for example, be within a search range related to the first destination of the following day, or within a defined range along the travel route from the last destination of that day to the first destination of the following day. Which destination is used as the basis for setting the hotel search criteria may be determined based on user input, or it may be determined based on the departure time from the last destination or the operating hours of the first destination of the following day.

[0173] [Example of changing the terminal node] The terminal node is not limited to a hotel (accommodation). For example, the terminal node may be a departure or arrival point for travel, such as a train station, airport, port, or bus terminal, or it may be any location specified by the user (for example, the user's home, which will be the return destination). If the user specifies a terminal node, the travel agent may search for or edit the travel route based on the location information of the terminal node. The user can also issue an edit instruction to change the terminal node on the last day of the trip to the departure / arrival point or home. The edit instruction may include the time of return to the terminal node. The travel agent may extract or modify at least some of the destinations based on the location information of the terminal node. In this case, the travel agent may generate a travel plan or edited plan in which the terminal node specified by the user on the last day of the trip is the end of the travel route or the overall route.

[0174] [Example of changing the method for generating the overall route] A travel agent may sequentially generate the overall route by generating daily travel routes starting from the first day of the trip. In this case, after generating the travel route for the first day, the travel agent may determine the destinations, hotels, and travel route for the second day, using the hotel location for the first day as the starting point (starting node). In this case, the travel agent may perform route generation as a daily segment processing. This sequential route generation method reduces the computational load because it dynamically feeds back the results of the previous calculation as parameters for the next calculation. In this case, the overall route may have a serial concatenated data structure.

[0175] [Examples of changes to flowcharts and configuration diagrams] The flowcharts and configuration diagrams of this disclosure illustrate the architecture, functionality, and operation of the apparatus, system, method, and program according to embodiments of this disclosure. Each step included in these flowcharts and each component included in the configuration diagrams may correspond to a part of a program containing one or more instructions for realizing a logical functional unit. In other embodiments, some of the illustrated steps may be omitted, other steps may be included, the order of the steps may be different, or some steps may be executed simultaneously. Furthermore, a flowchart described as a series of actions may be divided into several parts and executed, or multiple flowcharts may be executed sequentially or in relation to each other. Also in other embodiments, some of the illustrated components may be omitted, other components may be included, or the arrangement of components may be changed. Furthermore, the functions realized by these steps and components may be realized by hardware, software, or a combination of hardware and software.

[0176] [Example of system changes] The various processes performed by the service server 20 may be distributed among multiple servers that perform those processes. That is, the system 11 may be implemented as a single server (e.g., a computer), or it may be distributed among multiple devices (e.g., computers) or subsystems that collaborate to execute programs.

[0177] The statement "one or more processors execute the program code and perform the specified operation" means that if system 11 has multiple servers, at least one processor among those servers will execute the corresponding program code or instruction. If system 11 is implemented by a single server, it means that one or more processors on that server will execute the corresponding program code or instruction. In other words, "one or more processors" may be multiple server processors on different servers, or one or more server processors on any one server. Similarly, if the user terminal 30 executes part of the program code or instruction, "one or more processors" may include the processor of the user terminal 30 (terminal processor). The program code or instruction executed by one or more processors may be stored in the memory of the computer that has the processors that execute it.

[0178] [Example of memory modification] The memory included in the apparatus of this disclosure is a computer-readable storage medium, including non-transitory computer-readable medium. The memory may include, but is not limited to, ROM, hard disks, storage, removable media, flash memory, memory sticks, optical media, magneto-optical media, and CD-ROMs.

[0179] [Examples of changes to how the program is delivered] The program may be provided for use on a user's terminal as a web application used via a browser, a mobile application downloaded from an app store, a desktop application installed by an installer or executable file, or for use on a user-managed server as an on-premise or packaged application. In addition to or instead of the above, the program may be provided as a program product stored on a non-temporary computer-readable medium, but is not limited to the above. In addition to or instead of the above, at least a portion of the program may be provided as developer tools, libraries, SKD (Software Development Kit), API (Application Programming Interface), or templates, or may be provided embedded in other electronic devices, but is not limited to the above.

[0180] [Example of processor change] One or more processors included in the apparatus of this disclosure may include, but are not limited to, a CPU (central processing unit), a GPU (graphics processing unit), an APU (accelerated processing unit), an NPU (Neural network Processing Unit), a microprocessor, a microcontroller, a DSP (digital signal processor), an FPGA (field programmable gate array), a CPLD (Complex Programmable Logic Device), an application-specific integrated circuit (ASIC), a general-purpose processor, or any combination thereof designed to perform the functions described herein.

[0181] [Example of network changes] Communication between multiple devices or systems may be carried out via one or more communication networks in accordance with well-known communication protocols. The communication network may be, but is not limited to, an intranet, the internet, a local area network, a wide area network, a wireless network, a wired network, a virtual network, a software-defined network, or any other type of network, or a combination thereof.

[0182] [Example of changing the communication interface] A communication interface (IF) enables one device to communicate with other devices via a communication network. The communication interface may be, but is not limited to, a LAN (Local Area Network), Wi-Fi (registered trademark), Bluetooth (registered trademark), NFC (Near Field Communication), or other wireless communication interfaces.

[0183] The embodiments and modifications described above are listed below. [1] A system for generating travel plans, The system comprises one or more processors, and the one or more processors Receiving user input from the user terminal, Based on the user input, multiple destinations are determined, By determining the order in which to visit the aforementioned multiple destinations, a visiting route including the aforementioned multiple destinations is determined, Searching for accommodations within the search range associated with the location information of the last of the aforementioned multiple visited locations, and By adding the accommodation facility to the end of the aforementioned visit route, a travel route is generated. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, A system configured to perform the following actions.

[0184] [2] A system for generating travel plans, The system comprises one or more processors, and the one or more processors The system displays a chat screen generated by an AI on the user's terminal, wherein the chat screen includes a free-form input field and a generate button selected when requesting the generation of a travel plan. Receiving user input from the user terminal, wherein the user input includes a generation flag indicating that the generation button has been selected, and text entered in natural language via the input field. If the user input includes the generation flag, it is determined that the user input includes a request to generate a travel plan. In response to the aforementioned generation request, multiple destinations are determined based on the user input, Determining the order in which to visit the aforementioned multiple destinations, The travel route is determined based on the aforementioned multiple destinations and the order of visits. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, A system configured to perform the following actions.

[0185] [3] A system for generating travel plans, The system comprises one or more processors, and the one or more processors Receiving user input from the user terminal, Based on the user input, multiple destinations are determined, By determining the order in which to visit the aforementioned multiple destinations, a visiting route including the aforementioned multiple destinations is determined, The accommodation is determined based on the user input, By adding the accommodation facility to the end of the aforementioned visit route, a travel route is generated. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, A system configured to perform the following actions.

[0186] [4] One or more processors, A spatial graph construction system comprising a communication interface, The aforementioned 1 or more processors A receiving process that receives a data generation request including unstructured data transmitted from an external terminal via the aforementioned communication interface, A parsing process to extract geospatial parameters from the aforementioned data generation request, A node generation process that generates multiple geospatial nodes based on the aforementioned geospatial parameters, A graph generation process that generates a directed graph containing the multiple geospatial nodes by determining the order in which the multiple geospatial nodes are arranged, A search process to search for the terminal node from within the search range associated with the last geospatial node in the sequence among the aforementioned multiple geospatial nodes, A concatenation process that generates graph structure data by connecting the terminal node to the terminal end of the directed graph, A transmission procedure that transmits the graph structure data to the external terminal via the communication interface, A system configured to perform the following actions.

[0187] [5] The search criteria for accommodations include initial conditions and one or more re-search conditions that apply if no accommodations meet the initial conditions. The aforementioned initial condition includes being within a first threshold range from the last visited location, The above one or more search conditions are: It is within a second threshold range that is wider than the first threshold range. The first threshold range is reached from a visitor prior to the last visitor among the aforementioned multiple visitor locations, or Including one or more of the following: being located within the administrative area including the last place visited; The system described in any of the above [1] to [4].

[0188] [6] The one or more processors The method involves displaying a chat screen generated by an AI on the user's terminal, wherein the chat screen includes a free-form input field and a generate button selected when requesting the generation of a travel plan. The acquisition of user input, wherein the user input includes a generation flag indicating that the generation button has been selected, and text entered in natural language via the input field. If the user input includes the generation flag, it is determined that the user input includes a request to generate a travel plan. Configured to perform, The system described in any of the above [1] to [5].

[0189] [7] The one or more processors When the user input includes multiple travel days, the system generates multiple travel routes corresponding to each of the multiple travel days. By integrating the aforementioned multiple travel routes, an overall route is generated. Configured to perform, The system described in any of the above [1] to [6].

[0190] [8] The one or more processors Determining whether the user input includes information necessary for generating the travel plan, If the necessary information is missing, an input request will be sent to the user terminal requesting the user to input the missing information. Configured to perform, The system described in any of the above [1] to [7].

[0191] [9] The determination of the multiple destinations is To generate a web search query based on the aforementioned user input, Obtaining multiple candidate locations that match the aforementioned web search query, Extracting the aforementioned multiple destinations from the aforementioned multiple candidate locations, including, The system described in any of the above [1] to [8].

[0192]

[10] Extracting the above-mentioned multiple destinations is The process involves comparing the location information of the aforementioned multiple candidate locations with a list of locations stored in a location database, wherein the location list includes multiple locations. The multiple candidate locations whose existence has been confirmed through the aforementioned verification are identified as the multiple locations to be visited, including, A system described in any of the above [1] to [9].

[0193]

[11] Extracting the multiple destinations mentioned above is Set an upper limit on the number of destinations to be included in the aforementioned daily travel route, Extract a number of visited locations that is two or more and less than or equal to the aforementioned upper limit, including, The system described in any of the above [1] to

[10] .

[0194]

[12] The visit route (travel route) is generated to satisfy a plurality of route conditions, The aforementioned multiple route conditions include a short travel distance and avoiding backtracking. The system described in any of the above [1] to

[11] .

[0195]

[13] The one or more processors After transmitting the travel plan to the user terminal, the system obtains requests regarding the travel plan from the user terminal. To generate an edited plan by editing the travel plan based on the aforementioned requests, Sending the aforementioned editing plan to the user terminal, Configured to perform, The system described in any of the above [1] to

[12] .

[0196]

[14] Implement a multi-agent system including an orchestrator and multiple sub-agents, The orchestrator and at least one of the multiple sub-agents are configured to operate as an AI agent that performs natural language processing by communicating with an API (Application Programming Interface) that provides the functionality of a natural language processing model. The system described in any of the above [1] to

[13] .

[0197]

[15] A method for generating a travel plan, wherein one or more processors Receiving user input from the user terminal, Based on the user input, multiple destinations are determined, By determining the order in which to visit the aforementioned multiple destinations, a visiting route including the aforementioned multiple destinations is determined, Searching for accommodations within the search range associated with the location information of the last of the aforementioned multiple visited locations, and By adding the accommodation facility to the end of the aforementioned visit route, a travel route is generated. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, Methods that include...

[0198]

[16] A method for generating a travel plan, wherein one or more processors The system displays a chat screen generated by an AI on the user's terminal, wherein the chat screen includes a free-form input field and a generate button selected when requesting the generation of a travel plan. Receiving user input from the user terminal, wherein the user input includes a generation flag indicating that the generation button has been selected, and text entered in natural language via the input field. If the user input includes the generation flag, it is determined that the user input includes a request to generate a travel plan. In response to the aforementioned generation request, multiple destinations are determined based on the user input, Determining the order in which to visit the aforementioned multiple destinations, The travel route is determined based on the aforementioned multiple destinations and the order of visits. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, Methods that include...

[0199]

[17] A program for generating travel plans, comprising one or more processors, Receiving user input from the user terminal, Based on the user input, multiple destinations are determined, By determining the order in which to visit the aforementioned multiple destinations, a visiting route including the aforementioned multiple destinations is determined, Searching for accommodations within the search range associated with the location information of the last of the aforementioned multiple visited locations, and By adding the accommodation facility to the end of the aforementioned visit route, a travel route is generated. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, A program that executes something.

[0200]

[18] A program for generating travel plans, comprising one or more processors, The system displays a chat screen generated by an AI on the user's terminal, wherein the chat screen includes a free-form input field and a generate button selected when requesting the generation of a travel plan. Receiving user input from the user terminal, wherein the user input includes a generation flag indicating that the generation button has been selected, and text entered in natural language via the input field. If the user input includes the generation flag, it is determined that the user input includes a request to generate a travel plan. In response to the aforementioned generation request, multiple destinations are determined based on the user input, Determining the order in which to visit the aforementioned multiple destinations, The travel route is determined based on the aforementioned multiple destinations and the order of visits. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, A program that executes something. [Explanation of Symbols]

[0201] 11…Travel plan generation system, 12…AI server, 13…Machine learning model, 14…Search server, 16…Location information server, 17…Location database, 18…Reservation server, 19…Accommodation database, 20…Service server, 21…Processor, 22…Memory, 23…Communication interface, 24…Program, 25…Database, 26…Orchestrator, 27…Planning agent, 28…Route agent, 29…Hotel agent, 30…User terminal, 31…Processor, 32…Memory, 33…Communication interface, 34…Output device, 35…Input device, 40…Chat screen, 41…Sidebar, 42,42a,42b…Selection elements, 43…Login button, 44…Description text, 45…Input field, 46…Generate button, 47…Hotel search button 48...User input, 50...Response, 51...Response text, 52...Display element, 53...Title, 60...Display page, 61...Detail frame, 61O...Output button, 62...Map frame, 62H...Hotel mark, 62I...Movement information, 62M...Route map, 62R...Edge, 62V...Spot mark, 63...Tab, 64...Spot frame, 65...Movement information, 66...Input field, 67...Hotel frame, 68...Operation element, 70...Edit chat frame, 71...Introduction text, 72...User input, 73...Response text, 74...Link element, 80...Reselection screen, 81...Condition input field, 82...Hotel frame, 83...Swap button, 84...Input field, 85...Change chat frame, 86...Introduction text, 87...User input, 88...Response text, 89...Link element, 90...Output screen, 91...Route map, 92...Plan summary.

Claims

1. A system for generating travel plans, The system comprises one or more processors, and the one or more processors Receiving user input from the user terminal, Determining a plurality of destinations based on the user input, wherein determining the plurality of destinations is To generate a web search query based on the aforementioned user input, Obtaining multiple candidate locations that match the aforementioned web search query, This includes extracting the multiple destinations from the multiple candidate locations, and the extraction of the multiple destinations is The process involves comparing the location information of the aforementioned multiple candidate locations with a list of locations stored in a location database, wherein the location list includes multiple locations. This includes identifying multiple candidate locations whose existence has been confirmed through the aforementioned verification as the multiple locations to be visited, By determining the order in which to visit the aforementioned multiple destinations, a visiting route including the aforementioned multiple destinations is determined, Searching for accommodations within the search range associated with the location information of the last of the aforementioned multiple visited locations, and By adding the accommodation facility to the end of the aforementioned visit route, a travel route is generated. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, A system configured to perform the following actions.

2. The search criteria for the accommodations include an initial condition and one or more re-search conditions that are applied if no accommodations matching the initial condition are found. The aforementioned initial condition includes being within a first threshold range from the last visited location, The above one or more re-search conditions are: It is within a second threshold range that is wider than the first threshold range. The first threshold range is reached from a visitor prior to the last visitor among the aforementioned multiple visitor locations, or Including one or more of the following: being located within the administrative area including the last place visited; The system according to claim 1.

3. The one or more processors described above The method involves displaying a chat screen generated by AI on the user's terminal, wherein the chat screen includes a free-form input field and a generate button selected when requesting the generation of a travel plan. The acquisition of user input, wherein the user input includes a generation flag indicating that the generation button has been selected, and text entered in natural language via the input field. If the user input includes the generation flag, it is determined that the user input includes a request to generate a travel plan. Configured to perform, The system according to claim 1.

4. The one or more processors described above When the user input includes multiple travel days, the system generates multiple travel routes corresponding to each of the multiple travel days. By integrating the aforementioned multiple travel routes, an overall route is generated. Configured to perform, The system according to claim 1.

5. The one or more processors described above Determining whether the user input includes information necessary for generating the travel plan, If the necessary information is missing, an input request will be sent to the user terminal requesting the user to input the missing information. Configured to perform, The system according to claim 1.

6. Extracting the aforementioned multiple destinations is Setting an upper limit on the number of destinations to be included in the aforementioned daily travel route, Extract a number of visited locations that is two or more and less than or equal to the aforementioned upper limit, including, The system according to claim 1.

7. The aforementioned visit route is generated to satisfy multiple route conditions, The aforementioned multiple route conditions include a short travel distance and avoiding backtracking. The system according to any one of claims 1 to 6.

8. The one or more processors described above After transmitting the travel plan to the user terminal, the system obtains requests regarding the travel plan from the user terminal. To generate an edited plan by editing the travel plan based on the aforementioned requests, Sending the aforementioned editing plan to the user terminal, Configured to perform, The system according to any one of claims 1 to 6.

9. We implement a multi-agent system that includes an orchestrator and multiple sub-agents. The orchestrator and at least one of the plurality of sub-agents communicate with an API (Application Programming Interface) that provides the functionality of a natural language processing model. It is configured to operate as an AI agent that performs natural language processing based on trust. The system according to any one of claims 1 to 6.

10. A system for generating travel plans, The system comprises one or more processors, and the one or more processors Receiving user input from the user terminal, Determining a plurality of destinations based on the user input, wherein determining the plurality of destinations is To generate a web search query based on the aforementioned user input, Obtaining multiple candidate locations that match the aforementioned web search query, This includes extracting the multiple destinations from the multiple candidate locations, and the extraction of the multiple destinations is The process involves comparing the location information of the aforementioned multiple candidate locations with a list of locations stored in a location database, wherein the location list includes multiple locations. This includes identifying multiple candidate locations whose existence has been confirmed through the aforementioned verification as the multiple locations to be visited, By determining the order in which to visit the aforementioned multiple destinations, a visiting route including the aforementioned multiple destinations is determined, The accommodation is determined based on the user input, By adding the accommodation facility to the end of the aforementioned visit route, a travel route is generated. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, A system configured to perform the following actions.

11. A method for generating a travel plan, wherein one or more processors Receiving user input from the user terminal, Determining a plurality of destinations based on the user input, wherein determining the plurality of destinations is To generate a web search query based on the aforementioned user input, Obtaining multiple candidate locations that match the aforementioned web search query, This includes extracting the multiple destinations from the multiple candidate locations, and the extraction of the multiple destinations is The process involves comparing the location information of the aforementioned multiple candidate locations with a list of locations stored in a location database, wherein the location list includes multiple locations. This includes identifying multiple candidate locations whose existence has been confirmed through the aforementioned verification as the multiple locations to be visited, By determining the order in which to visit the aforementioned multiple destinations, a visiting route including the aforementioned multiple destinations is determined, Searching for accommodations within the search range associated with the location information of the last of the aforementioned multiple visited locations, and By adding the accommodation facility to the end of the aforementioned visit route, a travel route is generated. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, Methods that include...

12. A program for generating travel plans, which uses one or more processors, Receiving user input from the user terminal, Determining a plurality of destinations based on the user input, wherein determining the plurality of destinations is To generate a web search query based on the aforementioned user input, Obtaining multiple candidate locations that match the aforementioned web search query, This includes extracting the multiple destinations from the multiple candidate locations, and the extraction of the multiple destinations is The process involves comparing the location information of the aforementioned multiple candidate locations with a list of locations stored in a location database, wherein the location list includes multiple locations. This includes identifying multiple candidate locations whose existence has been confirmed through the aforementioned verification as the multiple locations to be visited, By determining the order in which to visit the aforementioned multiple destinations, a visiting route including the aforementioned multiple destinations is determined, Searching for accommodations within the search range associated with the location information of the last of the aforementioned multiple visited locations, and By adding the accommodation facility to the end of the aforementioned visit route, a travel route is generated. Transmitting the travel plan, including the aforementioned travel route, to the user terminal, A program that executes something.