From 9e61cc84129c89c08469109c4d2317c4a53831b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Kole=C5=BCy=C5=84ski?= <1st.cubix@gmail.com> Date: Wed, 24 Sep 2025 12:57:08 +0000 Subject: [PATCH 01/10] More attracton data --- src/mcp/attractions-mcp/config.py | 331 ++++++++++++++++++++++++++++-- src/mcp/attractions-mcp/models.py | 27 +++ 2 files changed, 343 insertions(+), 15 deletions(-) diff --git a/src/mcp/attractions-mcp/config.py b/src/mcp/attractions-mcp/config.py index 7500597..e20438b 100644 --- a/src/mcp/attractions-mcp/config.py +++ b/src/mcp/attractions-mcp/config.py @@ -64,7 +64,19 @@ "image_url": "https://example.com/eiffel-tower.jpg", "website": "https://www.toureiffel.paris", "opening_hours": "9:30 AM - 11:45 PM", - "entry_fee": "€29.40 - €73.30" + "entry_fee": "€29.40 - €73.30", + "disability_accessible": True, + "outdoors": False, + "group_size": "1-50", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Romantic", + "recommended_packing_list": ["Camera", "Water bottle", "Sunscreen"] }, { "id": 2, @@ -76,7 +88,19 @@ "image_url": "https://example.com/taj-mahal.jpg", "website": "https://www.tajmahal.gov.in", "opening_hours": "6:00 AM - 7:00 PM", - "entry_fee": "₹1100 (foreigners), ₹50 (Indians)" + "entry_fee": "₹1100 (foreigners), ₹50 (Indians)", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-100", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Low", + "time_needed": "2-4 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Cultural", + "recommended_packing_list": ["Hat", "Camera", "Comfortable shoes"] }, { "id": 3, @@ -88,7 +112,19 @@ "image_url": "https://example.com/colosseum.jpg", "website": "https://www.coopculture.it", "opening_hours": "8:30 AM - 7:15 PM", - "entry_fee": "€16 - €22" + "entry_fee": "€16 - €22", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-30", + "age_recommendation": "6+", + "age_restriction": None, + "budget": "Medium", + "time_needed": "1-2 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Water bottle", "Hat", "Guidebook"] }, { "id": 4, @@ -100,7 +136,19 @@ "image_url": "https://example.com/machu-picchu.jpg", "website": "https://www.machupicchu.gob.pe", "opening_hours": "6:00 AM - 5:30 PM", - "entry_fee": "$47 - $62" + "entry_fee": "$47 - $62", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-20", + "age_recommendation": "10+", + "age_restriction": None, + "budget": "High", + "time_needed": "4-6 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Hiking boots", "Raincoat", "Snacks", "Camera"] }, { "id": 5, @@ -112,7 +160,19 @@ "image_url": "https://example.com/louvre.jpg", "website": "https://www.louvre.fr", "opening_hours": "9:00 AM - 6:00 PM", - "entry_fee": "€17" + "entry_fee": "€17", + "disability_accessible": True, + "outdoors": False, + "group_size": "1-40", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "3-4 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Cultural", + "recommended_packing_list": ["Camera", "Guidebook"] }, { "id": 6, @@ -124,7 +184,19 @@ "image_url": "https://example.com/great-wall.jpg", "website": "https://www.mutianyu.com", "opening_hours": "7:30 AM - 5:30 PM", - "entry_fee": "¥45 - ¥65" + "entry_fee": "¥45 - ¥65", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-50", + "age_recommendation": "8+", + "age_restriction": None, + "budget": "Medium", + "time_needed": "3-5 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Hiking shoes", "Hat", "Water bottle"] }, { "id": 7, @@ -136,7 +208,19 @@ "image_url": "https://example.com/santorini.jpg", "website": "https://www.santorini.com", "opening_hours": "24/7", - "entry_fee": "Free" + "entry_fee": "Free", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-20", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "Full day", + "pet_friendly": True, + "wifi_available": True, + "photogenic": True, + "mood": "Relaxing", + "recommended_packing_list": ["Sunscreen", "Swimsuit", "Camera"] }, { "id": 8, @@ -148,7 +232,19 @@ "image_url": "https://example.com/angkor-wat.jpg", "website": "https://www.angkorwat.com", "opening_hours": "5:00 AM - 6:00 PM", - "entry_fee": "$37 (1 day), $62 (3 days)" + "entry_fee": "$37 (1 day), $62 (3 days)", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-30", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Spiritual", + "recommended_packing_list": ["Hat", "Water bottle", "Camera"] }, { "id": 9, @@ -160,7 +256,19 @@ "image_url": "https://example.com/central-park.jpg", "website": "https://www.centralparknyc.org", "opening_hours": "6:00 AM - 1:00 AM", - "entry_fee": "Free" + "entry_fee": "Free", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-100+", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Free", + "time_needed": "1-4 hours", + "pet_friendly": True, + "wifi_available": True, + "photogenic": True, + "mood": "Relaxing", + "recommended_packing_list": ["Picnic blanket", "Snacks", "Camera"] }, { "id": 10, @@ -172,7 +280,19 @@ "image_url": "https://example.com/petra.jpg", "website": "https://www.visitpetra.jo", "opening_hours": "6:00 AM - 6:00 PM", - "entry_fee": "70 JOD (1 day), 55 JOD (2 days)" + "entry_fee": "70 JOD (1 day), 55 JOD (2 days)", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-20", + "age_recommendation": "8+", + "age_restriction": None, + "budget": "Medium", + "time_needed": "3-5 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Hat", "Water bottle", "Camera"] }, { "id": 11, @@ -184,7 +304,19 @@ "image_url": "https://example.com/statue-liberty.jpg", "website": "https://www.nps.gov/stli", "opening_hours": "8:30 AM - 4:00 PM", - "entry_fee": "$23.80 - $24.30" + "entry_fee": "$23.80 - $24.30", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-50", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Patriotic", + "recommended_packing_list": ["Camera", "Water bottle"] }, { "id": 12, @@ -196,7 +328,19 @@ "image_url": "https://example.com/sagrada-familia.jpg", "website": "https://sagradafamilia.org", "opening_hours": "9:00 AM - 8:00 PM", - "entry_fee": "€26 - €40" + "entry_fee": "€26 - €40", + "disability_accessible": True, + "outdoors": False, + "group_size": "1-30", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Spiritual", + "recommended_packing_list": ["Camera", "Guidebook"] }, { "id": 13, @@ -208,7 +352,19 @@ "image_url": "https://example.com/kinkaku-ji.jpg", "website": "https://www.shokoku-ji.jp", "opening_hours": "9:00 AM - 5:00 PM", - "entry_fee": "¥500" + "entry_fee": "¥500", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-20", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Low", + "time_needed": "1-2 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Spiritual", + "recommended_packing_list": ["Camera", "Guidebook"] }, { "id": 14, @@ -220,7 +376,19 @@ "image_url": "https://example.com/sydney-opera.jpg", "website": "https://www.sydneyoperahouse.com", "opening_hours": "9:00 AM - 8:30 PM", - "entry_fee": "$43 - $175" + "entry_fee": "$43 - $175", + "disability_accessible": True, + "outdoors": False, + "group_size": "1-100+", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "High", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Cultural", + "recommended_packing_list": ["Camera", "Guidebook"] }, { "id": 15, @@ -232,7 +400,140 @@ "image_url": "https://example.com/christ-redeemer.jpg", "website": "https://www.cristoredentor.com.br", "opening_hours": "8:00 AM - 7:00 PM", - "entry_fee": "R$65 - R$98" + "entry_fee": "R$65 - R$98", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-40", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Spiritual", + "recommended_packing_list": ["Camera", "Water bottle"] + }, + # Additional mock attractions with new fields + { + "id": 16, + "name": "Berlin Zoo", + "description": "One of the world's most famous zoos, home to a wide variety of animals.", + "category": "parks", + "location": {"city": "Berlin", "country": "Germany", "region": "Berlin"}, + "rating": 4.2, + "image_url": "https://example.com/berlin-zoo.jpg", + "website": "https://www.zoo-berlin.de", + "opening_hours": "9:00 AM - 6:30 PM", + "entry_fee": "€16 - €21", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-30", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-4 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Family", + "recommended_packing_list": ["Camera", "Snacks", "Water bottle"] + }, + { + "id": 17, + "name": "Mount Fuji Hike", + "description": "Climb Japan's iconic mountain for breathtaking views.", + "category": "mountains", + "location": {"city": "Fujinomiya", "country": "Japan", "region": "Shizuoka"}, + "rating": 4.9, + "image_url": "https://example.com/mount-fuji.jpg", + "website": "https://www.japan-guide.com/e/e6901.html", + "opening_hours": "July - September", + "entry_fee": "¥1000", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-10", + "age_recommendation": "12+", + "age_restriction": "12+ only", + "budget": "Low", + "time_needed": "Full day", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Hiking boots", "Jacket", "Snacks", "Water bottle"] + }, + { + "id": 18, + "name": "Venice Gondola Ride", + "description": "Experience the romantic canals of Venice on a traditional gondola.", + "category": "entertainment", + "location": {"city": "Venice", "country": "Italy", "region": "Veneto"}, + "rating": 4.7, + "image_url": "https://example.com/venice-gondola.jpg", + "website": "https://www.venicegondola.com", + "opening_hours": "9:00 AM - 8:00 PM", + "entry_fee": "€80 - €120", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-6", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "High", + "time_needed": "30-60 min", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Romantic", + "recommended_packing_list": ["Camera", "Sunglasses"] + }, + { + "id": 19, + "name": "London Science Museum", + "description": "Interactive science exhibits for all ages.", + "category": "museums", + "location": {"city": "London", "country": "UK", "region": "England"}, + "rating": 4.5, + "image_url": "https://example.com/london-science-museum.jpg", + "website": "https://www.sciencemuseum.org.uk", + "opening_hours": "10:00 AM - 6:00 PM", + "entry_fee": "Free", + "disability_accessible": True, + "outdoors": False, + "group_size": "1-50", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Free", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Educational", + "recommended_packing_list": ["Notebook", "Camera"] + }, + { + "id": 20, + "name": "Bondi Beach", + "description": "Famous beach in Sydney, popular for surfing and sunbathing.", + "category": "beaches", + "location": {"city": "Sydney", "country": "Australia", "region": "New South Wales"}, + "rating": 4.8, + "image_url": "https://example.com/bondi-beach.jpg", + "website": "https://www.bondivillage.com", + "opening_hours": "24/7", + "entry_fee": "Free", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-100+", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Free", + "time_needed": "2-6 hours", + "pet_friendly": True, + "wifi_available": True, + "photogenic": True, + "mood": "Relaxing", + "recommended_packing_list": ["Swimsuit", "Towel", "Sunscreen", "Surfboard"] } ] diff --git a/src/mcp/attractions-mcp/models.py b/src/mcp/attractions-mcp/models.py index 920cc27..ef8e06c 100644 --- a/src/mcp/attractions-mcp/models.py +++ b/src/mcp/attractions-mcp/models.py @@ -32,6 +32,19 @@ class Attraction: website: Optional[str] = None opening_hours: Optional[str] = None entry_fee: Optional[str] = None + # Restrictions and additional info + disability_accessible: Optional[bool] = None + outdoors: Optional[bool] = None + group_size: Optional[str] = None # e.g. "1-10", "Large groups" + age_recommendation: Optional[str] = None # e.g. "All ages", "12+" + age_restriction: Optional[str] = None # e.g. "18+ only" + budget: Optional[str] = None # e.g. "Low", "Medium", "High" + time_needed: Optional[str] = None # e.g. "2-3 hours" + pet_friendly: Optional[bool] = None + wifi_available: Optional[bool] = None + photogenic: Optional[bool] = None + mood: Optional[str] = None # e.g. "Romantic", "Adventurous" + recommended_packing_list: Optional[List[str]] = None @dataclass @@ -41,6 +54,20 @@ class AttractionDetails: facilities: Optional[List[str]] = None best_time_to_visit: Optional[str] = None duration: Optional[str] = None + # Extended restrictions (for details endpoint) + disability_accessible: Optional[bool] = None + outdoors: Optional[bool] = None + group_size: Optional[str] = None + age_recommendation: Optional[str] = None + age_restriction: Optional[str] = None + budget: Optional[str] = None + time_needed: Optional[str] = None + open_hours: Optional[str] = None + pet_friendly: Optional[bool] = None + wifi_available: Optional[bool] = None + photogenic: Optional[bool] = None + mood: Optional[str] = None + recommended_packing_list: Optional[List[str]] = None @dataclass From 459eee892834fa78fbc9f4d6c610df8f068f8f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Kole=C5=BCy=C5=84ski?= <1st.cubix@gmail.com> Date: Wed, 24 Sep 2025 12:57:42 +0000 Subject: [PATCH 02/10] mcp shell scripts --- attractions.sh | 2 ++ weather.sh | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 attractions.sh create mode 100644 weather.sh diff --git a/attractions.sh b/attractions.sh new file mode 100644 index 0000000..15344b5 --- /dev/null +++ b/attractions.sh @@ -0,0 +1,2 @@ +cd ./src/mcp/attractions-mcp +uv run main.py \ No newline at end of file diff --git a/weather.sh b/weather.sh new file mode 100644 index 0000000..11fdb4d --- /dev/null +++ b/weather.sh @@ -0,0 +1,2 @@ +cd ./src/mcp/weather-mcp +uv run main.py \ No newline at end of file From 81d31da897517027343ea4eb8f4364d1d888eca4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Kole=C5=BCy=C5=84ski?= <1st.cubix@gmail.com> Date: Wed, 24 Sep 2025 13:13:34 +0000 Subject: [PATCH 03/10] system prompt fixed to not make stuff up --- src/agent/attractions.ipynb | 1038 ++++++++++++++++++++++++----------- 1 file changed, 709 insertions(+), 329 deletions(-) diff --git a/src/agent/attractions.ipynb b/src/agent/attractions.ipynb index 7d7a7de..dfdaf44 100644 --- a/src/agent/attractions.ipynb +++ b/src/agent/attractions.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "id": "4a8c1aa1", "metadata": {}, "outputs": [ @@ -10,8 +10,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "python: c:\\WorkSpace\\Hackathon\\Hackathon-2025\\.venv\\Scripts\\python.exe\n", - "uv: c:\\WorkSpace\\Hackathon\\Hackathon-2025\\.venv\\Scripts\\uv.EXE\n" + "python: /workspaces/No-Hackathon-2025/.venv/bin/python\n", + "uv: /workspaces/No-Hackathon-2025/.venv/bin/uv\n" ] } ], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "id": "7c3a1676", "metadata": {}, "outputs": [ @@ -32,16 +32,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: uv in c:\\workspace\\hackathon\\hackathon-2025\\.venv\\lib\\site-packages (0.8.20)\n", - "Note: you may need to restart the kernel to use updated packages.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[2mUsing Python 3.13.3 environment at: c:\\WorkSpace\\Hackathon\\Hackathon-2025\\.venv\u001b[0m\n", - "\u001b[2mAudited \u001b[1m13 packages\u001b[0m \u001b[2min 19ms\u001b[0m\u001b[0m\n" + "Requirement already satisfied: uv in /workspaces/No-Hackathon-2025/.venv/lib/python3.12/site-packages (0.8.22)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "\u001b[2mUsing Python 3.12.3 environment at: /workspaces/No-Hackathon-2025/.venv\u001b[0m\n", + "\u001b[2mAudited \u001b[1m13 packages\u001b[0m \u001b[2min 23ms\u001b[0m\u001b[0m\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "\u001b[2mUsing Python 3.12.3 environment at: /workspaces/No-Hackathon-2025/.venv\u001b[0m\n", + "\u001b[2mAudited \u001b[1m13 packages\u001b[0m \u001b[2min 23ms\u001b[0m\u001b[0m\n" ] } ], @@ -54,7 +51,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "id": "f6fdf3d8", "metadata": {}, "outputs": [ @@ -94,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "id": "f9bc6177", "metadata": {}, "outputs": [ @@ -145,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "id": "5deceb6f", "metadata": {}, "outputs": [ @@ -166,7 +163,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "id": "ab1bb59a", "metadata": {}, "outputs": [ @@ -204,17 +201,21 @@ " print(f\"Loaded {len(tools)} MCP tools: {[tool.name for tool in tools]}\")\n", " \n", " # Create system prompt\n", - " system_prompt = \"\"\"You are a helpful travel assistant that can help users find and book attractions including weather.\n", - " \n", - " You have access to multiple MCP tools for tourist attractions, including:\n", - " - Searching for attractions by location and category\n", - " - Getting detailed attraction information\n", - " - Booking attractions for visitors\n", - " - Getting random attraction suggestions\n", - " - And more...\n", - " \n", - " When users ask about travel plans, use these tools to provide comprehensive information.\n", - " Always be helpful and provide practical advice.\"\"\"\n", + " system_prompt = \"\"\"You are a helpful travel assistant that can help users find and book attractions, including weather information.\n", + "\n", + "You have access to multiple MCP tools for tourist attractions, including:\n", + "- Searching for attractions by location and category\n", + "- Getting detailed attraction information\n", + "- Booking attractions for visitors\n", + "- Getting random attraction suggestions\n", + "- And more...\n", + "\n", + "IMPORTANT:\n", + "- Only use the information and data provided by the MCP tools and datasets. Do NOT make up or hallucinate any facts, details, or recommendations that are not present in the data.\n", + "- If you do not have enough information to answer a question, say so clearly and do not invent details.\n", + "- Always cite the source of your information (e.g., \"Based on the available dataset...\").\n", + "- When users ask about travel plans, use these tools to provide comprehensive information.\n", + "- Always be helpful and provide practical advice, but never fabricate or guess information outside the provided data.\"\"\"\n", " \n", " # Create prompt template\n", " prompt = ChatPromptTemplate.from_messages([\n", @@ -242,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "id": "881d1451", "metadata": {}, "outputs": [ @@ -253,6 +254,9 @@ "Initializing agent with MCP tools...\n", "Loaded 7 MCP tools: ['get_attraction_details', 'search_attractions', 'get_random_attraction', 'book_attraction', 'search_and_format_attractions', 'get_current_weather', 'get_weather_forecast']\n", "Loaded 7 MCP tools: ['get_attraction_details', 'search_attractions', 'get_random_attraction', 'book_attraction', 'search_and_format_attractions', 'get_current_weather', 'get_weather_forecast']\n", + "LangChain agent with MCP tools ready!\n", + "Loaded 7 MCP tools: ['get_attraction_details', 'search_attractions', 'get_random_attraction', 'book_attraction', 'search_and_format_attractions', 'get_current_weather', 'get_weather_forecast']\n", + "Loaded 7 MCP tools: ['get_attraction_details', 'search_attractions', 'get_random_attraction', 'book_attraction', 'search_and_format_attractions', 'get_current_weather', 'get_weather_forecast']\n", "LangChain agent with MCP tools ready!\n" ] }, @@ -260,7 +264,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\JayGregory\\AppData\\Local\\Temp\\ipykernel_51000\\3851623357.py:50: LangChainDeprecationWarning: Please see the migration guide at: https://python.langchain.com/docs/versions/migrating_memory/\n", + "/tmp/ipykernel_12508/373215986.py:54: LangChainDeprecationWarning: Please see the migration guide at: https://python.langchain.com/docs/versions/migrating_memory/\n", " memory = ConversationBufferMemory(memory_key=\"chat_history\", return_messages=True)\n" ] } @@ -283,7 +287,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "id": "ba56fc7e", "metadata": {}, "outputs": [ @@ -347,7 +351,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "id": "4d4447a3", "metadata": {}, "outputs": [ @@ -447,7 +451,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "57dcf6ff", "metadata": {}, "outputs": [ @@ -461,36 +465,138 @@ "\n", "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", "\u001b[32;1m\u001b[1;3m\n", - "Invoking: `search_and_format_attractions` with `{'location': 'Paris', 'limit': 10}`\n", + "Invoking: `search_attractions` with `{'location': 'Paris', 'limit': 6}`\n", "\n", "\n", "\u001b[0m\u001b[32;1m\u001b[1;3m\n", "Invoking: `get_current_weather` with `{'location': 'Paris'}`\n", "\n", "\n", - "\u001b[0m\u001b[36;1m\u001b[1;3m🎯 Found 2 attractions in Paris:\n", + "\u001b[0m\u001b[33;1m\u001b[1;3m{\n", + " \"category\": \"All Categories\",\n", + " \"location\": \"Paris\",\n", + " \"total_count\": 2,\n", + " \"attractions\": [\n", + " {\n", + " \"id\": 1,\n", + " \"name\": \"Eiffel Tower\",\n", + " \"description\": \"Iconic iron lattice tower located on the Champ de Mars in Paris, France\",\n", + " \"category\": \"architecture\",\n", + " \"location\": {\n", + " \"city\": \"Paris\",\n", + " \"country\": \"France\",\n", + " \"region\": \"Île-de-France\",\n", + " \"coordinates\": null\n", + " },\n", + " \"rating\": 4.6,\n", + " \"image_url\": \"https://example.com/eiffel-tower.jpg\",\n", + " \"website\": \"https://www.toureiffel.paris\",\n", + " \"opening_hours\": \"9:30 AM - 11:45 PM\",\n", + " \"entry_fee\": \"€29.40 - €73.30\"\n", + " },\n", + " {\n", + " \"id\": 5,\n", + " \"name\": \"Louvre Museum\",\n", + " \"description\": \"World's largest art museum and historic monument in Paris\",\n", + " \"category\": \"museums\",\n", + " \"location\": {\n", + " \"city\": \"Paris\",\n", + " \"country\": \"France\",\n", + " \"region\": \"Île-de-France\",\n", + " \"coordinates\": null\n", + " },\n", + " \"rating\": 4.4,\n", + " \"image_url\": \"https://example.com/louvre.jpg\",\n", + " \"website\": \"https://www.louvre.fr\",\n", + " \"opening_hours\": \"9:00 AM - 6:00 PM\",\n", + " \"entry_fee\": \"€17\"\n", + " }\n", + " ]\n", + "}\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `search_attractions` with `{'location': 'Paris', 'limit': 6}`\n", + "\n", "\n", - "1. 🏛️ **Eiffel Tower**\n", - " 📍 Paris, France\n", - " 🏷️ Architecture\n", - " ⭐ 4.6/5.0\n", - " 💰 €29.40 - €73.30\n", + "\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `get_current_weather` with `{'location': 'Paris'}`\n", "\n", - "2. 🏛️ **Louvre Museum**\n", - " 📍 Paris, France\n", - " 🏷️ Museums\n", - " ⭐ 4.4/5.0\n", - " 💰 €17\n", "\n", "\u001b[0m\u001b[33;1m\u001b[1;3m{\n", + " \"category\": \"All Categories\",\n", + " \"location\": \"Paris\",\n", + " \"total_count\": 2,\n", + " \"attractions\": [\n", + " {\n", + " \"id\": 1,\n", + " \"name\": \"Eiffel Tower\",\n", + " \"description\": \"Iconic iron lattice tower located on the Champ de Mars in Paris, France\",\n", + " \"category\": \"architecture\",\n", + " \"location\": {\n", + " \"city\": \"Paris\",\n", + " \"country\": \"France\",\n", + " \"region\": \"Île-de-France\",\n", + " \"coordinates\": null\n", + " },\n", + " \"rating\": 4.6,\n", + " \"image_url\": \"https://example.com/eiffel-tower.jpg\",\n", + " \"website\": \"https://www.toureiffel.paris\",\n", + " \"opening_hours\": \"9:30 AM - 11:45 PM\",\n", + " \"entry_fee\": \"€29.40 - €73.30\"\n", + " },\n", + " {\n", + " \"id\": 5,\n", + " \"name\": \"Louvre Museum\",\n", + " \"description\": \"World's largest art museum and historic monument in Paris\",\n", + " \"category\": \"museums\",\n", + " \"location\": {\n", + " \"city\": \"Paris\",\n", + " \"country\": \"France\",\n", + " \"region\": \"Île-de-France\",\n", + " \"coordinates\": null\n", + " },\n", + " \"rating\": 4.4,\n", + " \"image_url\": \"https://example.com/louvre.jpg\",\n", + " \"website\": \"https://www.louvre.fr\",\n", + " \"opening_hours\": \"9:00 AM - 6:00 PM\",\n", + " \"entry_fee\": \"€17\"\n", + " }\n", + " ]\n", + "}\u001b[0m\u001b[33;1m\u001b[1;3m{\n", + " \"location\": \"Paris, Île-de-France, France\",\n", + " \"coordinates\": {\n", + " \"lat\": 48.85341,\n", + " \"lon\": 2.3488\n", + " },\n", + " \"temperature\": {\n", + " \"current\": 11.6,\n", + " \"feels_like\": 9.4,\n", + " \"min\": null,\n", + " \"max\": null,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"weather\": {\n", + " \"description\": \"Slight rain\",\n", + " \"code\": 61\n", + " },\n", + " \"wind\": {\n", + " \"speed\": 11.6,\n", + " \"direction\": 7,\n", + " \"unit\": \"km/h\",\n", + " \"max_gusts\": null\n", + " },\n", + " \"humidity\": 86,\n", + " \"pressure\": 1017.9,\n", + " \"precipitation\": 0.6,\n", + " \"timezone\": \"Europe/Paris\",\n", + " \"timestamp\": \"2025-09-24T15:00\"\n", + "}\u001b[0m\u001b[33;1m\u001b[1;3m{\n", " \"location\": \"Paris, Île-de-France, France\",\n", " \"coordinates\": {\n", " \"lat\": 48.85341,\n", " \"lon\": 2.3488\n", " },\n", " \"temperature\": {\n", - " \"current\": 12.0,\n", - " \"feels_like\": 10.2,\n", + " \"current\": 11.6,\n", + " \"feels_like\": 9.4,\n", " \"min\": null,\n", " \"max\": null,\n", " \"unit\": \"°C\"\n", @@ -500,56 +606,139 @@ " \"code\": 61\n", " },\n", " \"wind\": {\n", - " \"speed\": 16.1,\n", - " \"direction\": 20,\n", + " \"speed\": 11.6,\n", + " \"direction\": 7,\n", " \"unit\": \"km/h\",\n", " \"max_gusts\": null\n", " },\n", - " \"humidity\": 64,\n", - " \"pressure\": 1018.1,\n", + " \"humidity\": 86,\n", + " \"pressure\": 1017.9,\n", " \"precipitation\": 0.6,\n", " \"timezone\": \"Europe/Paris\",\n", - " \"timestamp\": \"2025-09-23T11:45\"\n", - "}\u001b[0m\u001b[32;1m\u001b[1;3mHere are a few quick highlights and the current weather for Paris.\n", - "\n", - "Popular attractions (quick overview)\n", - "- Eiffel Tower — Architecture — Rating ~4.6/5 — Typical ticket range €29–€73\n", - " - Tip: Book a timed ticket in advance to avoid long queues; allow 1–2 hours; great at sunset.\n", - "- Louvre Museum — Museums — Rating ~4.4/5 — Typical ticket ~€17\n", - " - Tip: Closed on Tuesdays; get a timed-entry ticket and plan 2–4 hours (Mona Lisa area is busiest).\n", - "\n", - "Current weather in Paris (Île‑de‑France) — as of 2025-09-23 11:45 (local)\n", - "- Temperature: 12.0°C (feels like 10.2°C)\n", - "- Conditions: Slight rain\n", - "- Precipitation: ~0.6 mm\n", - "- Wind: ~16 km/h from ~20° (NNE)\n", - "- Humidity: 64% · Pressure: ~1018 hPa\n", - "\n", - "Practical suggestions\n", - "- Pack a compact umbrella or a waterproof jacket and wear layers — cool and light rain.\n", - "- For outdoor sights (Eiffel Tower, Seine strolls) prioritize mornings or late afternoons to avoid peak crowds.\n", - "- Want me to: find more attractions by neighborhood or category, get detailed info (hours, accessibility), or book tickets for the Eiffel Tower or Louvre? If you want booking, tell me the visit date, number of visitors, and the name/email to use.\u001b[0m\n", + " \"timestamp\": \"2025-09-24T15:00\"\n", + "}\u001b[0m\u001b[32;1m\u001b[1;3mHere’s what I found for Paris:\n", + "\n", + "Popular attractions\n", + "- Eiffel Tower (ID: 1)\n", + " - Category: Architecture\n", + " - Description: Iconic iron lattice tower located on the Champ de Mars in Paris, France\n", + " - Rating: 4.6\n", + " - Opening hours: 9:30 AM – 11:45 PM\n", + " - Entry fee: €29.40 – €73.30\n", + " - Website: https://www.toureiffel.paris\n", + "\n", + "- Louvre Museum (ID: 5)\n", + " - Category: Museums\n", + " - Description: World’s largest art museum and historic monument in Paris\n", + " - Rating: 4.4\n", + " - Opening hours: 9:00 AM – 6:00 PM\n", + " - Entry fee: €17\n", + " - Website: https://www.louvre.fr\n", + "\n", + "Current weather in Paris\n", + "- Description: Slight rain\n", + "- Temperature: 11.6°C (feels like 9.4°C)\n", + "- Humidity: 86%\n", + "- Wind: 11.6 km/h\n", + "- Precipitation: 0.6 (data note: unit not specified)\n", + "- Time: 2025-09-24 15:00 (Europe/Paris)\n", + "\n", + "Would you like me to fetch a 7-day forecast for Paris, or help you plan a day around these attractions (e.g., add tickets or create an itinerary)? \n", + "Source: MCP datasets for attractions in Paris and current weather.\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n", + "Here’s what I found for Paris:\n", + "\n", + "Popular attractions\n", + "- Eiffel Tower (ID: 1)\n", + " - Category: Architecture\n", + " - Description: Iconic iron lattice tower located on the Champ de Mars in Paris, France\n", + " - Rating: 4.6\n", + " - Opening hours: 9:30 AM – 11:45 PM\n", + " - Entry fee: €29.40 – €73.30\n", + " - Website: https://www.toureiffel.paris\n", + "\n", + "- Louvre Museum (ID: 5)\n", + " - Category: Museums\n", + " - Description: World’s largest art museum and historic monument in Paris\n", + " - Rating: 4.4\n", + " - Opening hours: 9:00 AM – 6:00 PM\n", + " - Entry fee: €17\n", + " - Website: https://www.louvre.fr\n", + "\n", + "Current weather in Paris\n", + "- Description: Slight rain\n", + "- Temperature: 11.6°C (feels like 9.4°C)\n", + "- Humidity: 86%\n", + "- Wind: 11.6 km/h\n", + "- Precipitation: 0.6 (data note: unit not specified)\n", + "- Time: 2025-09-24 15:00 (Europe/Paris)\n", + "\n", + "Would you like me to fetch a 7-day forecast for Paris, or help you plan a day around these attractions (e.g., add tickets or create an itinerary)? \n", + "Source: MCP datasets for attractions in Paris and current weather.\n", + "\n", + "==================================================\n", + "\n", + "\u001b[32;1m\u001b[1;3mHere’s what I found for Paris:\n", + "\n", + "Popular attractions\n", + "- Eiffel Tower (ID: 1)\n", + " - Category: Architecture\n", + " - Description: Iconic iron lattice tower located on the Champ de Mars in Paris, France\n", + " - Rating: 4.6\n", + " - Opening hours: 9:30 AM – 11:45 PM\n", + " - Entry fee: €29.40 – €73.30\n", + " - Website: https://www.toureiffel.paris\n", + "\n", + "- Louvre Museum (ID: 5)\n", + " - Category: Museums\n", + " - Description: World’s largest art museum and historic monument in Paris\n", + " - Rating: 4.4\n", + " - Opening hours: 9:00 AM – 6:00 PM\n", + " - Entry fee: €17\n", + " - Website: https://www.louvre.fr\n", + "\n", + "Current weather in Paris\n", + "- Description: Slight rain\n", + "- Temperature: 11.6°C (feels like 9.4°C)\n", + "- Humidity: 86%\n", + "- Wind: 11.6 km/h\n", + "- Precipitation: 0.6 (data note: unit not specified)\n", + "- Time: 2025-09-24 15:00 (Europe/Paris)\n", + "\n", + "Would you like me to fetch a 7-day forecast for Paris, or help you plan a day around these attractions (e.g., add tickets or create an itinerary)? \n", + "Source: MCP datasets for attractions in Paris and current weather.\u001b[0m\n", "\n", "\u001b[1m> Finished chain.\u001b[0m\n", - "Here are a few quick highlights and the current weather for Paris.\n", - "\n", - "Popular attractions (quick overview)\n", - "- Eiffel Tower — Architecture — Rating ~4.6/5 — Typical ticket range €29–€73\n", - " - Tip: Book a timed ticket in advance to avoid long queues; allow 1–2 hours; great at sunset.\n", - "- Louvre Museum — Museums — Rating ~4.4/5 — Typical ticket ~€17\n", - " - Tip: Closed on Tuesdays; get a timed-entry ticket and plan 2–4 hours (Mona Lisa area is busiest).\n", - "\n", - "Current weather in Paris (Île‑de‑France) — as of 2025-09-23 11:45 (local)\n", - "- Temperature: 12.0°C (feels like 10.2°C)\n", - "- Conditions: Slight rain\n", - "- Precipitation: ~0.6 mm\n", - "- Wind: ~16 km/h from ~20° (NNE)\n", - "- Humidity: 64% · Pressure: ~1018 hPa\n", - "\n", - "Practical suggestions\n", - "- Pack a compact umbrella or a waterproof jacket and wear layers — cool and light rain.\n", - "- For outdoor sights (Eiffel Tower, Seine strolls) prioritize mornings or late afternoons to avoid peak crowds.\n", - "- Want me to: find more attractions by neighborhood or category, get detailed info (hours, accessibility), or book tickets for the Eiffel Tower or Louvre? If you want booking, tell me the visit date, number of visitors, and the name/email to use.\n", + "Here’s what I found for Paris:\n", + "\n", + "Popular attractions\n", + "- Eiffel Tower (ID: 1)\n", + " - Category: Architecture\n", + " - Description: Iconic iron lattice tower located on the Champ de Mars in Paris, France\n", + " - Rating: 4.6\n", + " - Opening hours: 9:30 AM – 11:45 PM\n", + " - Entry fee: €29.40 – €73.30\n", + " - Website: https://www.toureiffel.paris\n", + "\n", + "- Louvre Museum (ID: 5)\n", + " - Category: Museums\n", + " - Description: World’s largest art museum and historic monument in Paris\n", + " - Rating: 4.4\n", + " - Opening hours: 9:00 AM – 6:00 PM\n", + " - Entry fee: €17\n", + " - Website: https://www.louvre.fr\n", + "\n", + "Current weather in Paris\n", + "- Description: Slight rain\n", + "- Temperature: 11.6°C (feels like 9.4°C)\n", + "- Humidity: 86%\n", + "- Wind: 11.6 km/h\n", + "- Precipitation: 0.6 (data note: unit not specified)\n", + "- Time: 2025-09-24 15:00 (Europe/Paris)\n", + "\n", + "Would you like me to fetch a 7-day forecast for Paris, or help you plan a day around these attractions (e.g., add tickets or create an itinerary)? \n", + "Source: MCP datasets for attractions in Paris and current weather.\n", "\n", "==================================================\n", "\n" @@ -560,8 +749,8 @@ "# 🚀 EXAMPLE USAGE - Run this cell after setting up your API key!\n", "\n", "# Simple question\n", - "await ask_assistant(\"What are some popular attractions in Paris? and what is the weather?\")\n", - "print(\"\\n\" + \"=\"*50 + \"\\n\")\n", + "#await ask_assistant(\"What are some popular attractions in Paris? and what is the weather?\")\n", + "#print(\"\\n\" + \"=\"*50 + \"\\n\")\n", "\n", "# Example 2: Weather + attractions\n", "# await ask_assistant(\"I'm planning to visit paris tomorrow. What's the weather like and what attractions should I visit?\")\n", @@ -570,7 +759,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "bd0841c0", "metadata": {}, "outputs": [ @@ -579,283 +768,482 @@ "output_type": "stream", "text": [ "Type 'exit' to quit. Press Enter on an empty line to skip.\n", - "🧳 User: give me a random attraction\n", + "🧳 User: We’re in Rome with our kids this weekend. I use a wheelchair, and we’re looking for something outdoors that’s family-friendly, but it has to be low-cost and not take the whole day.\n", "🤖 Assistant:\n", "\n", "\n", "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", - "\u001b[32;1m\u001b[1;3m\n", - "Invoking: `get_random_attraction` with `{'region': 'famous'}`\n", - "\n", - "\n", - "\u001b[0m\u001b[38;5;200m\u001b[1;3m{\n", - " \"id\": 10,\n", - " \"name\": \"Petra\",\n", - " \"description\": \"Archaeological city famous for rock-cut architecture and water conduit system\",\n", - " \"category\": \"historical\",\n", - " \"location\": {\n", - " \"city\": \"Ma'an\",\n", - " \"country\": \"Jordan\",\n", - " \"region\": \"Ma'an\",\n", - " \"coordinates\": null\n", - " },\n", - " \"rating\": 4.7,\n", - " \"image_url\": \"https://example.com/petra.jpg\",\n", - " \"website\": \"https://www.visitpetra.jo\",\n", - " \"opening_hours\": \"6:00 AM - 6:00 PM\",\n", - " \"entry_fee\": \"70 JOD (1 day), 55 JOD (2 days)\"\n", - "}\u001b[0m\u001b[32;1m\u001b[1;3mGreat choice — here’s a random pick:\n", - "\n", - "Petra (Jordan)\n", - "- What it is: Ancient archaeological city famous for its rock-cut architecture (like the Treasury) and ancient water conduit system.\n", - "- Location: Ma'an Governorate, Jordan.\n", - "- Category: Historical.\n", - "- Rating: 4.7.\n", - "- Opening hours: 6:00 AM – 6:00 PM.\n", - "- Entry fee: 70 JOD (1 day), 55 JOD (2 days).\n", - "- Website: https://www.visitpetra.jo\n", - "- Recommended visit length: 4–6 hours (longer if you plan hikes to the Monastery or Al-Khubtha).\n", - "- Best time to visit: Spring or autumn for milder weather; arrive early to avoid crowds and heat.\n", - "- Practical tips: wear sturdy walking shoes, bring plenty of water and sun protection, consider a guided tour to learn the history, and note some trails can be steep. Petra by Night is a special evening experience on some nights — check schedules in advance.\n", - "\n", - "Would you like more details (hours, accessibility, guided tours), help booking a ticket or tour, or another random attraction?\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - "Great choice — here’s a random pick:\n", - "\n", - "Petra (Jordan)\n", - "- What it is: Ancient archaeological city famous for its rock-cut architecture (like the Treasury) and ancient water conduit system.\n", - "- Location: Ma'an Governorate, Jordan.\n", - "- Category: Historical.\n", - "- Rating: 4.7.\n", - "- Opening hours: 6:00 AM – 6:00 PM.\n", - "- Entry fee: 70 JOD (1 day), 55 JOD (2 days).\n", - "- Website: https://www.visitpetra.jo\n", - "- Recommended visit length: 4–6 hours (longer if you plan hikes to the Monastery or Al-Khubtha).\n", - "- Best time to visit: Spring or autumn for milder weather; arrive early to avoid crowds and heat.\n", - "- Practical tips: wear sturdy walking shoes, bring plenty of water and sun protection, consider a guided tour to learn the history, and note some trails can be steep. Petra by Night is a special evening experience on some nights — check schedules in advance.\n", - "\n", - "Would you like more details (hours, accessibility, guided tours), help booking a ticket or tour, or another random attraction?\n", - "🧳 User: what about attractions in paris\n", + "🧳 User: We’re in Rome with our kids this weekend. I use a wheelchair, and we’re looking for something outdoors that’s family-friendly, but it has to be low-cost and not take the whole day.\n", "🤖 Assistant:\n", "\n", "\n", "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", "\u001b[32;1m\u001b[1;3m\n", - "Invoking: `search_and_format_attractions` with `{'location': 'Paris', 'category': None, 'limit': 10}`\n", + "Invoking: `search_attractions` with `{'location': 'Rome', 'category': 'parks', 'limit': 5}`\n", "\n", "\n", - "\u001b[0m\u001b[36;1m\u001b[1;3m🎯 Found 2 attractions in Paris:\n", + "\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `get_weather_forecast` with `{'location': 'Rome', 'days': 3}`\n", "\n", - "1. 🏛️ **Eiffel Tower**\n", - " 📍 Paris, France\n", - " 🏷️ Architecture\n", - " ⭐ 4.6/5.0\n", - " 💰 €29.40 - €73.30\n", "\n", - "2. 🏛️ **Louvre Museum**\n", - " 📍 Paris, France\n", - " 🏷️ Museums\n", - " ⭐ 4.4/5.0\n", - " 💰 €17\n", + "\u001b[0m\u001b[33;1m\u001b[1;3m{\n", + " \"category\": \"Parks & Gardens\",\n", + " \"location\": \"Rome\",\n", + " \"total_count\": 0,\n", + " \"attractions\": []\n", + "}\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `search_attractions` with `{'location': 'Rome', 'category': 'parks', 'limit': 5}`\n", + "\n", "\n", "\u001b[0m\u001b[32;1m\u001b[1;3m\n", - "Invoking: `search_attractions` with `{'location': 'Paris', 'category': None, 'limit': 10}`\n", + "Invoking: `get_weather_forecast` with `{'location': 'Rome', 'days': 3}`\n", "\n", "\n", "\u001b[0m\u001b[33;1m\u001b[1;3m{\n", - " \"category\": \"All Categories\",\n", - " \"location\": \"Paris\",\n", - " \"total_count\": 2,\n", - " \"attractions\": [\n", - " {\n", - " \"id\": 1,\n", - " \"name\": \"Eiffel Tower\",\n", - " \"description\": \"Iconic iron lattice tower located on the Champ de Mars in Paris, France\",\n", - " \"category\": \"architecture\",\n", - " \"location\": {\n", - " \"city\": \"Paris\",\n", - " \"country\": \"France\",\n", - " \"region\": \"Île-de-France\",\n", - " \"coordinates\": null\n", - " },\n", - " \"rating\": 4.6,\n", - " \"image_url\": \"https://example.com/eiffel-tower.jpg\",\n", - " \"website\": \"https://www.toureiffel.paris\",\n", - " \"opening_hours\": \"9:30 AM - 11:45 PM\",\n", - " \"entry_fee\": \"€29.40 - €73.30\"\n", - " },\n", - " {\n", - " \"id\": 5,\n", - " \"name\": \"Louvre Museum\",\n", - " \"description\": \"World's largest art museum and historic monument in Paris\",\n", - " \"category\": \"museums\",\n", - " \"location\": {\n", - " \"city\": \"Paris\",\n", - " \"country\": \"France\",\n", - " \"region\": \"Île-de-France\",\n", - " \"coordinates\": null\n", - " },\n", - " \"rating\": 4.4,\n", - " \"image_url\": \"https://example.com/louvre.jpg\",\n", - " \"website\": \"https://www.louvre.fr\",\n", - " \"opening_hours\": \"9:00 AM - 6:00 PM\",\n", - " \"entry_fee\": \"€17\"\n", - " }\n", - " ]\n", - "}\u001b[0m\u001b[32;1m\u001b[1;3mGreat — here are popular Paris attractions with quick notes and tips. Tell me which ones you want more details or to book.\n", + " \"category\": \"Parks & Gardens\",\n", + " \"location\": \"Rome\",\n", + " \"total_count\": 0,\n", + " \"attractions\": []\n", + "}\u001b[0m\u001b[38;5;200m\u001b[1;3m{\n", + " \"error\": \"Failed to get forecast for Rome: API request failed: HTTPSConnectionPool(host='geocoding-api.open-meteo.com', port=443): Read timed out. (read timeout=10)\"\n", + "}\u001b[0m\u001b[38;5;200m\u001b[1;3m{\n", + " \"error\": \"Failed to get forecast for Rome: API request failed: HTTPSConnectionPool(host='geocoding-api.open-meteo.com', port=443): Read timed out. (read timeout=10)\"\n", + "}\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `get_current_weather` with `{'location': 'Rome'}`\n", "\n", - "- Eiffel Tower (architecture) — Iconic iron tower on the Champ de Mars. Opening hours: ~9:30 AM–11:45 PM. Tickets range ~€29–€73 depending on access/age. Tip: book a timed-entry or summit ticket in advance; sunset or night views are spectacular.\n", "\n", - "- Louvre Museum (museums) — World’s largest art museum (home of the Mona Lisa). Opening hours: ~9:00 AM–6:00 PM; entry ~€17. Tip: closed some weekdays (check before you go), use a timed-entry ticket and allow 2–4 hours (or more).\n", + "\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `get_weather_forecast` with `{'location': 'Rome', 'days': 3}`\n", "\n", - "Other top picks to consider:\n", - "- Notre‑Dame Cathedral (historic landmark) — note: restoration work continues after the 2019 fire; access may be limited.\n", - "- Musée d’Orsay — Impressionist and post‑Impressionist masterpieces in a former railway station.\n", - "- Sacré‑Cœur and Montmartre — hilltop basilica with great city views and a bohemian neighborhood to explore.\n", - "- Arc de Triomphe & Champs‑Élysées — climb the Arc for views; stroll the avenue for shopping and cafés.\n", - "- Sainte‑Chapelle — stunning medieval stained-glass chapel on Île de la Cité.\n", - "- Seine river cruise (Bateaux Mouches or similar) — relaxing way to see many riverside monuments.\n", - "- Luxembourg Gardens — peaceful park for a stroll or picnic.\n", - "- Palace of Versailles (day trip) — lavish palace and gardens just outside Paris; allow a full day.\n", "\n", - "Would you like:\n", - "- Details for any specific attraction (hours, accessibility, guided tours)?\n", - "- Help booking tickets (tell me date, number of visitors, name/email)?\n", - "- Current weather for Paris right now or a forecast for your travel dates?\u001b[0m\n", + "\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `get_current_weather` with `{'location': 'Rome'}`\n", "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - "Great — here are popular Paris attractions with quick notes and tips. Tell me which ones you want more details or to book.\n", - "\n", - "- Eiffel Tower (architecture) — Iconic iron tower on the Champ de Mars. Opening hours: ~9:30 AM–11:45 PM. Tickets range ~€29–€73 depending on access/age. Tip: book a timed-entry or summit ticket in advance; sunset or night views are spectacular.\n", - "\n", - "- Louvre Museum (museums) — World’s largest art museum (home of the Mona Lisa). Opening hours: ~9:00 AM–6:00 PM; entry ~€17. Tip: closed some weekdays (check before you go), use a timed-entry ticket and allow 2–4 hours (or more).\n", - "\n", - "Other top picks to consider:\n", - "- Notre‑Dame Cathedral (historic landmark) — note: restoration work continues after the 2019 fire; access may be limited.\n", - "- Musée d’Orsay — Impressionist and post‑Impressionist masterpieces in a former railway station.\n", - "- Sacré‑Cœur and Montmartre — hilltop basilica with great city views and a bohemian neighborhood to explore.\n", - "- Arc de Triomphe & Champs‑Élysées — climb the Arc for views; stroll the avenue for shopping and cafés.\n", - "- Sainte‑Chapelle — stunning medieval stained-glass chapel on Île de la Cité.\n", - "- Seine river cruise (Bateaux Mouches or similar) — relaxing way to see many riverside monuments.\n", - "- Luxembourg Gardens — peaceful park for a stroll or picnic.\n", - "- Palace of Versailles (day trip) — lavish palace and gardens just outside Paris; allow a full day.\n", - "\n", - "Would you like:\n", - "- Details for any specific attraction (hours, accessibility, guided tours)?\n", - "- Help booking tickets (tell me date, number of visitors, name/email)?\n", - "- Current weather for Paris right now or a forecast for your travel dates?\n", - "🧳 User: book eiffel tower\n", - "🤖 Assistant:\n", "\n", + "\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `get_weather_forecast` with `{'location': 'Rome', 'days': 3}`\n", + "\n", + "\n", + "\u001b[0m\u001b[38;5;200m\u001b[1;3m{\n", + " \"error\": \"Failed to get forecast for Rome: API request failed: HTTPSConnectionPool(host='api.open-meteo.com', port=443): Read timed out. (read timeout=10)\"\n", + "}\u001b[0m\u001b[33;1m\u001b[1;3m{\n", + " \"error\": \"Failed to get weather for Rome: API request failed: HTTPSConnectionPool(host='geocoding-api.open-meteo.com', port=443): Read timed out. (read timeout=10)\"\n", + "}\u001b[0m\u001b[38;5;200m\u001b[1;3m{\n", + " \"error\": \"Failed to get forecast for Rome: API request failed: HTTPSConnectionPool(host='api.open-meteo.com', port=443): Read timed out. (read timeout=10)\"\n", + "}\u001b[0m\u001b[33;1m\u001b[1;3m{\n", + " \"error\": \"Failed to get weather for Rome: API request failed: HTTPSConnectionPool(host='geocoding-api.open-meteo.com', port=443): Read timed out. (read timeout=10)\"\n", + "}\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `search_attractions` with `{'location': 'Rome', 'category': 'parks', 'limit': 10}`\n", + "\n", + "\n", + "\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `get_current_weather` with `{'location': 'Rome'}`\n", "\n", - "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", - "\u001b[32;1m\u001b[1;3m\n", - "Invoking: `search_attractions` with `{'location': 'Paris', 'category': 'architecture', 'limit': 20}`\n", + "\n", + "\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `get_weather_forecast` with `{'location': 'Rome', 'days': 3}`\n", "\n", "\n", "\u001b[0m\u001b[33;1m\u001b[1;3m{\n", - " \"category\": \"Architecture\",\n", - " \"location\": \"Paris\",\n", - " \"total_count\": 1,\n", - " \"attractions\": [\n", + " \"category\": \"Parks & Gardens\",\n", + " \"location\": \"Rome\",\n", + " \"total_count\": 0,\n", + " \"attractions\": []\n", + "}\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `search_attractions` with `{'location': 'Rome', 'category': 'parks', 'limit': 10}`\n", + "\n", + "\n", + "\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `get_current_weather` with `{'location': 'Rome'}`\n", + "\n", + "\n", + "\u001b[0m\u001b[32;1m\u001b[1;3m\n", + "Invoking: `get_weather_forecast` with `{'location': 'Rome', 'days': 3}`\n", + "\n", + "\n", + "\u001b[0m\u001b[33;1m\u001b[1;3m{\n", + " \"category\": \"Parks & Gardens\",\n", + " \"location\": \"Rome\",\n", + " \"total_count\": 0,\n", + " \"attractions\": []\n", + "}\u001b[0m\u001b[33;1m\u001b[1;3m{\n", + " \"location\": \"Rome, Lazio, Italy\",\n", + " \"coordinates\": {\n", + " \"lat\": 41.89193,\n", + " \"lon\": 12.51133\n", + " },\n", + " \"temperature\": {\n", + " \"current\": 23.4,\n", + " \"feels_like\": 23.7,\n", + " \"min\": null,\n", + " \"max\": null,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"weather\": {\n", + " \"description\": \"Partly cloudy\",\n", + " \"code\": 2\n", + " },\n", + " \"wind\": {\n", + " \"speed\": 8.9,\n", + " \"direction\": 249,\n", + " \"unit\": \"km/h\",\n", + " \"max_gusts\": null\n", + " },\n", + " \"humidity\": 90,\n", + " \"pressure\": 1007.6,\n", + " \"precipitation\": 0.7,\n", + " \"timezone\": \"Europe/Rome\",\n", + " \"timestamp\": \"2025-09-24T15:00\"\n", + "}\u001b[0m\u001b[38;5;200m\u001b[1;3m{\n", + " \"location\": \"Rome, Lazio, Italy\",\n", + " \"coordinates\": {\n", + " \"lat\": 41.89193,\n", + " \"lon\": 12.51133\n", + " },\n", + " \"timezone\": \"Europe/Rome\",\n", + " \"forecast_days\": 3,\n", + " \"forecasts\": [\n", " {\n", - " \"id\": 1,\n", - " \"name\": \"Eiffel Tower\",\n", - " \"description\": \"Iconic iron lattice tower located on the Champ de Mars in Paris, France\",\n", - " \"category\": \"architecture\",\n", - " \"location\": {\n", - " \"city\": \"Paris\",\n", - " \"country\": \"France\",\n", - " \"region\": \"Île-de-France\",\n", - " \"coordinates\": null\n", + " \"date\": \"2025-09-24\",\n", + " \"temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 19.2,\n", + " \"max\": 24.0,\n", + " \"unit\": \"°C\"\n", " },\n", - " \"rating\": 4.6,\n", - " \"image_url\": \"https://example.com/eiffel-tower.jpg\",\n", - " \"website\": \"https://www.toureiffel.paris\",\n", - " \"opening_hours\": \"9:30 AM - 11:45 PM\",\n", - " \"entry_fee\": \"€29.40 - €73.30\"\n", + " \"apparent_temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 20.3,\n", + " \"max\": 25.2,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"weather\": {\n", + " \"description\": \"Slight thunderstorm\",\n", + " \"code\": 95\n", + " },\n", + " \"precipitation\": {\n", + " \"total\": 7.6,\n", + " \"rain\": 0.0,\n", + " \"showers\": 7.6,\n", + " \"snow\": 0.0,\n", + " \"hours\": 12.0,\n", + " \"unit\": \"mm\"\n", + " },\n", + " \"wind\": {\n", + " \"speed\": 11.6,\n", + " \"direction\": 251,\n", + " \"unit\": \"km/h\",\n", + " \"max_gusts\": 26.6\n", + " }\n", + " },\n", + " {\n", + " \"date\": \"2025-09-25\",\n", + " \"temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 16.9,\n", + " \"max\": 23.7,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"apparent_temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 17.1,\n", + " \"max\": 21.9,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"weather\": {\n", + " \"description\": \"Overcast\",\n", + " \"code\": 3\n", + " },\n", + " \"precipitation\": {\n", + " \"total\": 0.0,\n", + " \"rain\": 0.0,\n", + " \"showers\": 0.0,\n", + " \"snow\": 0.0,\n", + " \"hours\": 0.0,\n", + " \"unit\": \"mm\"\n", + " },\n", + " \"wind\": {\n", + " \"speed\": 15.7,\n", + " \"direction\": 200,\n", + " \"unit\": \"km/h\",\n", + " \"max_gusts\": 34.9\n", + " }\n", + " },\n", + " {\n", + " \"date\": \"2025-09-26\",\n", + " \"temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 16.1,\n", + " \"max\": 24.1,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"apparent_temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 16.4,\n", + " \"max\": 23.8,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"weather\": {\n", + " \"description\": \"Partly cloudy\",\n", + " \"code\": 2\n", + " },\n", + " \"precipitation\": {\n", + " \"total\": 0.0,\n", + " \"rain\": 0.0,\n", + " \"showers\": 0.0,\n", + " \"snow\": 0.0,\n", + " \"hours\": 0.0,\n", + " \"unit\": \"mm\"\n", + " },\n", + " \"wind\": {\n", + " \"speed\": 11.8,\n", + " \"direction\": 256,\n", + " \"unit\": \"km/h\",\n", + " \"max_gusts\": 27.4\n", + " }\n", + " }\n", + " ]\n", + "}\u001b[0m\u001b[33;1m\u001b[1;3m{\n", + " \"location\": \"Rome, Lazio, Italy\",\n", + " \"coordinates\": {\n", + " \"lat\": 41.89193,\n", + " \"lon\": 12.51133\n", + " },\n", + " \"temperature\": {\n", + " \"current\": 23.4,\n", + " \"feels_like\": 23.7,\n", + " \"min\": null,\n", + " \"max\": null,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"weather\": {\n", + " \"description\": \"Partly cloudy\",\n", + " \"code\": 2\n", + " },\n", + " \"wind\": {\n", + " \"speed\": 8.9,\n", + " \"direction\": 249,\n", + " \"unit\": \"km/h\",\n", + " \"max_gusts\": null\n", + " },\n", + " \"humidity\": 90,\n", + " \"pressure\": 1007.6,\n", + " \"precipitation\": 0.7,\n", + " \"timezone\": \"Europe/Rome\",\n", + " \"timestamp\": \"2025-09-24T15:00\"\n", + "}\u001b[0m\u001b[38;5;200m\u001b[1;3m{\n", + " \"location\": \"Rome, Lazio, Italy\",\n", + " \"coordinates\": {\n", + " \"lat\": 41.89193,\n", + " \"lon\": 12.51133\n", + " },\n", + " \"timezone\": \"Europe/Rome\",\n", + " \"forecast_days\": 3,\n", + " \"forecasts\": [\n", + " {\n", + " \"date\": \"2025-09-24\",\n", + " \"temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 19.2,\n", + " \"max\": 24.0,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"apparent_temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 20.3,\n", + " \"max\": 25.2,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"weather\": {\n", + " \"description\": \"Slight thunderstorm\",\n", + " \"code\": 95\n", + " },\n", + " \"precipitation\": {\n", + " \"total\": 7.6,\n", + " \"rain\": 0.0,\n", + " \"showers\": 7.6,\n", + " \"snow\": 0.0,\n", + " \"hours\": 12.0,\n", + " \"unit\": \"mm\"\n", + " },\n", + " \"wind\": {\n", + " \"speed\": 11.6,\n", + " \"direction\": 251,\n", + " \"unit\": \"km/h\",\n", + " \"max_gusts\": 26.6\n", + " }\n", + " },\n", + " {\n", + " \"date\": \"2025-09-25\",\n", + " \"temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 16.9,\n", + " \"max\": 23.7,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"apparent_temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 17.1,\n", + " \"max\": 21.9,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"weather\": {\n", + " \"description\": \"Overcast\",\n", + " \"code\": 3\n", + " },\n", + " \"precipitation\": {\n", + " \"total\": 0.0,\n", + " \"rain\": 0.0,\n", + " \"showers\": 0.0,\n", + " \"snow\": 0.0,\n", + " \"hours\": 0.0,\n", + " \"unit\": \"mm\"\n", + " },\n", + " \"wind\": {\n", + " \"speed\": 15.7,\n", + " \"direction\": 200,\n", + " \"unit\": \"km/h\",\n", + " \"max_gusts\": 34.9\n", + " }\n", + " },\n", + " {\n", + " \"date\": \"2025-09-26\",\n", + " \"temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 16.1,\n", + " \"max\": 24.1,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"apparent_temperature\": {\n", + " \"current\": 0,\n", + " \"feels_like\": null,\n", + " \"min\": 16.4,\n", + " \"max\": 23.8,\n", + " \"unit\": \"°C\"\n", + " },\n", + " \"weather\": {\n", + " \"description\": \"Partly cloudy\",\n", + " \"code\": 2\n", + " },\n", + " \"precipitation\": {\n", + " \"total\": 0.0,\n", + " \"rain\": 0.0,\n", + " \"showers\": 0.0,\n", + " \"snow\": 0.0,\n", + " \"hours\": 0.0,\n", + " \"unit\": \"mm\"\n", + " },\n", + " \"wind\": {\n", + " \"speed\": 11.8,\n", + " \"direction\": 256,\n", + " \"unit\": \"km/h\",\n", + " \"max_gusts\": 27.4\n", + " }\n", " }\n", " ]\n", - "}\u001b[0m\u001b[32;1m\u001b[1;3mI can book the Eiffel Tower for you — I just need a few details first:\n", + "}\u001b[0m\u001b[32;1m\u001b[1;3mThanks for the details—that helps a lot. I can help, but I’m running into a gap in my current Rome park listings. I don’t have specific wheelchair-friendly outdoor parks in Rome to name right now that fit “low-cost, outdoors, family-friendly, not a full day.” I can still help with weather-focused planning and general outdoor options, and I can broaden the search if you’d like.\n", "\n", - "1) Visit date (YYYY-MM-DD) \n", - "2) Number of visitors (1–50) \n", - "3) Primary visitor name (for the booking) \n", - "4) Email for confirmation \n", - "5) Phone number (optional) \n", - "6) Any special requests or ticket preference (e.g., summit access vs 2nd floor only, stairs vs elevator, preferred time window like morning/afternoon/evening)\n", + "Weather outlook for this weekend (Rome)\n", + "- Current: about 23.4°C, feels ~23.7°C, humidity around 90%, partly cloudy.\n", + "- Weekend forecast (based on the latest data): highs around 23–24°C with mostly cloudy to partly cloudy skies. There is some variability, so a light rain shower is possible on at least one day and conditions could shift, so it’s good to have a plan B.\n", "\n", - "Tell me those and I’ll proceed to check availability and make the booking. Would you also like me to include current weather for Paris on your visit date?\u001b[0m\n", + "Practical, outdoorsy, low-cost ideas that are generally kid-friendly and don’t take the whole day\n", + "- Short strolls in iconic outdoor spaces: you can enjoy the atmosphere around famous outdoor spots and fountains, which are free and quick to explore (great for kids and wheelchair users if you pick accessible routes).\n", + "- Waterfront or riverside areas: a scenic, flat, stroller/wheelchair-friendly walk along the Tiber embankments can be relaxing for a couple of hours.\n", + "- City squares and open spaces: large plazas and piazzas with seating areas offer easy, low-effort time outdoors without committing to a full-day excursion.\n", "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - "I can book the Eiffel Tower for you — I just need a few details first:\n", + "What I can do next (your choice)\n", + "- Broaden the search to include other outdoor, family-friendly options near Rome (parks, gardens, plazas, easy nature walks) and filter for accessibility and low cost. \n", + "- Look for nearby towns or coastal spots within a short drive from Rome that are known for easy, short outdoor visits (beaches or promenades) that are wheelchair-friendly.\n", + "- Create a 2-hour outdoor-friendly itinerary with a couple of flexible stops and built-in breaks, tailored to wheelchair access and a modest budget.\n", "\n", - "1) Visit date (YYYY-MM-DD) \n", - "2) Number of visitors (1–50) \n", - "3) Primary visitor name (for the booking) \n", - "4) Email for confirmation \n", - "5) Phone number (optional) \n", - "6) Any special requests or ticket preference (e.g., summit access vs 2nd floor only, stairs vs elevator, preferred time window like morning/afternoon/evening)\n", + "A couple of quick questions to tailor recommendations\n", + "- Are you okay with nearby towns along the Lazio coast or would you prefer strictly within Rome?\n", + "- Do you want to focus on parks specifically, or are plazas, gardens, and riverfronts acceptable?\n", + "- Any must-have accessibility features (level paths, seating/rest areas, accessible restrooms)?\n", "\n", - "Tell me those and I’ll proceed to check availability and make the booking. Would you also like me to include current weather for Paris on your visit date?\n", - "🧳 User: 1992-04-2992\n", - "🤖 Assistant:\n", + "If you’d like, I can run a broader search now for wheelchair-friendly, low-cost outdoor options in Rome and nearby areas and bring back a short list with distance, estimated time, and any notes on accessibility.\u001b[0m\n", "\n", + "\u001b[1m> Finished chain.\u001b[0m\n", + "Thanks for the details—that helps a lot. I can help, but I’m running into a gap in my current Rome park listings. I don’t have specific wheelchair-friendly outdoor parks in Rome to name right now that fit “low-cost, outdoors, family-friendly, not a full day.” I can still help with weather-focused planning and general outdoor options, and I can broaden the search if you’d like.\n", "\n", - "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", - "\u001b[32;1m\u001b[1;3mThe date you sent looks invalid: \"1992-04-2992\" — it has extra characters and/or is in the past. I can’t book a past date. Could you please confirm the booking details using this form?\n", + "Weather outlook for this weekend (Rome)\n", + "- Current: about 23.4°C, feels ~23.7°C, humidity around 90%, partly cloudy.\n", + "- Weekend forecast (based on the latest data): highs around 23–24°C with mostly cloudy to partly cloudy skies. There is some variability, so a light rain shower is possible on at least one day and conditions could shift, so it’s good to have a plan B.\n", "\n", - "1) Visit date (YYYY-MM-DD) — must be a future date \n", - "2) Number of visitors (1–50) \n", - "3) Primary visitor name \n", - "4) Email for confirmation \n", - "5) Phone (optional) \n", - "6) Ticket preference / special requests (e.g., summit access vs 2nd floor only; stairs vs elevator; preferred time of day)\n", + "Practical, outdoorsy, low-cost ideas that are generally kid-friendly and don’t take the whole day\n", + "- Short strolls in iconic outdoor spaces: you can enjoy the atmosphere around famous outdoor spots and fountains, which are free and quick to explore (great for kids and wheelchair users if you pick accessible routes).\n", + "- Waterfront or riverside areas: a scenic, flat, stroller/wheelchair-friendly walk along the Tiber embankments can be relaxing for a couple of hours.\n", + "- City squares and open spaces: large plazas and piazzas with seating areas offer easy, low-effort time outdoors without committing to a full-day excursion.\n", "\n", - "If you want, type everything in one line (for example):\n", - "2025-10-15, 2, Alex Martin, alex@example.com, +33-6-12-34-56-78, summit ticket, evening\n", + "What I can do next (your choice)\n", + "- Broaden the search to include other outdoor, family-friendly options near Rome (parks, gardens, plazas, easy nature walks) and filter for accessibility and low cost. \n", + "- Look for nearby towns or coastal spots within a short drive from Rome that are known for easy, short outdoor visits (beaches or promenades) that are wheelchair-friendly.\n", + "- Create a 2-hour outdoor-friendly itinerary with a couple of flexible stops and built-in breaks, tailored to wheelchair access and a modest budget.\n", "\n", - "Tell me the corrected details and I’ll check availability and proceed. Would you also like the weather forecast for your visit date?\u001b[0m\n", + "A couple of quick questions to tailor recommendations\n", + "- Are you okay with nearby towns along the Lazio coast or would you prefer strictly within Rome?\n", + "- Do you want to focus on parks specifically, or are plazas, gardens, and riverfronts acceptable?\n", + "- Any must-have accessibility features (level paths, seating/rest areas, accessible restrooms)?\n", "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - "The date you sent looks invalid: \"1992-04-2992\" — it has extra characters and/or is in the past. I can’t book a past date. Could you please confirm the booking details using this form?\n", + "If you’d like, I can run a broader search now for wheelchair-friendly, low-cost outdoor options in Rome and nearby areas and bring back a short list with distance, estimated time, and any notes on accessibility.\n", + "\u001b[32;1m\u001b[1;3mThanks for the details—that helps a lot. I can help, but I’m running into a gap in my current Rome park listings. I don’t have specific wheelchair-friendly outdoor parks in Rome to name right now that fit “low-cost, outdoors, family-friendly, not a full day.” I can still help with weather-focused planning and general outdoor options, and I can broaden the search if you’d like.\n", "\n", - "1) Visit date (YYYY-MM-DD) — must be a future date \n", - "2) Number of visitors (1–50) \n", - "3) Primary visitor name \n", - "4) Email for confirmation \n", - "5) Phone (optional) \n", - "6) Ticket preference / special requests (e.g., summit access vs 2nd floor only; stairs vs elevator; preferred time of day)\n", + "Weather outlook for this weekend (Rome)\n", + "- Current: about 23.4°C, feels ~23.7°C, humidity around 90%, partly cloudy.\n", + "- Weekend forecast (based on the latest data): highs around 23–24°C with mostly cloudy to partly cloudy skies. There is some variability, so a light rain shower is possible on at least one day and conditions could shift, so it’s good to have a plan B.\n", "\n", - "If you want, type everything in one line (for example):\n", - "2025-10-15, 2, Alex Martin, alex@example.com, +33-6-12-34-56-78, summit ticket, evening\n", + "Practical, outdoorsy, low-cost ideas that are generally kid-friendly and don’t take the whole day\n", + "- Short strolls in iconic outdoor spaces: you can enjoy the atmosphere around famous outdoor spots and fountains, which are free and quick to explore (great for kids and wheelchair users if you pick accessible routes).\n", + "- Waterfront or riverside areas: a scenic, flat, stroller/wheelchair-friendly walk along the Tiber embankments can be relaxing for a couple of hours.\n", + "- City squares and open spaces: large plazas and piazzas with seating areas offer easy, low-effort time outdoors without committing to a full-day excursion.\n", "\n", - "Tell me the corrected details and I’ll check availability and proceed. Would you also like the weather forecast for your visit date?\n", - "🧳 User: escape\n", - "🤖 Assistant:\n", + "What I can do next (your choice)\n", + "- Broaden the search to include other outdoor, family-friendly options near Rome (parks, gardens, plazas, easy nature walks) and filter for accessibility and low cost. \n", + "- Look for nearby towns or coastal spots within a short drive from Rome that are known for easy, short outdoor visits (beaches or promenades) that are wheelchair-friendly.\n", + "- Create a 2-hour outdoor-friendly itinerary with a couple of flexible stops and built-in breaks, tailored to wheelchair access and a modest budget.\n", "\n", + "A couple of quick questions to tailor recommendations\n", + "- Are you okay with nearby towns along the Lazio coast or would you prefer strictly within Rome?\n", + "- Do you want to focus on parks specifically, or are plazas, gardens, and riverfronts acceptable?\n", + "- Any must-have accessibility features (level paths, seating/rest areas, accessible restrooms)?\n", "\n", - "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", - "\u001b[32;1m\u001b[1;3mDo you mean one of the following?\n", + "If you’d like, I can run a broader search now for wheelchair-friendly, low-cost outdoor options in Rome and nearby areas and bring back a short list with distance, estimated time, and any notes on accessibility.\u001b[0m\n", "\n", - "1) Cancel/stop the Eiffel Tower booking process (I’ll drop it and we won’t book). \n", - "2) “Escape rooms” in Paris (I can find and book an escape-room experience). \n", - "3) A short getaway/day‑trip from Paris (ideas like Versailles, Giverny, Fontainebleau). \n", - "4) Something else — please tell me what you mean.\n", + "\u001b[1m> Finished chain.\u001b[0m\n", + "Thanks for the details—that helps a lot. I can help, but I’m running into a gap in my current Rome park listings. I don’t have specific wheelchair-friendly outdoor parks in Rome to name right now that fit “low-cost, outdoors, family-friendly, not a full day.” I can still help with weather-focused planning and general outdoor options, and I can broaden the search if you’d like.\n", "\n", - "Reply with the option number (or explain) and I’ll proceed.\u001b[0m\n", + "Weather outlook for this weekend (Rome)\n", + "- Current: about 23.4°C, feels ~23.7°C, humidity around 90%, partly cloudy.\n", + "- Weekend forecast (based on the latest data): highs around 23–24°C with mostly cloudy to partly cloudy skies. There is some variability, so a light rain shower is possible on at least one day and conditions could shift, so it’s good to have a plan B.\n", "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - "Do you mean one of the following?\n", + "Practical, outdoorsy, low-cost ideas that are generally kid-friendly and don’t take the whole day\n", + "- Short strolls in iconic outdoor spaces: you can enjoy the atmosphere around famous outdoor spots and fountains, which are free and quick to explore (great for kids and wheelchair users if you pick accessible routes).\n", + "- Waterfront or riverside areas: a scenic, flat, stroller/wheelchair-friendly walk along the Tiber embankments can be relaxing for a couple of hours.\n", + "- City squares and open spaces: large plazas and piazzas with seating areas offer easy, low-effort time outdoors without committing to a full-day excursion.\n", "\n", - "1) Cancel/stop the Eiffel Tower booking process (I’ll drop it and we won’t book). \n", - "2) “Escape rooms” in Paris (I can find and book an escape-room experience). \n", - "3) A short getaway/day‑trip from Paris (ideas like Versailles, Giverny, Fontainebleau). \n", - "4) Something else — please tell me what you mean.\n", + "What I can do next (your choice)\n", + "- Broaden the search to include other outdoor, family-friendly options near Rome (parks, gardens, plazas, easy nature walks) and filter for accessibility and low cost. \n", + "- Look for nearby towns or coastal spots within a short drive from Rome that are known for easy, short outdoor visits (beaches or promenades) that are wheelchair-friendly.\n", + "- Create a 2-hour outdoor-friendly itinerary with a couple of flexible stops and built-in breaks, tailored to wheelchair access and a modest budget.\n", "\n", - "Reply with the option number (or explain) and I’ll proceed.\n", - "Goodbye!\n" + "A couple of quick questions to tailor recommendations\n", + "- Are you okay with nearby towns along the Lazio coast or would you prefer strictly within Rome?\n", + "- Do you want to focus on parks specifically, or are plazas, gardens, and riverfronts acceptable?\n", + "- Any must-have accessibility features (level paths, seating/rest areas, accessible restrooms)?\n", + "\n", + "If you’d like, I can run a broader search now for wheelchair-friendly, low-cost outdoor options in Rome and nearby areas and bring back a short list with distance, estimated time, and any notes on accessibility.\n" ] } ], @@ -890,18 +1278,10 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "968731b7", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "🧹 Cleanup function ready!\n" - ] - } - ], + "outputs": [], "source": [ "# Cleanup function for HTTP MCP client\n", "async def cleanup_mcp():\n", @@ -935,7 +1315,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.3" + "version": "3.12.3" } }, "nbformat": 4, From 61e98f951d0924002cba283ec57026604fdfe8f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Kole=C5=BCy=C5=84ski?= <1st.cubix@gmail.com> Date: Wed, 24 Sep 2025 13:19:26 +0000 Subject: [PATCH 04/10] improved attraction MCP --- src/mcp/attractions-mcp/main.py | 86 +++++++++++++++++++++++++++++++-- 1 file changed, 81 insertions(+), 5 deletions(-) diff --git a/src/mcp/attractions-mcp/main.py b/src/mcp/attractions-mcp/main.py index 5bd10d3..574763b 100644 --- a/src/mcp/attractions-mcp/main.py +++ b/src/mcp/attractions-mcp/main.py @@ -42,19 +42,95 @@ def get_attraction_details(attraction_id: int) -> Dict[str, Any]: def search_attractions( location: Optional[str] = None, category: Optional[str] = None, - limit: int = 20 + limit: int = 20, + disability_accessible: Optional[bool] = None, + outdoors: Optional[bool] = None, + group_size: Optional[str] = None, + age_recommendation: Optional[str] = None, + age_restriction: Optional[str] = None, + budget: Optional[str] = None, + time_needed: Optional[str] = None, + pet_friendly: Optional[bool] = None, + wifi_available: Optional[bool] = None, + photogenic: Optional[bool] = None, + mood: Optional[str] = None, + recommended_packing_list: Optional[str] = None ) -> Dict[str, Any]: - """Search for tourist attractions with optional filters + """Search for tourist attractions with advanced filters Args: location: Location to search in (e.g., "Paris", "India", "Italy") - category: Category filter - "historical", "natural", "cultural", "religious", "modern", "museums", "parks", "beaches", "mountains", "architecture", "entertainment", "adventure" + category: Category filter - "historical", "natural", etc. limit: Maximum number of results (1-100, default: 20) - + disability_accessible: Only show accessible attractions + outdoors: Only show outdoor/indoor attractions + group_size: Filter by group size (e.g., "1-10") + age_recommendation: Filter by recommended age (e.g., "All ages", "12+") + age_restriction: Filter by age restriction (e.g., "18+ only") + budget: Filter by budget (e.g., "Low", "Medium", "High") + time_needed: Filter by time needed (e.g., "2-3 hours") + pet_friendly: Only show pet-friendly attractions + wifi_available: Only show attractions with wifi + photogenic: Only show photogenic attractions + mood: Filter by mood (e.g., "Romantic", "Adventurous") + recommended_packing_list: Filter by required packing item (e.g., "Camera") Returns: AttractionsList object as dictionary with matching attractions """ - return search_attractions_data(location, category, limit) + # Use the existing search_attractions_data, then filter results in-memory for advanced fields + base_results = search_attractions_data(location, category, limit) + if "attractions" not in base_results: + return base_results + filtered = [] + for attr in base_results["attractions"]: + if disability_accessible is not None and attr.get("disability_accessible") != disability_accessible: + continue + if outdoors is not None and attr.get("outdoors") != outdoors: + continue + if group_size and attr.get("group_size") != group_size: + continue + if age_recommendation and attr.get("age_recommendation") != age_recommendation: + continue + if age_restriction and attr.get("age_restriction") != age_restriction: + continue + if budget and attr.get("budget") != budget: + continue + if time_needed and attr.get("time_needed") != time_needed: + continue + if pet_friendly is not None and attr.get("pet_friendly") != pet_friendly: + continue + if wifi_available is not None and attr.get("wifi_available") != wifi_available: + continue + if photogenic is not None and attr.get("photogenic") != photogenic: + continue + if mood and attr.get("mood") != mood: + continue + if recommended_packing_list: + packing = attr.get("recommended_packing_list") or [] + if recommended_packing_list not in packing: + continue + filtered.append(attr) + base_results["attractions"] = filtered + base_results["total_count"] = len(filtered) + return base_results + +# Add a generic filter tool for advanced search +@mcp.tool() +def filter_attractions( + field: str, + value: Any, + location: Optional[str] = None, + category: Optional[str] = None, + limit: int = 100 +) -> Dict[str, Any]: + """Filter attractions by any field and value (advanced search)""" + base_results = search_attractions_data(location, category, limit) + if "attractions" not in base_results: + return base_results + filtered = [a for a in base_results["attractions"] if a.get(field) == value] + base_results["attractions"] = filtered + base_results["total_count"] = len(filtered) + return base_results @mcp.tool() def get_random_attraction(region: str = "famous") -> Dict[str, Any]: From 6f5c14829455bd909490d42fec67158cd16412f9 Mon Sep 17 00:00:00 2001 From: "AzureAD\\TarunDalwani" Date: Wed, 24 Sep 2025 19:15:49 +0530 Subject: [PATCH 05/10] added more attractions in data --- src/mcp/attractions-mcp/config.py | 480 ++++++++++++++++++++++++++++++ 1 file changed, 480 insertions(+) diff --git a/src/mcp/attractions-mcp/config.py b/src/mcp/attractions-mcp/config.py index e20438b..319e736 100644 --- a/src/mcp/attractions-mcp/config.py +++ b/src/mcp/attractions-mcp/config.py @@ -534,6 +534,486 @@ "photogenic": True, "mood": "Relaxing", "recommended_packing_list": ["Swimsuit", "Towel", "Sunscreen", "Surfboard"] + }, + { + "id": 21, + "name": "Angkor Thom", + "description": "Last capital city of the Khmer Empire, featuring the iconic Bayon Temple with stone faces.", + "category": "historical", + "location": {"city": "Siem Reap", "country": "Cambodia", "region": "Siem Reap"}, + "rating": 4.7, + "image_url": "https://example.com/angkor-thom.jpg", + "website": "https://www.angkor.org", + "opening_hours": "5:00 AM - 6:00 PM", + "entry_fee": "$37 (1 day), $62 (3 days)", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-25", + "age_recommendation": "8+", + "age_restriction": None, + "budget": "Medium", + "time_needed": "3-4 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Spiritual", + "recommended_packing_list": ["Hat", "Water bottle", "Camera", "Comfortable shoes"] + }, + { + "id": 22, + "name": "Forbidden City", + "description": "Imperial palace complex from the Ming dynasty, now a UNESCO World Heritage Site.", + "category": "historical", + "location": {"city": "Beijing", "country": "China", "region": "Beijing"}, + "rating": 4.6, + "image_url": "https://example.com/forbidden-city.jpg", + "website": "https://www.dpm.org.cn", + "opening_hours": "8:30 AM - 5:00 PM", + "entry_fee": "¥60 - ¥80", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-40", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Low", + "time_needed": "3-5 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Cultural", + "recommended_packing_list": ["Camera", "Guidebook", "Water bottle", "Comfortable shoes"] + }, + { + "id": 23, + "name": "Borobudur Temple", + "description": "9th-century Mahayana Buddhist temple and UNESCO World Heritage Site with stunning sunrise views.", + "category": "religious", + "location": {"city": "Yogyakarta", "country": "Indonesia", "region": "Central Java"}, + "rating": 4.8, + "image_url": "https://example.com/borobudur.jpg", + "website": "https://borobudurpark.com", + "opening_hours": "6:00 AM - 5:00 PM", + "entry_fee": "475,000 IDR (foreigners), 50,000 IDR (locals)", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-30", + "age_recommendation": "8+", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Spiritual", + "recommended_packing_list": ["Hat", "Sunscreen", "Camera", "Water bottle"] + }, + { + "id": 24, + "name": "Phi Phi Islands", + "description": "Tropical paradise with crystal clear waters, perfect for snorkeling and diving.", + "category": "beaches", + "location": {"city": "Krabi", "country": "Thailand", "region": "Krabi"}, + "rating": 4.5, + "image_url": "https://example.com/phi-phi.jpg", + "website": "https://www.phiphi.com", + "opening_hours": "24/7", + "entry_fee": "Free (boat tour costs extra)", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-20", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "Full day", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Relaxing", + "recommended_packing_list": ["Swimsuit", "Snorkel gear", "Sunscreen", "Water shoes", "Camera"] + }, + { + "id": 25, + "name": "Marina Bay Sands SkyPark", + "description": "Iconic infinity pool and observation deck offering panoramic views of Singapore skyline.", + "category": "modern", + "location": {"city": "Singapore", "country": "Singapore", "region": "Central Singapore"}, + "rating": 4.4, + "image_url": "https://example.com/marina-bay-sands.jpg", + "website": "https://www.marinabaysands.com", + "opening_hours": "9:30 AM - 10:00 PM", + "entry_fee": "S$26 (observation deck), pool for hotel guests only", + "disability_accessible": True, + "outdoors": False, + "group_size": "1-50", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "High", + "time_needed": "1-2 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Luxurious", + "recommended_packing_list": ["Camera", "Sunglasses", "Light jacket"] + }, + { + "id": 26, + "name": "Pyramids of Giza", + "description": "Ancient Egyptian pyramids and the Great Sphinx, one of the Seven Wonders of the Ancient World.", + "category": "historical", + "location": {"city": "Giza", "country": "Egypt", "region": "Cairo Governorate"}, + "rating": 4.8, + "image_url": "https://example.com/pyramids-giza.jpg", + "website": "https://www.egypt.travel", + "opening_hours": "8:00 AM - 5:00 PM", + "entry_fee": "400 EGP (foreigners), 80 EGP (locals)", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-50", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "3-4 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Hat", "Sunscreen", "Water bottle", "Camera", "Comfortable shoes"] + }, + { + "id": 27, + "name": "Serengeti National Park", + "description": "World-famous wildlife reserve known for the Great Migration and diverse African wildlife.", + "category": "natural", + "location": {"city": "Arusha", "country": "Tanzania", "region": "Mara Region"}, + "rating": 4.9, + "image_url": "https://example.com/serengeti.jpg", + "website": "https://www.tanzaniaparks.go.tz", + "opening_hours": "6:00 AM - 6:00 PM", + "entry_fee": "$71 per day (foreigners), 10,000 TSH (locals)", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-15", + "age_recommendation": "8+", + "age_restriction": None, + "budget": "High", + "time_needed": "Full day", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Binoculars", "Camera with zoom lens", "Hat", "Safari clothes", "Sunscreen"] + }, + { + "id": 28, + "name": "Table Mountain", + "description": "Flat-topped mountain offering spectacular views of Cape Town and surrounding areas.", + "category": "mountains", + "location": {"city": "Cape Town", "country": "South Africa", "region": "Western Cape"}, + "rating": 4.7, + "image_url": "https://example.com/table-mountain.jpg", + "website": "https://www.tablemountain.net", + "opening_hours": "8:00 AM - 6:00 PM", + "entry_fee": "R395 (cable car), Free (hiking)", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-30", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-4 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Camera", "Jacket", "Comfortable shoes", "Water bottle"] + }, + { + "id": 29, + "name": "Victoria Falls", + "description": "One of the world's largest waterfalls, known locally as 'Mosi-oa-Tunya' (The Smoke That Thunders).", + "category": "natural", + "location": {"city": "Livingstone", "country": "Zambia", "region": "Southern Province"}, + "rating": 4.8, + "image_url": "https://example.com/victoria-falls.jpg", + "website": "https://www.victoriafalls-guide.net", + "opening_hours": "6:00 AM - 6:00 PM", + "entry_fee": "$30 (foreigners), ZMW 40 (locals)", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-40", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Raincoat", "Camera", "Water bottle", "Non-slip shoes"] + }, + { + "id": 30, + "name": "Stone Town", + "description": "Historic quarter of Zanzibar City with unique blend of Arab, Persian, Indian, and European architecture.", + "category": "cultural", + "location": {"city": "Zanzibar", "country": "Tanzania", "region": "Zanzibar"}, + "rating": 4.5, + "image_url": "https://example.com/stone-town.jpg", + "website": "https://www.zanzibartourism.net", + "opening_hours": "24/7", + "entry_fee": "Free", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-25", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Low", + "time_needed": "3-5 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Cultural", + "recommended_packing_list": ["Camera", "Comfortable walking shoes", "Hat", "Water bottle"] + }, + { + "id": 31, + "name": "Grand Canyon", + "description": "Massive canyon carved by the Colorado River, offering breathtaking views and hiking trails.", + "category": "natural", + "location": {"city": "Grand Canyon", "country": "USA", "region": "Arizona"}, + "rating": 4.8, + "image_url": "https://example.com/grand-canyon.jpg", + "website": "https://www.nps.gov/grca", + "opening_hours": "24/7 (visitor centers vary)", + "entry_fee": "$35 per vehicle (7 days)", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-50", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-8 hours", + "pet_friendly": True, + "wifi_available": True, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Camera", "Water bottle", "Hat", "Hiking boots", "Sunscreen"] + }, + { + "id": 32, + "name": "Chichen Itza", + "description": "Pre-Columbian Maya city with the famous El Castillo pyramid, UNESCO World Heritage Site.", + "category": "historical", + "location": {"city": "Yucatan", "country": "Mexico", "region": "Yucatan"}, + "rating": 4.6, + "image_url": "https://example.com/chichen-itza.jpg", + "website": "https://www.chichenitza.com", + "opening_hours": "8:00 AM - 5:00 PM", + "entry_fee": "$533 MXN (foreigners), $230 MXN (locals)", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-40", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Cultural", + "recommended_packing_list": ["Hat", "Sunscreen", "Camera", "Water bottle", "Comfortable shoes"] + }, + { + "id": 33, + "name": "Iguazu Falls", + "description": "Spectacular waterfalls on the border of Argentina and Brazil, one of the New Seven Wonders of Nature.", + "category": "natural", + "location": {"city": "Puerto Iguazu", "country": "Argentina", "region": "Misiones"}, + "rating": 4.9, + "image_url": "https://example.com/iguazu-falls.jpg", + "website": "https://www.iguazuargentina.com", + "opening_hours": "8:00 AM - 6:00 PM", + "entry_fee": "$30 USD (foreigners), $800 ARS (locals)", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-50", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "4-6 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Raincoat", "Camera", "Water bottle", "Non-slip shoes", "Sunscreen"] + }, + { + "id": 34, + "name": "Banff National Park", + "description": "Canada's oldest national park featuring stunning mountain scenery, lakes, and wildlife.", + "category": "natural", + "location": {"city": "Banff", "country": "Canada", "region": "Alberta"}, + "rating": 4.7, + "image_url": "https://example.com/banff.jpg", + "website": "https://www.pc.gc.ca/en/pn-np/ab/banff", + "opening_hours": "24/7", + "entry_fee": "$10.50 CAD per day", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-30", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "Full day", + "pet_friendly": True, + "wifi_available": False, + "photogenic": True, + "mood": "Relaxing", + "recommended_packing_list": ["Warm jacket", "Hiking boots", "Camera", "Water bottle", "Bear spray"] + }, + { + "id": 35, + "name": "Easter Island Moai", + "description": "Mysterious ancient stone statues scattered across remote Polynesian island.", + "category": "historical", + "location": {"city": "Hanga Roa", "country": "Chile", "region": "Valparaiso"}, + "rating": 4.5, + "image_url": "https://example.com/easter-island.jpg", + "website": "https://www.rapanui.co.cl", + "opening_hours": "9:00 AM - 6:00 PM", + "entry_fee": "$80 USD (foreigners), $20 USD (locals)", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-20", + "age_recommendation": "10+", + "age_restriction": None, + "budget": "High", + "time_needed": "3-5 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Mysterious", + "recommended_packing_list": ["Hat", "Sunscreen", "Camera", "Water bottle", "Comfortable walking shoes"] + }, + { + "id": 36, + "name": "Neuschwanstein Castle", + "description": "Fairy-tale castle in the Bavarian Alps that inspired Disney's Sleeping Beauty Castle.", + "category": "architecture", + "location": {"city": "Fussen", "country": "Germany", "region": "Bavaria"}, + "rating": 4.5, + "image_url": "https://example.com/neuschwanstein.jpg", + "website": "https://www.neuschwanstein.de", + "opening_hours": "9:00 AM - 6:00 PM", + "entry_fee": "€15 (adults), €13 (students)", + "disability_accessible": False, + "outdoors": False, + "group_size": "1-35", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-3 hours", + "pet_friendly": False, + "wifi_available": False, + "photogenic": True, + "mood": "Romantic", + "recommended_packing_list": ["Camera", "Comfortable walking shoes", "Light jacket"] + }, + { + "id": 37, + "name": "Northern Lights in Iceland", + "description": "Natural light display in polar regions, best viewed from Iceland's dark winter skies.", + "category": "natural", + "location": {"city": "Reykjavik", "country": "Iceland", "region": "Capital Region"}, + "rating": 4.9, + "image_url": "https://example.com/northern-lights.jpg", + "website": "https://www.northernlightsiceland.com", + "opening_hours": "September - March (weather dependent)", + "entry_fee": "Free (tour costs extra)", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-50", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "2-4 hours", + "pet_friendly": True, + "wifi_available": False, + "photogenic": True, + "mood": "Magical", + "recommended_packing_list": ["Warm winter clothes", "Camera with tripod", "Hot drinks", "Blanket"] + }, + { + "id": 38, + "name": "Swiss Alps Jungfraujoch", + "description": "Top of Europe with glaciers, snow activities, and panoramic mountain views.", + "category": "mountains", + "location": {"city": "Interlaken", "country": "Switzerland", "region": "Bern"}, + "rating": 4.6, + "image_url": "https://example.com/jungfraujoch.jpg", + "website": "https://www.jungfraujoch.ch", + "opening_hours": "8:00 AM - 5:00 PM", + "entry_fee": "CHF 75 - CHF 150", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-40", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "High", + "time_needed": "6-8 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Adventurous", + "recommended_packing_list": ["Warm jacket", "Sunglasses", "Camera", "Sunscreen", "Gloves"] + }, + { + "id": 39, + "name": "Prague Castle", + "description": "Ancient castle complex and UNESCO World Heritage Site overlooking the city of Prague.", + "category": "historical", + "location": {"city": "Prague", "country": "Czech Republic", "region": "Prague"}, + "rating": 4.4, + "image_url": "https://example.com/prague-castle.jpg", + "website": "https://www.hrad.cz", + "opening_hours": "9:00 AM - 5:00 PM", + "entry_fee": "350 CZK - 570 CZK", + "disability_accessible": True, + "outdoors": True, + "group_size": "1-30", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "3-4 hours", + "pet_friendly": False, + "wifi_available": True, + "photogenic": True, + "mood": "Cultural", + "recommended_packing_list": ["Camera", "Comfortable shoes", "Guidebook", "Light jacket"] + }, + { + "id": 40, + "name": "Amalfi Coast", + "description": "Stunning coastal drive with picturesque towns, dramatic cliffs, and Mediterranean views.", + "category": "natural", + "location": {"city": "Amalfi", "country": "Italy", "region": "Campania"}, + "rating": 4.7, + "image_url": "https://example.com/amalfi-coast.jpg", + "website": "https://www.amalficoast.it", + "opening_hours": "24/7", + "entry_fee": "Free", + "disability_accessible": False, + "outdoors": True, + "group_size": "1-25", + "age_recommendation": "All ages", + "age_restriction": None, + "budget": "Medium", + "time_needed": "Full day", + "pet_friendly": True, + "wifi_available": True, + "photogenic": True, + "mood": "Romantic", + "recommended_packing_list": ["Camera", "Sunscreen", "Comfortable shoes", "Swimsuit", "Hat"] } ] From 524c96b8d1eb9193bda687850f26db540eea1a15 Mon Sep 17 00:00:00 2001 From: Wojciech Sendera Date: Wed, 24 Sep 2025 15:48:18 +0200 Subject: [PATCH 06/10] mcp for vs code --- .vscode/mcp.json | 16 ++++++++++++++++ src/mcp/attractions-mcp/main.py | 4 ++-- src/mcp/weather-mcp/main.py | 4 ++-- 3 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 .vscode/mcp.json diff --git a/.vscode/mcp.json b/.vscode/mcp.json new file mode 100644 index 0000000..0efac37 --- /dev/null +++ b/.vscode/mcp.json @@ -0,0 +1,16 @@ +{ + "servers": { + "attractions": { + "command": "uv", + "args": ["run", "main.py", "--port", "8008"], + "cwd": "./src/mcp/weather-mcp", + "env": {} + }, + "weather": { + "command": "uv", + "args": ["run", "main.py", "--port", "8009"], + "cwd": "./src/mcp/weather-mcp", + "env": {} + } + } +} diff --git a/src/mcp/attractions-mcp/main.py b/src/mcp/attractions-mcp/main.py index 5bd10d3..531084b 100644 --- a/src/mcp/attractions-mcp/main.py +++ b/src/mcp/attractions-mcp/main.py @@ -23,7 +23,7 @@ format_search_results ) -mcp = FastMCP("Attractions", port=8008) +mcp = FastMCP("Attractions") # tools @mcp.tool() @@ -189,4 +189,4 @@ def attraction_comparison_prompt(attraction_ids: str) -> str: Help decide which attractions to prioritize based on time, budget, and interests.""" if __name__ == "__main__": - mcp.run(transport="streamable-http") \ No newline at end of file + mcp.run() \ No newline at end of file diff --git a/src/mcp/weather-mcp/main.py b/src/mcp/weather-mcp/main.py index 06b686d..ff49a3d 100644 --- a/src/mcp/weather-mcp/main.py +++ b/src/mcp/weather-mcp/main.py @@ -19,7 +19,7 @@ ) -mcp = FastMCP("Weather", port=8009) +mcp = FastMCP("Weather") # tools @mcp.tool() @@ -59,4 +59,4 @@ def weather_summary_prompt(location: str, include_forecast: bool = False) -> str return get_weather_summary_prompt(location, include_forecast) if __name__ == "__main__": - mcp.run("streamable-http") \ No newline at end of file + mcp.run() \ No newline at end of file From 1227413da5684729054535612c20cc616a2a0ed1 Mon Sep 17 00:00:00 2001 From: "AzureAD\\TarunDalwani" Date: Wed, 24 Sep 2025 19:38:08 +0530 Subject: [PATCH 07/10] added continents data --- src/mcp/attractions-mcp/config.py | 80 +++++++++++++++---------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/src/mcp/attractions-mcp/config.py b/src/mcp/attractions-mcp/config.py index 319e736..c9b503b 100644 --- a/src/mcp/attractions-mcp/config.py +++ b/src/mcp/attractions-mcp/config.py @@ -59,7 +59,7 @@ "name": "Eiffel Tower", "description": "Iconic iron lattice tower located on the Champ de Mars in Paris, France", "category": "architecture", - "location": {"city": "Paris", "country": "France", "region": "Île-de-France"}, + "location": {"city": "Paris", "country": "France", "region": "Île-de-France", "continent": "Europe"}, "rating": 4.6, "image_url": "https://example.com/eiffel-tower.jpg", "website": "https://www.toureiffel.paris", @@ -83,7 +83,7 @@ "name": "Taj Mahal", "description": "Ivory-white marble mausoleum on the right bank of the river Yamuna in Agra", "category": "historical", - "location": {"city": "Agra", "country": "India", "region": "Uttar Pradesh"}, + "location": {"city": "Agra", "country": "India", "region": "Uttar Pradesh", "continent": "Asia"}, "rating": 4.8, "image_url": "https://example.com/taj-mahal.jpg", "website": "https://www.tajmahal.gov.in", @@ -107,7 +107,7 @@ "name": "Colosseum", "description": "Ancient Roman amphitheater in the center of Rome, Italy", "category": "historical", - "location": {"city": "Rome", "country": "Italy", "region": "Lazio"}, + "location": {"city": "Rome", "country": "Italy", "region": "Lazio", "continent": "Europe"}, "rating": 4.5, "image_url": "https://example.com/colosseum.jpg", "website": "https://www.coopculture.it", @@ -131,7 +131,7 @@ "name": "Machu Picchu", "description": "Ancient Incan city set high in the Andes Mountains of Peru", "category": "historical", - "location": {"city": "Cusco", "country": "Peru", "region": "Cusco"}, + "location": {"city": "Cusco", "country": "Peru", "region": "Cusco", "continent": "South America"}, "rating": 4.9, "image_url": "https://example.com/machu-picchu.jpg", "website": "https://www.machupicchu.gob.pe", @@ -155,7 +155,7 @@ "name": "Louvre Museum", "description": "World's largest art museum and historic monument in Paris", "category": "museums", - "location": {"city": "Paris", "country": "France", "region": "Île-de-France"}, + "location": {"city": "Paris", "country": "France", "region": "Île-de-France", "continent": "Europe"}, "rating": 4.4, "image_url": "https://example.com/louvre.jpg", "website": "https://www.louvre.fr", @@ -179,7 +179,7 @@ "name": "Great Wall of China", "description": "Ancient fortification built across northern China", "category": "historical", - "location": {"city": "Beijing", "country": "China", "region": "Beijing"}, + "location": {"city": "Beijing", "country": "China", "region": "Beijing", "continent": "Asia"}, "rating": 4.7, "image_url": "https://example.com/great-wall.jpg", "website": "https://www.mutianyu.com", @@ -203,7 +203,7 @@ "name": "Santorini", "description": "Beautiful Greek island with white buildings and blue domes", "category": "natural", - "location": {"city": "Santorini", "country": "Greece", "region": "Cyclades"}, + "location": {"city": "Santorini", "country": "Greece", "region": "Cyclades", "continent": "Europe"}, "rating": 4.6, "image_url": "https://example.com/santorini.jpg", "website": "https://www.santorini.com", @@ -227,7 +227,7 @@ "name": "Angkor Wat", "description": "Largest religious monument in the world, originally a Hindu temple", "category": "religious", - "location": {"city": "Siem Reap", "country": "Cambodia", "region": "Siem Reap"}, + "location": {"city": "Siem Reap", "country": "Cambodia", "region": "Siem Reap", "continent": "Asia"}, "rating": 4.8, "image_url": "https://example.com/angkor-wat.jpg", "website": "https://www.angkorwat.com", @@ -251,7 +251,7 @@ "name": "Central Park", "description": "Large public park in Manhattan, New York City", "category": "parks", - "location": {"city": "New York", "country": "USA", "region": "New York"}, + "location": {"city": "New York", "country": "USA", "region": "New York", "continent": "North America"}, "rating": 4.3, "image_url": "https://example.com/central-park.jpg", "website": "https://www.centralparknyc.org", @@ -275,7 +275,7 @@ "name": "Petra", "description": "Archaeological city famous for rock-cut architecture and water conduit system", "category": "historical", - "location": {"city": "Ma'an", "country": "Jordan", "region": "Ma'an"}, + "location": {"city": "Ma'an", "country": "Jordan", "region": "Ma'an", "continent": "Asia"}, "rating": 4.7, "image_url": "https://example.com/petra.jpg", "website": "https://www.visitpetra.jo", @@ -299,7 +299,7 @@ "name": "Statue of Liberty", "description": "Neoclassical sculpture on Liberty Island in New York Harbor", "category": "modern", - "location": {"city": "New York", "country": "USA", "region": "New York"}, + "location": {"city": "New York", "country": "USA", "region": "New York", "continent": "North America"}, "rating": 4.4, "image_url": "https://example.com/statue-liberty.jpg", "website": "https://www.nps.gov/stli", @@ -323,7 +323,7 @@ "name": "Sagrada Familia", "description": "Unfinished Roman Catholic minor basilica in Barcelona, Spain", "category": "religious", - "location": {"city": "Barcelona", "country": "Spain", "region": "Catalonia"}, + "location": {"city": "Barcelona", "country": "Spain", "region": "Catalonia", "continent": "Europe"}, "rating": 4.6, "image_url": "https://example.com/sagrada-familia.jpg", "website": "https://sagradafamilia.org", @@ -347,7 +347,7 @@ "name": "Kinkaku-ji", "description": "Golden Pavilion, a Zen temple in Kyoto, Japan", "category": "religious", - "location": {"city": "Kyoto", "country": "Japan", "region": "Kansai"}, + "location": {"city": "Kyoto", "country": "Japan", "region": "Kansai", "continent": "Asia"}, "rating": 4.5, "image_url": "https://example.com/kinkaku-ji.jpg", "website": "https://www.shokoku-ji.jp", @@ -371,7 +371,7 @@ "name": "Sydney Opera House", "description": "Multi-venue performing arts center in Sydney, Australia", "category": "modern", - "location": {"city": "Sydney", "country": "Australia", "region": "New South Wales"}, + "location": {"city": "Sydney", "country": "Australia", "region": "New South Wales", "continent": "Oceania"}, "rating": 4.4, "image_url": "https://example.com/sydney-opera.jpg", "website": "https://www.sydneyoperahouse.com", @@ -395,7 +395,7 @@ "name": "Christ the Redeemer", "description": "Art Deco statue of Jesus Christ in Rio de Janeiro, Brazil", "category": "religious", - "location": {"city": "Rio de Janeiro", "country": "Brazil", "region": "Rio de Janeiro"}, + "location": {"city": "Rio de Janeiro", "country": "Brazil", "region": "Rio de Janeiro", "continent": "South America"}, "rating": 4.5, "image_url": "https://example.com/christ-redeemer.jpg", "website": "https://www.cristoredentor.com.br", @@ -420,7 +420,7 @@ "name": "Berlin Zoo", "description": "One of the world's most famous zoos, home to a wide variety of animals.", "category": "parks", - "location": {"city": "Berlin", "country": "Germany", "region": "Berlin"}, + "location": {"city": "Berlin", "country": "Germany", "region": "Berlin", "continent": "Europe"}, "rating": 4.2, "image_url": "https://example.com/berlin-zoo.jpg", "website": "https://www.zoo-berlin.de", @@ -444,7 +444,7 @@ "name": "Mount Fuji Hike", "description": "Climb Japan's iconic mountain for breathtaking views.", "category": "mountains", - "location": {"city": "Fujinomiya", "country": "Japan", "region": "Shizuoka"}, + "location": {"city": "Fujinomiya", "country": "Japan", "region": "Shizuoka", "continent": "Asia"}, "rating": 4.9, "image_url": "https://example.com/mount-fuji.jpg", "website": "https://www.japan-guide.com/e/e6901.html", @@ -468,7 +468,7 @@ "name": "Venice Gondola Ride", "description": "Experience the romantic canals of Venice on a traditional gondola.", "category": "entertainment", - "location": {"city": "Venice", "country": "Italy", "region": "Veneto"}, + "location": {"city": "Venice", "country": "Italy", "region": "Veneto", "continent": "Europe"}, "rating": 4.7, "image_url": "https://example.com/venice-gondola.jpg", "website": "https://www.venicegondola.com", @@ -492,7 +492,7 @@ "name": "London Science Museum", "description": "Interactive science exhibits for all ages.", "category": "museums", - "location": {"city": "London", "country": "UK", "region": "England"}, + "location": {"city": "London", "country": "UK", "region": "England", "continent": "Europe"}, "rating": 4.5, "image_url": "https://example.com/london-science-museum.jpg", "website": "https://www.sciencemuseum.org.uk", @@ -516,7 +516,7 @@ "name": "Bondi Beach", "description": "Famous beach in Sydney, popular for surfing and sunbathing.", "category": "beaches", - "location": {"city": "Sydney", "country": "Australia", "region": "New South Wales"}, + "location": {"city": "Sydney", "country": "Australia", "region": "New South Wales", "continent": "Oceania"}, "rating": 4.8, "image_url": "https://example.com/bondi-beach.jpg", "website": "https://www.bondivillage.com", @@ -540,7 +540,7 @@ "name": "Angkor Thom", "description": "Last capital city of the Khmer Empire, featuring the iconic Bayon Temple with stone faces.", "category": "historical", - "location": {"city": "Siem Reap", "country": "Cambodia", "region": "Siem Reap"}, + "location": {"city": "Siem Reap", "country": "Cambodia", "region": "Siem Reap", "continent": "Asia"}, "rating": 4.7, "image_url": "https://example.com/angkor-thom.jpg", "website": "https://www.angkor.org", @@ -564,7 +564,7 @@ "name": "Forbidden City", "description": "Imperial palace complex from the Ming dynasty, now a UNESCO World Heritage Site.", "category": "historical", - "location": {"city": "Beijing", "country": "China", "region": "Beijing"}, + "location": {"city": "Beijing", "country": "China", "region": "Beijing", "continent": "Asia"}, "rating": 4.6, "image_url": "https://example.com/forbidden-city.jpg", "website": "https://www.dpm.org.cn", @@ -588,7 +588,7 @@ "name": "Borobudur Temple", "description": "9th-century Mahayana Buddhist temple and UNESCO World Heritage Site with stunning sunrise views.", "category": "religious", - "location": {"city": "Yogyakarta", "country": "Indonesia", "region": "Central Java"}, + "location": {"city": "Yogyakarta", "country": "Indonesia", "region": "Central Java", "continent": "Asia"}, "rating": 4.8, "image_url": "https://example.com/borobudur.jpg", "website": "https://borobudurpark.com", @@ -612,7 +612,7 @@ "name": "Phi Phi Islands", "description": "Tropical paradise with crystal clear waters, perfect for snorkeling and diving.", "category": "beaches", - "location": {"city": "Krabi", "country": "Thailand", "region": "Krabi"}, + "location": {"city": "Krabi", "country": "Thailand", "region": "Krabi", "continent": "Asia"}, "rating": 4.5, "image_url": "https://example.com/phi-phi.jpg", "website": "https://www.phiphi.com", @@ -636,7 +636,7 @@ "name": "Marina Bay Sands SkyPark", "description": "Iconic infinity pool and observation deck offering panoramic views of Singapore skyline.", "category": "modern", - "location": {"city": "Singapore", "country": "Singapore", "region": "Central Singapore"}, + "location": {"city": "Singapore", "country": "Singapore", "region": "Central Singapore", "continent": "Asia"}, "rating": 4.4, "image_url": "https://example.com/marina-bay-sands.jpg", "website": "https://www.marinabaysands.com", @@ -660,7 +660,7 @@ "name": "Pyramids of Giza", "description": "Ancient Egyptian pyramids and the Great Sphinx, one of the Seven Wonders of the Ancient World.", "category": "historical", - "location": {"city": "Giza", "country": "Egypt", "region": "Cairo Governorate"}, + "location": {"city": "Giza", "country": "Egypt", "region": "Cairo Governorate", "continent": "Africa"}, "rating": 4.8, "image_url": "https://example.com/pyramids-giza.jpg", "website": "https://www.egypt.travel", @@ -684,7 +684,7 @@ "name": "Serengeti National Park", "description": "World-famous wildlife reserve known for the Great Migration and diverse African wildlife.", "category": "natural", - "location": {"city": "Arusha", "country": "Tanzania", "region": "Mara Region"}, + "location": {"city": "Arusha", "country": "Tanzania", "region": "Mara Region", "continent": "Africa"}, "rating": 4.9, "image_url": "https://example.com/serengeti.jpg", "website": "https://www.tanzaniaparks.go.tz", @@ -708,7 +708,7 @@ "name": "Table Mountain", "description": "Flat-topped mountain offering spectacular views of Cape Town and surrounding areas.", "category": "mountains", - "location": {"city": "Cape Town", "country": "South Africa", "region": "Western Cape"}, + "location": {"city": "Cape Town", "country": "South Africa", "region": "Western Cape", "continent": "Africa"}, "rating": 4.7, "image_url": "https://example.com/table-mountain.jpg", "website": "https://www.tablemountain.net", @@ -732,7 +732,7 @@ "name": "Victoria Falls", "description": "One of the world's largest waterfalls, known locally as 'Mosi-oa-Tunya' (The Smoke That Thunders).", "category": "natural", - "location": {"city": "Livingstone", "country": "Zambia", "region": "Southern Province"}, + "location": {"city": "Livingstone", "country": "Zambia", "region": "Southern Province", "continent": "Africa"}, "rating": 4.8, "image_url": "https://example.com/victoria-falls.jpg", "website": "https://www.victoriafalls-guide.net", @@ -756,7 +756,7 @@ "name": "Stone Town", "description": "Historic quarter of Zanzibar City with unique blend of Arab, Persian, Indian, and European architecture.", "category": "cultural", - "location": {"city": "Zanzibar", "country": "Tanzania", "region": "Zanzibar"}, + "location": {"city": "Zanzibar", "country": "Tanzania", "region": "Zanzibar", "continent": "Africa"}, "rating": 4.5, "image_url": "https://example.com/stone-town.jpg", "website": "https://www.zanzibartourism.net", @@ -780,7 +780,7 @@ "name": "Grand Canyon", "description": "Massive canyon carved by the Colorado River, offering breathtaking views and hiking trails.", "category": "natural", - "location": {"city": "Grand Canyon", "country": "USA", "region": "Arizona"}, + "location": {"city": "Grand Canyon", "country": "USA", "region": "Arizona", "continent": "North America"}, "rating": 4.8, "image_url": "https://example.com/grand-canyon.jpg", "website": "https://www.nps.gov/grca", @@ -804,7 +804,7 @@ "name": "Chichen Itza", "description": "Pre-Columbian Maya city with the famous El Castillo pyramid, UNESCO World Heritage Site.", "category": "historical", - "location": {"city": "Yucatan", "country": "Mexico", "region": "Yucatan"}, + "location": {"city": "Yucatan", "country": "Mexico", "region": "Yucatan", "continent": "North America"}, "rating": 4.6, "image_url": "https://example.com/chichen-itza.jpg", "website": "https://www.chichenitza.com", @@ -828,7 +828,7 @@ "name": "Iguazu Falls", "description": "Spectacular waterfalls on the border of Argentina and Brazil, one of the New Seven Wonders of Nature.", "category": "natural", - "location": {"city": "Puerto Iguazu", "country": "Argentina", "region": "Misiones"}, + "location": {"city": "Puerto Iguazu", "country": "Argentina", "region": "Misiones", "continent": "South America"}, "rating": 4.9, "image_url": "https://example.com/iguazu-falls.jpg", "website": "https://www.iguazuargentina.com", @@ -852,7 +852,7 @@ "name": "Banff National Park", "description": "Canada's oldest national park featuring stunning mountain scenery, lakes, and wildlife.", "category": "natural", - "location": {"city": "Banff", "country": "Canada", "region": "Alberta"}, + "location": {"city": "Banff", "country": "Canada", "region": "Alberta", "continent": "North America"}, "rating": 4.7, "image_url": "https://example.com/banff.jpg", "website": "https://www.pc.gc.ca/en/pn-np/ab/banff", @@ -876,7 +876,7 @@ "name": "Easter Island Moai", "description": "Mysterious ancient stone statues scattered across remote Polynesian island.", "category": "historical", - "location": {"city": "Hanga Roa", "country": "Chile", "region": "Valparaiso"}, + "location": {"city": "Hanga Roa", "country": "Chile", "region": "Valparaiso", "continent": "South America"}, "rating": 4.5, "image_url": "https://example.com/easter-island.jpg", "website": "https://www.rapanui.co.cl", @@ -900,7 +900,7 @@ "name": "Neuschwanstein Castle", "description": "Fairy-tale castle in the Bavarian Alps that inspired Disney's Sleeping Beauty Castle.", "category": "architecture", - "location": {"city": "Fussen", "country": "Germany", "region": "Bavaria"}, + "location": {"city": "Fussen", "country": "Germany", "region": "Bavaria", "continent": "Europe"}, "rating": 4.5, "image_url": "https://example.com/neuschwanstein.jpg", "website": "https://www.neuschwanstein.de", @@ -924,7 +924,7 @@ "name": "Northern Lights in Iceland", "description": "Natural light display in polar regions, best viewed from Iceland's dark winter skies.", "category": "natural", - "location": {"city": "Reykjavik", "country": "Iceland", "region": "Capital Region"}, + "location": {"city": "Reykjavik", "country": "Iceland", "region": "Capital Region", "continent": "Europe"}, "rating": 4.9, "image_url": "https://example.com/northern-lights.jpg", "website": "https://www.northernlightsiceland.com", @@ -948,7 +948,7 @@ "name": "Swiss Alps Jungfraujoch", "description": "Top of Europe with glaciers, snow activities, and panoramic mountain views.", "category": "mountains", - "location": {"city": "Interlaken", "country": "Switzerland", "region": "Bern"}, + "location": {"city": "Interlaken", "country": "Switzerland", "region": "Bern", "continent": "Europe"}, "rating": 4.6, "image_url": "https://example.com/jungfraujoch.jpg", "website": "https://www.jungfraujoch.ch", @@ -972,7 +972,7 @@ "name": "Prague Castle", "description": "Ancient castle complex and UNESCO World Heritage Site overlooking the city of Prague.", "category": "historical", - "location": {"city": "Prague", "country": "Czech Republic", "region": "Prague"}, + "location": {"city": "Prague", "country": "Czech Republic", "region": "Prague", "continent": "Europe"}, "rating": 4.4, "image_url": "https://example.com/prague-castle.jpg", "website": "https://www.hrad.cz", @@ -996,7 +996,7 @@ "name": "Amalfi Coast", "description": "Stunning coastal drive with picturesque towns, dramatic cliffs, and Mediterranean views.", "category": "natural", - "location": {"city": "Amalfi", "country": "Italy", "region": "Campania"}, + "location": {"city": "Amalfi", "country": "Italy", "region": "Campania", "continent": "Europe"}, "rating": 4.7, "image_url": "https://example.com/amalfi-coast.jpg", "website": "https://www.amalficoast.it", From 0f977e750e648f2c469e69b7034bddac0f098eaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Kole=C5=BCy=C5=84ski?= <1st.cubix@gmail.com> Date: Wed, 24 Sep 2025 16:21:15 +0200 Subject: [PATCH 08/10] Add files via upload --- demo/team_gemini_2025.pptx | Bin 0 -> 2153603 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demo/team_gemini_2025.pptx diff --git a/demo/team_gemini_2025.pptx b/demo/team_gemini_2025.pptx new file mode 100644 index 0000000000000000000000000000000000000000..c63c7bfe1a5c75fb86636771d7be1aae6c8720c1 GIT binary patch literal 2153603 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