diff --git a/docs/docs/integrations/toolkits/amadeus.ipynb b/docs/docs/integrations/toolkits/amadeus.ipynb index 787bd3dfbfc..f1da79f0a0d 100644 --- a/docs/docs/integrations/toolkits/amadeus.ipynb +++ b/docs/docs/integrations/toolkits/amadeus.ipynb @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2024-01-13T17:45:56.531388579Z", @@ -49,6 +49,7 @@ "\n", "os.environ[\"AMADEUS_CLIENT_ID\"] = \"CLIENT_ID\"\n", "os.environ[\"AMADEUS_CLIENT_SECRET\"] = \"CLIENT_SECRET\"\n", + "\n", "# os.environ[\"AMADEUS_HOSTNAME\"] = \"production\" or \"test\"" ] }, @@ -64,7 +65,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "source": [ "By default, `AmadeusToolkit` uses `ChatOpenAI` to identify airports closest to a given location. To use it, just set `OPENAI_API_KEY`.\n" @@ -74,26 +78,29 @@ "cell_type": "code", "execution_count": 3, "metadata": { - "collapsed": false, "ExecuteTime": { "end_time": "2024-01-13T17:45:56.557041160Z", "start_time": "2024-01-13T17:45:56.530682481Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false } }, "outputs": [], "source": [ - "os.environ[\"OPENAI_API_KEY\"] = \"YOUR_OPENAI_KEY\"" + "os.environ[\"OPENAI_API_KEY\"] = \"YOUR_OPENAI_API_KEY\"" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { - "tags": [], "ExecuteTime": { "end_time": "2024-01-13T17:45:58.431168124Z", "start_time": "2024-01-13T17:45:56.536269739Z" - } + }, + "tags": [] }, "outputs": [], "source": [ @@ -106,7 +113,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "source": [ "Alternatively, you can use any LLM supported by langchain, e.g. `HuggingFaceHub`. " @@ -116,7 +126,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -141,37 +154,45 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": { - "tags": [], "ExecuteTime": { "end_time": "2024-01-13T17:46:00.148691365Z", "start_time": "2024-01-13T17:45:59.317173243Z" - } + }, + "tags": [] }, "outputs": [], "source": [ "from langchain import hub\n", "from langchain.agents import AgentExecutor, create_react_agent\n", + "from langchain.agents.output_parsers import ReActJsonSingleInputOutputParser\n", + "from langchain.tools.render import render_text_description_and_args\n", "from langchain_openai import ChatOpenAI" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": { - "tags": [], "ExecuteTime": { "end_time": "2024-01-13T17:46:01.270044101Z", "start_time": "2024-01-13T17:46:00.148988945Z" - } + }, + "tags": [] }, "outputs": [], "source": [ "llm = ChatOpenAI(temperature=0)\n", "\n", - "prompt = hub.pull(\"hwchase17/react\")\n", - "agent = create_react_agent(llm, tools, prompt)\n", + "prompt = hub.pull(\"hwchase17/react-json\")\n", + "agent = create_react_agent(\n", + " llm,\n", + " tools,\n", + " prompt,\n", + " tools_renderer=render_text_description_and_args,\n", + " output_parser=ReActJsonSingleInputOutputParser(),\n", + ")\n", "\n", "agent_executor = AgentExecutor(\n", " agent=agent,\n", @@ -184,10 +205,13 @@ "cell_type": "code", "execution_count": 8, "metadata": { - "collapsed": false, "ExecuteTime": { "end_time": "2024-01-13T17:46:06.176227412Z", "start_time": "2024-01-13T17:46:01.272468682Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false } }, "outputs": [ @@ -197,18 +221,21 @@ "text": [ "\n", "\n", - "\u001B[1m> Entering new AgentExecutor chain...\u001B[0m\n", - "\u001B[32;1m\u001B[1;3mI should use the closest_airport tool to find the airport in Cali, Colombia.\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", + "\u001b[32;1m\u001b[1;3mI should use the closest_airport tool to find the airport in Cali, Colombia.\n", "Action: closest_airport\n", - "Action Input: location= \"Cali, Colombia\"\u001B[0m\u001B[36;1m\u001B[1;3mcontent='{\\n \"iataCode\": \"CLO\"\\n}'\u001B[0m\u001B[32;1m\u001B[1;3mThe airport in Cali, Colombia is called CLO.\n", - "Final Answer: CLO\u001B[0m\n", + "Action Input: location= \"Cali, Colombia\"\u001b[0m\u001b[36;1m\u001b[1;3mcontent='{\\n \"iataCode\": \"CLO\"\\n}'\u001b[0m\u001b[32;1m\u001b[1;3mThe airport in Cali, Colombia is called CLO.\n", + "Final Answer: CLO\u001b[0m\n", "\n", - "\u001B[1m> Finished chain.\u001B[0m\n" + "\u001b[1m> Finished chain.\u001b[0m\n" ] }, { "data": { - "text/plain": "{'input': 'What is the name of the airport in Cali, Colombia?',\n 'output': 'CLO'}" + "text/plain": [ + "{'input': 'What is the name of the airport in Cali, Colombia?',\n", + " 'output': 'CLO'}" + ] }, "execution_count": 8, "metadata": {}, @@ -219,24 +246,303 @@ "agent_executor.invoke({\"input\": \"What is the name of the airport in Cali, Colombia?\"})" ] }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": false - }, - "source": [] - }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", + "\u001b[32;1m\u001b[1;3mQuestion: What is the departure time of the cheapest flight on March 10, 2024 leaving Dallas, Texas before noon to Lincoln, Nebraska?\n", + "Thought: We need to find the closest airport to Dallas, Texas, and then search for the cheapest flight departing before noon on March 10, 2024, to Lincoln, Nebraska.\n", + "Action:\n", + "```\n", + "{\n", + " \"action\": \"closest_airport\",\n", + " \"action_input\": {\n", + " \"location\": \"Dallas, Texas\"\n", + " }\n", + "}\n", + "```\u001b[0m\u001b[36;1m\u001b[1;3mcontent='{\\n \"iataCode\": \"DFW\"\\n}'\u001b[0m\u001b[32;1m\u001b[1;3mNow, we have the IATA code for Dallas, Texas. Next, we will search for the cheapest flight departing before noon on March 10, 2024, from Dallas (DFW) to Lincoln, Nebraska.\n", + "\n", + "Action:\n", + "```\n", + "{\n", + " \"action\": \"single_flight_search\",\n", + " \"action_input\": {\n", + " \"originLocationCode\": \"DFW\",\n", + " \"destinationLocationCode\": \"LNK\",\n", + " \"departureDateTimeEarliest\": \"2024-03-10T00:00:00\",\n", + " \"departureDateTimeLatest\": \"2024-03-10T12:00:00\"\n", + " }\n", + "}\n", + "```\u001b[0m\u001b[33;1m\u001b[1;3m[{'price': {'total': '593.35', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T10:54:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T13:15:00'}, 'flightNumber': '1634', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '652.68', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T07:25:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T09:46:00'}, 'flightNumber': '380', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-10T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-10T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '765.35', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T16:42:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T17:49:00'}, 'flightNumber': '2655', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T17:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T20:07:00'}, 'flightNumber': '4910', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '810.82', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T12:35:00'}, 'arrival': {'iataCode': 'IAD', 'at': '2024-03-10T16:20:00'}, 'flightNumber': '358', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-11T07:45:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T08:51:00'}, 'flightNumber': '4645', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '810.82', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T12:35:00'}, 'arrival': {'iataCode': 'IAD', 'at': '2024-03-10T16:20:00'}, 'flightNumber': '358', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-11T09:45:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T10:42:00'}, 'flightNumber': '5215', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '815.99', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T12:35:00'}, 'arrival': {'iataCode': 'IAD', 'at': '2024-03-10T16:20:00'}, 'flightNumber': '358', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'IAD', 'at': '2024-03-11T07:00:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-11T08:03:00'}, 'flightNumber': '418', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '901.12', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:00:00'}, 'arrival': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T10:25:00'}, 'flightNumber': '1517', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T13:15:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T14:50:00'}, 'flightNumber': '323', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-10T19:35:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-10T21:19:00'}, 'flightNumber': '5413', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '901.12', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:00:00'}, 'arrival': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T10:25:00'}, 'flightNumber': '1517', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T11:40:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T13:23:00'}, 'flightNumber': '1027', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-10T19:35:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-10T21:19:00'}, 'flightNumber': '5413', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '919.40', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:00:00'}, 'arrival': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T10:25:00'}, 'flightNumber': '1517', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T15:10:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T16:57:00'}, 'flightNumber': '1504', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-10T19:35:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-10T21:19:00'}, 'flightNumber': '5413', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '963.36', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T13:45:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T14:45:00'}, 'flightNumber': '1380', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T17:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-10T20:07:00'}, 'flightNumber': '4910', 'carrier': 'UNITED AIRLINES'}]}]\u001b[0m\u001b[32;1m\u001b[1;3mObservation: The cheapest flight on March 10, 2024, from Dallas, Texas (DFW) to Lincoln, Nebraska (LNK) departs at 10:54 AM.\n", + "Final Answer: The departure time of the cheapest flight on March 10, 2024, leaving Dallas, Texas before noon to Lincoln, Nebraska is 10:54 AM.\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "{'input': 'What is the departure time of the cheapest flight on March 10, 2024 leaving Dallas, Texas before noon to Lincoln, Nebraska?',\n", + " 'output': 'The departure time of the cheapest flight on March 10, 2024, leaving Dallas, Texas before noon to Lincoln, Nebraska is 10:54 AM.'}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "agent_executor.invoke(\n", " {\n", - " \"input\": \"What is the departure time of the cheapest flight on August 23, 2023 leaving Dallas, Texas before noon to Lincoln, Nebraska?\"\n", + " \"input\": \"What is the departure time of the cheapest flight on March 10, 2024 leaving Dallas, Texas before noon to Lincoln, Nebraska?\"\n", + " }\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", + "\u001b[32;1m\u001b[1;3mQuestion: At what time does the earliest flight on March 10, 2024, leaving Dallas, Texas, to Lincoln, Nebraska land in Nebraska?\n", + "\n", + "Thought: We need to find the closest airport to Dallas, Texas, and then search for a single flight from there to Lincoln, Nebraska on March 10, 2024.\n", + "\n", + "Action:\n", + "```\n", + "{\n", + " \"action\": \"closest_airport\",\n", + " \"action_input\": {\n", + " \"location\": \"Dallas, Texas\"\n", + " }\n", + "}\n", + "```\n", + "\u001b[0m\u001b[36;1m\u001b[1;3mcontent='{\\n \"iataCode\": \"DFW\"\\n}'\u001b[0m\u001b[32;1m\u001b[1;3mNow that we have the closest airport to Dallas, Texas, which is Dallas/Fort Worth International Airport with the IATA code DFW, we can proceed to search for a single flight from DFW to Lincoln, Nebraska on March 10, 2024.\n", + "\n", + "Action:\n", + "```\n", + "{\n", + " \"action\": \"single_flight_search\",\n", + " \"action_input\": {\n", + " \"originLocationCode\": \"DFW\",\n", + " \"destinationLocationCode\": \"LNK\",\n", + " \"departureDateTimeEarliest\": \"2024-03-10T00:00:00\",\n", + " \"departureDateTimeLatest\": \"2024-03-10T23:59:59\"\n", + " }\n", + "}\n", + "```\n", + "\u001b[0m\u001b[33;1m\u001b[1;3m[{'price': {'total': '593.35', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T14:20:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T16:49:00'}, 'flightNumber': '1583', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '593.35', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T10:54:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T13:15:00'}, 'flightNumber': '1634', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '652.68', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T07:25:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T09:46:00'}, 'flightNumber': '380', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-10T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-10T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '666.77', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T12:35:00'}, 'arrival': {'iataCode': 'IAD', 'at': '2024-03-10T16:20:00'}, 'flightNumber': '358', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'IAD', 'at': '2024-03-11T08:35:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-11T09:39:00'}, 'flightNumber': '1744', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '666.77', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T12:35:00'}, 'arrival': {'iataCode': 'IAD', 'at': '2024-03-10T16:20:00'}, 'flightNumber': '358', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-11T07:45:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T08:51:00'}, 'flightNumber': '4645', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '666.77', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T12:35:00'}, 'arrival': {'iataCode': 'IAD', 'at': '2024-03-10T16:20:00'}, 'flightNumber': '358', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-11T10:45:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T11:56:00'}, 'flightNumber': '4704', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '666.77', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T12:35:00'}, 'arrival': {'iataCode': 'IAD', 'at': '2024-03-10T16:20:00'}, 'flightNumber': '358', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-11T09:45:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T10:42:00'}, 'flightNumber': '5215', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '764.60', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T17:15:00'}, 'arrival': {'iataCode': 'IAD', 'at': '2024-03-10T21:10:00'}, 'flightNumber': '1240', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-11T09:45:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T10:42:00'}, 'flightNumber': '5215', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '2', 'at': '2024-03-11T12:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T14:19:00'}, 'flightNumber': '5728', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '765.35', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T16:42:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T17:49:00'}, 'flightNumber': '2655', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T15:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T18:12:00'}, 'flightNumber': '4252', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '765.35', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T16:42:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T17:49:00'}, 'flightNumber': '2655', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T17:45:00'}, 'arrival': {'iataCode': 'LNK', 'at': '2024-03-11T20:07:00'}, 'flightNumber': '4910', 'carrier': 'UNITED AIRLINES'}]}]\u001b[0m\u001b[32;1m\u001b[1;3mThe earliest flight on March 10, 2024, leaving Dallas, Texas to Lincoln, Nebraska lands in Nebraska at 14:19 on March 11, 2024.\n", + "\n", + "Final Answer: The earliest flight on March 10, 2024, leaving Dallas, Texas to Lincoln, Nebraska lands in Nebraska at 14:19 on March 11, 2024.\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "{'input': 'At what time does earliest flight on March 10, 2024 leaving Dallas, Texas to Lincoln, Nebraska land in Nebraska?',\n", + " 'output': 'The earliest flight on March 10, 2024, leaving Dallas, Texas to Lincoln, Nebraska lands in Nebraska at 14:19 on March 11, 2024.'}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "agent_executor.invoke(\n", + " {\n", + " \"input\": \"At what time does earliest flight on March 10, 2024 leaving Dallas, Texas to Lincoln, Nebraska land in Nebraska?\"\n", + " }\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", + "\u001b[32;1m\u001b[1;3mQuestion: What is the full travel time for the cheapest flight between Portland, Oregon to Dallas, TX on March 10, 2024?\n", + "Thought: We need to find the cheapest flight between Portland, Oregon and Dallas, TX on March 10, 2024, and then calculate the total travel time.\n", + "Action:\n", + "```\n", + "{\n", + " \"action\": \"single_flight_search\",\n", + " \"action_input\": {\n", + " \"originLocationCode\": \"PDX\",\n", + " \"destinationLocationCode\": \"DFW\",\n", + " \"departureDateTimeEarliest\": \"2024-03-10T00:00:00\",\n", + " \"departureDateTimeLatest\": \"2024-03-10T23:59:59\"\n", + " }\n", + "}\n", + "```\u001b[0m\u001b[33;1m\u001b[1;3m[{'price': {'total': '246.13', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T12:09:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T14:22:00'}, 'flightNumber': '427', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-11T05:00:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T09:39:00'}, 'flightNumber': '269', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '246.13', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T12:09:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T14:22:00'}, 'flightNumber': '427', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-11T09:30:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T14:11:00'}, 'flightNumber': '2920', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '246.13', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T05:45:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T07:59:00'}, 'flightNumber': '1722', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-11T05:00:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T09:39:00'}, 'flightNumber': '269', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '304.18', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T12:09:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T14:22:00'}, 'flightNumber': '427', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T20:21:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T00:59:00'}, 'flightNumber': '1200', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '304.18', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T05:45:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T07:59:00'}, 'flightNumber': '1722', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T20:21:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T00:59:00'}, 'flightNumber': '1200', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '377.48', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T16:05:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T19:28:00'}, 'flightNumber': '2254', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T20:20:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T23:18:00'}, 'flightNumber': '772', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '377.48', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T07:11:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T13:00:00'}, 'flightNumber': '1693', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T15:50:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T18:25:00'}, 'flightNumber': '793', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '382.10', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T10:38:00'}, 'arrival': {'iataCode': 'IAH', 'terminal': 'C', 'at': '2024-03-10T20:38:00'}, 'flightNumber': '1823', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'IAH', 'terminal': 'C', 'at': '2024-03-10T21:30:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T22:45:00'}, 'flightNumber': '320', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '389.10', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T19:04:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T21:09:00'}, 'flightNumber': '431', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-11T05:00:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T09:39:00'}, 'flightNumber': '269', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '389.10', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T19:04:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T21:09:00'}, 'flightNumber': '431', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-11T09:30:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T14:11:00'}, 'flightNumber': '2920', 'carrier': 'SPIRIT AIRLINES'}]}]\u001b[0m\u001b[32;1m\u001b[1;3mWe have multiple flight options with different total prices. We need to calculate the total travel time for each option to find the cheapest flight's full travel time.\n", + "Action:\n", + "```\n", + "{\n", + " \"action\": \"single_flight_search\",\n", + " \"action_input\": {\n", + " \"originLocationCode\": \"PDX\",\n", + " \"destinationLocationCode\": \"DFW\",\n", + " \"departureDateTimeEarliest\": \"2024-03-10T00:00:00\",\n", + " \"departureDateTimeLatest\": \"2024-03-10T23:59:59\"\n", + " }\n", + "}\n", + "```\u001b[0m\u001b[33;1m\u001b[1;3m[{'price': {'total': '246.13', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T12:09:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T14:22:00'}, 'flightNumber': '427', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-11T05:00:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T09:39:00'}, 'flightNumber': '269', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '246.13', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T12:09:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T14:22:00'}, 'flightNumber': '427', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-11T09:30:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T14:11:00'}, 'flightNumber': '2920', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '246.13', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T05:45:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T07:59:00'}, 'flightNumber': '1722', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-11T05:00:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T09:39:00'}, 'flightNumber': '269', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '304.18', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T12:09:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T14:22:00'}, 'flightNumber': '427', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T20:21:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T00:59:00'}, 'flightNumber': '1200', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '304.18', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T05:45:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T07:59:00'}, 'flightNumber': '1722', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T20:21:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T00:59:00'}, 'flightNumber': '1200', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '377.48', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T16:05:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T19:28:00'}, 'flightNumber': '2254', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T20:20:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T23:18:00'}, 'flightNumber': '772', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '377.48', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T07:11:00'}, 'arrival': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T13:00:00'}, 'flightNumber': '1693', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'ORD', 'terminal': '1', 'at': '2024-03-10T15:50:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T18:25:00'}, 'flightNumber': '793', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '382.10', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T10:38:00'}, 'arrival': {'iataCode': 'IAH', 'terminal': 'C', 'at': '2024-03-10T20:38:00'}, 'flightNumber': '1823', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'IAH', 'terminal': 'C', 'at': '2024-03-10T21:30:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T22:45:00'}, 'flightNumber': '320', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '389.10', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T19:04:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T21:09:00'}, 'flightNumber': '431', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-11T05:00:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T09:39:00'}, 'flightNumber': '269', 'carrier': 'SPIRIT AIRLINES'}]}, {'price': {'total': '389.10', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'PDX', 'at': '2024-03-10T19:04:00'}, 'arrival': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-10T21:09:00'}, 'flightNumber': '431', 'carrier': 'SPIRIT AIRLINES'}, {'departure': {'iataCode': 'LAS', 'terminal': '1', 'at': '2024-03-11T09:30:00'}, 'arrival': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-11T14:11:00'}, 'flightNumber': '2920', 'carrier': 'SPIRIT AIRLINES'}]}]\u001b[0m" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " Error: Earliest and latest departure dates need to be the same date. If you're trying to search for round-trip flights, call this function for the outbound flight first, and then call again for the return flight. \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[32;1m\u001b[1;3mWe have retrieved the flight options, but we need to calculate the total travel time for each option to find the cheapest flight's full travel time.\n", + "Action:\n", + "```\n", + "{\n", + " \"action\": \"single_flight_search\",\n", + " \"action_input\": {\n", + " \"originLocationCode\": \"PDX\",\n", + " \"destinationLocationCode\": \"DFW\",\n", + " \"departureDateTimeEarliest\": \"2024-03-10T12:09:00\",\n", + " \"departureDateTimeLatest\": \"2024-03-11T14:11:00\"\n", + " }\n", + "}\n", + "```\u001b[0m\u001b[33;1m\u001b[1;3m[None]\u001b[0m\u001b[32;1m\u001b[1;3mIt seems that we are unable to retrieve the specific flight details for the cheapest option to calculate the full travel time. We can estimate the total travel time based on the layover and flight durations provided in the previous observations.\n", + "\n", + "Final Answer: The full travel time for the cheapest flight between Portland, Oregon and Dallas, TX on March 10, 2024, is approximately 21 hours and 2 minutes.\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "{'input': 'What is the full travel time for the cheapest flight between Portland, Oregon to Dallas, TX on March 10, 2024?',\n", + " 'output': 'The full travel time for the cheapest flight between Portland, Oregon and Dallas, TX on March 10, 2024, is approximately 21 hours and 2 minutes.'}" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# to execute api correctly, change the querying date to feature\n", + "agent_executor.invoke(\n", + " {\n", + " \"input\": \"What is the full travel time for the cheapest flight between Portland, Oregon to Dallas, TX on March 10, 2024?\"\n", + " }\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", + "\u001b[32;1m\u001b[1;3mQuestion: Please draft a concise email from Santiago to Paul, Santiago's travel agent, asking him to book the earliest flight from DFW to DCA on March 10, 2024. Include all flight details in the email.\n", + "\n", + "Thought: We need to find the earliest flight from Dallas Fort Worth (DFW) to Washington D.C. (DCA) on March 10, 2024, and provide all the necessary flight details in the email.\n", + "\n", + "Action:\n", + "```\n", + "{\n", + " \"action\": \"single_flight_search\",\n", + " \"action_input\": {\n", + " \"originLocationCode\": \"DFW\",\n", + " \"destinationLocationCode\": \"DCA\",\n", + " \"departureDateTimeEarliest\": \"2024-03-10T00:00:00\",\n", + " \"departureDateTimeLatest\": \"2024-03-10T23:59:59\"\n", + " }\n", + "}\n", + "```\n", + "\u001b[0m\u001b[33;1m\u001b[1;3m[{'price': {'total': '303.31', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:00:00'}, 'arrival': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T10:25:00'}, 'flightNumber': '1517', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T12:00:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-10T13:19:00'}, 'flightNumber': '4431', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '405.43', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:00:00'}, 'arrival': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T10:25:00'}, 'flightNumber': '1517', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T14:00:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-10T15:18:00'}, 'flightNumber': '4433', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '539.81', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T08:59:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T10:22:00'}, 'flightNumber': '2147', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T12:32:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T17:53:00'}, 'flightNumber': '688', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T11:00:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T12:17:00'}, 'flightNumber': '2549', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T16:40:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T21:59:00'}, 'flightNumber': '690', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:15:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T07:27:00'}, 'flightNumber': '1323', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T12:32:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T17:53:00'}, 'flightNumber': '688', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T08:59:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T10:22:00'}, 'flightNumber': '2147', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T16:40:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T21:59:00'}, 'flightNumber': '690', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T23:29:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-11T00:43:00'}, 'flightNumber': '4463', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T07:30:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-11T12:56:00'}, 'flightNumber': '686', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:15:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T07:27:00'}, 'flightNumber': '1323', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T16:40:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T21:59:00'}, 'flightNumber': '690', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T20:56:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T22:12:00'}, 'flightNumber': '4069', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T07:30:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-11T12:56:00'}, 'flightNumber': '686', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T23:29:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-11T00:43:00'}, 'flightNumber': '4463', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T12:32:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-11T17:53:00'}, 'flightNumber': '688', 'carrier': 'FRONTIER AIRLINES'}]}]\u001b[0m\u001b[32;1m\u001b[1;3mWe have found several flight options from DFW to DCA on March 10, 2024. We need to select the earliest one and include all the necessary flight details in the email to Paul.\n", + "\n", + "Action:\n", + "```\n", + "{\n", + " \"action\": \"single_flight_search\",\n", + " \"action_input\": {\n", + " \"originLocationCode\": \"DFW\",\n", + " \"destinationLocationCode\": \"DCA\",\n", + " \"departureDateTimeEarliest\": \"2024-03-10T00:00:00\",\n", + " \"departureDateTimeLatest\": \"2024-03-10T23:59:59\"\n", + " }\n", + "}\n", + "```\n", + "\u001b[0m\u001b[33;1m\u001b[1;3m[{'price': {'total': '303.31', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:00:00'}, 'arrival': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T10:25:00'}, 'flightNumber': '1517', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T12:00:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-10T13:19:00'}, 'flightNumber': '4431', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '405.43', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:00:00'}, 'arrival': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T10:25:00'}, 'flightNumber': '1517', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T14:00:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-10T15:18:00'}, 'flightNumber': '4433', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '539.81', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T08:59:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T10:22:00'}, 'flightNumber': '2147', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T12:32:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T17:53:00'}, 'flightNumber': '688', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T11:00:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T12:17:00'}, 'flightNumber': '2549', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T16:40:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T21:59:00'}, 'flightNumber': '690', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:15:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T07:27:00'}, 'flightNumber': '1323', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T12:32:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T17:53:00'}, 'flightNumber': '688', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T08:59:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T10:22:00'}, 'flightNumber': '2147', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T16:40:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T21:59:00'}, 'flightNumber': '690', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T23:29:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-11T00:43:00'}, 'flightNumber': '4463', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T07:30:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-11T12:56:00'}, 'flightNumber': '686', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:15:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T07:27:00'}, 'flightNumber': '1323', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T16:40:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T21:59:00'}, 'flightNumber': '690', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T20:56:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T22:12:00'}, 'flightNumber': '4069', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T07:30:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-11T12:56:00'}, 'flightNumber': '686', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T23:29:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-11T00:43:00'}, 'flightNumber': '4463', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T12:32:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-11T17:53:00'}, 'flightNumber': '688', 'carrier': 'FRONTIER AIRLINES'}]}]\u001b[0m\u001b[32;1m\u001b[1;3mWe have found several flight options from DFW to DCA on March 10, 2024. We need to select the earliest one and include all the necessary flight details in the email to Paul.\n", + "\n", + "Action:\n", + "```\n", + "{\n", + " \"action\": \"single_flight_search\",\n", + " \"action_input\": {\n", + " \"originLocationCode\": \"DFW\",\n", + " \"destinationLocationCode\": \"DCA\",\n", + " \"departureDateTimeEarliest\": \"2024-03-10T00:00:00\",\n", + " \"departureDateTimeLatest\": \"2024-03-10T23:59:59\"\n", + " }\n", + "}\n", + "```\n", + "\u001b[0m\u001b[33;1m\u001b[1;3m[{'price': {'total': '303.31', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:00:00'}, 'arrival': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T10:25:00'}, 'flightNumber': '1517', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T12:00:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-10T13:19:00'}, 'flightNumber': '4431', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '405.43', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:00:00'}, 'arrival': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T10:25:00'}, 'flightNumber': '1517', 'carrier': 'UNITED AIRLINES'}, {'departure': {'iataCode': 'EWR', 'terminal': 'C', 'at': '2024-03-10T14:00:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '2', 'at': '2024-03-10T15:18:00'}, 'flightNumber': '4433', 'carrier': 'UNITED AIRLINES'}]}, {'price': {'total': '539.81', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T08:59:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T10:22:00'}, 'flightNumber': '2147', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T12:32:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T17:53:00'}, 'flightNumber': '688', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T11:00:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T12:17:00'}, 'flightNumber': '2549', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T16:40:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T21:59:00'}, 'flightNumber': '690', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:15:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T07:27:00'}, 'flightNumber': '1323', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T12:32:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T17:53:00'}, 'flightNumber': '688', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T08:59:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T10:22:00'}, 'flightNumber': '2147', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T16:40:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T21:59:00'}, 'flightNumber': '690', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T23:29:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-11T00:43:00'}, 'flightNumber': '4463', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T07:30:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-11T12:56:00'}, 'flightNumber': '686', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T06:15:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T07:27:00'}, 'flightNumber': '1323', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-10T16:40:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-10T21:59:00'}, 'flightNumber': '690', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T20:56:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-10T22:12:00'}, 'flightNumber': '4069', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T07:30:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-11T12:56:00'}, 'flightNumber': '686', 'carrier': 'FRONTIER AIRLINES'}]}, {'price': {'total': '544.98', 'currency': 'EURO'}, 'segments': [{'departure': {'iataCode': 'DFW', 'terminal': 'E', 'at': '2024-03-10T23:29:00'}, 'arrival': {'iataCode': 'DEN', 'at': '2024-03-11T00:43:00'}, 'flightNumber': '4463', 'carrier': 'FRONTIER AIRLINES'}, {'departure': {'iataCode': 'DEN', 'at': '2024-03-11T12:32:00'}, 'arrival': {'iataCode': 'DCA', 'terminal': '1', 'at': '2024-03-11T17:53:00'}, 'flightNumber': '688', 'carrier': 'FRONTIER AIRLINES'}]}]\u001b[0m\u001b[32;1m\u001b[1;3mFinal Answer: We have found several flight options from Dallas Fort Worth (DFW) to Washington D.C. (DCA) on March 10, 2024. The earliest flight is with United Airlines, departing from DFW at 06:00 and arriving at DCA at 13:19 with flight numbers 1517 and 4431. The total price is 303.31 EURO.\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "{'input': \"Please draft a concise email from Santiago to Paul, Santiago's travel agent, asking him to book the earliest flight from DFW to DCA on March 10, 2024. Include all flight details in the email.\",\n", + " 'output': 'We have found several flight options from Dallas Fort Worth (DFW) to Washington D.C. (DCA) on March 10, 2024. The earliest flight is with United Airlines, departing from DFW at 06:00 and arriving at DCA at 13:19 with flight numbers 1517 and 4431. The total price is 303.31 EURO.'}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "agent_executor.invoke(\n", + " {\n", + " \"input\": \"Please draft a concise email from Santiago to Paul, Santiago's travel agent, asking him to book the earliest flight from DFW to DCA on March 10, 2024. Include all flight details in the email.\"\n", " }\n", ")" ] @@ -246,39 +552,7 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "agent_executor.invoke(\n", - " {\n", - " \"input\": \"At what time does earliest flight on August 23, 2023 leaving Dallas, Texas to Lincoln, Nebraska land in Nebraska?\"\n", - " }\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "agent_executor.invoke(\n", - " {\n", - " \"input\": \"What is the full travel time for the cheapest flight between Portland, Oregon to Dallas, TX on October 3, 2023?\"\n", - " }\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "agent_executor.invoke(\n", - " {\n", - " \"input\": \"Please draft a concise email from Santiago to Paul, Santiago's travel agent, asking him to book the earliest flight from DFW to DCA on Aug 28, 2023. Include all flight details in the email.\"\n", - " }\n", - ")" - ] + "source": [] } ], "metadata": { @@ -297,7 +571,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.9.18" } }, "nbformat": 4, diff --git a/libs/community/langchain_community/tools/amadeus/flight_search.py b/libs/community/langchain_community/tools/amadeus/flight_search.py index 21d9e4bce7f..708a53054dc 100644 --- a/libs/community/langchain_community/tools/amadeus/flight_search.py +++ b/libs/community/langchain_community/tools/amadeus/flight_search.py @@ -31,7 +31,7 @@ class FlightSearchSchema(BaseModel): description=( " The earliest departure datetime from the origin airport " " for the flight search in the following format: " - ' "YYYY-MM-DDTHH:MM", where "T" separates the date and time ' + ' "YYYY-MM-DDTHH:MM:SS", where "T" separates the date and time ' ' components. For example: "2023-06-09T10:30:00" represents ' " June 9th, 2023, at 10:30 AM. " ) @@ -40,7 +40,7 @@ class FlightSearchSchema(BaseModel): description=( " The latest departure datetime from the origin airport " " for the flight search in the following format: " - ' "YYYY-MM-DDTHH:MM", where "T" separates the date and time ' + ' "YYYY-MM-DDTHH:MM:SS", where "T" separates the date and time ' ' components. For example: "2023-06-09T10:30:00" represents ' " June 9th, 2023, at 10:30 AM. " ) @@ -97,6 +97,7 @@ class AmadeusFlightSearch(AmadeusBaseTool): return [None] # Collect all results from the Amadeus Flight Offers Search API + response = None try: response = client.shopping.flight_offers_search.get( originLocationCode=originLocationCode, @@ -109,32 +110,32 @@ class AmadeusFlightSearch(AmadeusBaseTool): # Generate output dictionary output = [] + if response is not None: + for offer in response.data: + itinerary: Dict = {} + itinerary["price"] = {} + itinerary["price"]["total"] = offer["price"]["total"] + currency = offer["price"]["currency"] + currency = response.result["dictionaries"]["currencies"][currency] + itinerary["price"]["currency"] = {} + itinerary["price"]["currency"] = currency - for offer in response.data: - itinerary: Dict = {} - itinerary["price"] = {} - itinerary["price"]["total"] = offer["price"]["total"] - currency = offer["price"]["currency"] - currency = response.result["dictionaries"]["currencies"][currency] - itinerary["price"]["currency"] = {} - itinerary["price"]["currency"] = currency + segments = [] + for segment in offer["itineraries"][0]["segments"]: + flight = {} + flight["departure"] = segment["departure"] + flight["arrival"] = segment["arrival"] + flight["flightNumber"] = segment["number"] + carrier = segment["carrierCode"] + carrier = response.result["dictionaries"]["carriers"][carrier] + flight["carrier"] = carrier - segments = [] - for segment in offer["itineraries"][0]["segments"]: - flight = {} - flight["departure"] = segment["departure"] - flight["arrival"] = segment["arrival"] - flight["flightNumber"] = segment["number"] - carrier = segment["carrierCode"] - carrier = response.result["dictionaries"]["carriers"][carrier] - flight["carrier"] = carrier + segments.append(flight) - segments.append(flight) + itinerary["segments"] = [] + itinerary["segments"] = segments - itinerary["segments"] = [] - itinerary["segments"] = segments - - output.append(itinerary) + output.append(itinerary) # Filter out flights after latest departure time for index, offer in enumerate(output):