Published on

How I Built an AI-Powered Travel Planner using Crewai

Authors

How I Built an AI-Powered Travel Planner in 10 Minutes (And How You Can Too!)

Discover how AI can plan your next dream vacation effortlessly. Learn to create a powerful travel planning chatbot using Crew AI.

Hook: Ever wished for a personal travel agent who works 24/7 without taking breaks? Welcome to the future with Crew AI! 🌟✈️

Meet Your New AI Travel Agent

Hey there, travel enthusiasts! Today, we're diving into the exciting world of Crew AI, an AI-powered travel planner that can curate your perfect itinerary in minutes. Imagine planning a trip while sipping coffee, and by the time you're done, your travel plans are ready. Let's make that a reality! ☕✨

Step-by-Step Guide to Building Your Travel Planner

Here's how to get started with Crew AI for your travel planning needs:

  1. Clone the Crew AI Examples Repository:

    • Open your terminal and run:
      git clone https://github.com/joaomdmoura/crewAI-examples
      cd crewAI-examples
      cd trip_planner
      
  2. Set Up the Environment:

    • Create a virtual environment and install dependencies:
      conda create -n crewai python=3.11 -y
      conda activate crewai
      pip install poetry platformdirs
      poetry install --no-root
      
  3. Run the Application:

    • Start the application by running:
      poetry run python main.py
      

What’s Inside the Crew AI Trip Planner?

Let's break down the magic happening behind the scenes:

  • File Node: Upload your travel documents or reports.
  • Data Loader: Converts files into a format the vector database can understand.
  • Vector Query Node: Loads files into a temporary vector database for querying.
  • LLMs, Chat Memory, and Prompts: Ensures the chatbot can remember and process conversations.

Building the Chatbot Logic

Here’s how you configure your AI travel agent:

  1. Input Node: Captures user queries.

  2. Vector Store Reader: Links to your travel documents.

  3. Chat Memory: Stores conversation context.

  4. LLM Configuration: Tells the AI how to behave:

    "You are an analyst chatbot specializing in answering questions given conversational history and context."
    

    Output Node: Displays the results. Running the Travel Planner Let's put it all together and run our travel planner. Answer a few questions, and watch the AI work its magic:

Travel Details: Departure city: "New York" Destination: "London" Travel dates: "February 2024" Interests: "AI, Chinese food, latest technology" The AI then scours the web, checks the weather, finds events, and curates a detailed itinerary:

Day-by-Day Itinerary: Day 1: Arrival and city exploration Day 2: Cultural sites Day 3: AI events Day 4: Hidden gems Day 5: Chinese New Year celebration Day 6: Food festival Day 7: Tech shows and departure Why This Is Exciting Imagine planning your entire trip in minutes with a personalized itinerary and budget breakdown. It’s like having a personal travel assistant who never sleeps! 🌐🤖

Customizing Your AI Travel Planner One of the coolest features of Crew AI is its flexibility. You can tailor the AI to suit your specific needs and preferences.

Personalize Your Itinerary Define Your Preferences: Want more adventure or relaxation? Input your interests, and the AI adjusts the plan. Adjust the Duration: Whether you’re planning a weekend getaway or a month-long escapade, Crew AI adapts effortlessly. Add Special Requests: Interested in attending a local event or need vegan food options? Just let the AI know! Adding More Functionality You can expand the AI's capabilities by integrating additional APIs and tools:

Flight Search: Connect flight search APIs to get real-time flight options and prices. Hotel Recommendations: Use hotel booking APIs to find and book accommodations directly from your itinerary. Local Experiences: Integrate with platforms like Airbnb Experiences or Viator to include unique local activities. A Glimpse at the Code Here’s a sneak peek at how you can enhance your AI travel planner:

from crewai.agents import CitySelectionAgent, LocalExpertAgent, TravelConciergeAgent

# Define tasks for each agent
city_selection_task = {
    "identify_city": {
        "parameters": {
            "weather": "mild",
            "season": "spring",
            "budget": "moderate"
        }
    }
}

local_expert_task = {
    "gather_info": {
        "parameters": {
            "key_attractions": True,
            "local_customs": True,
            "events": True
        }
    }
}

travel_concierge_task = {
    "plan_itinerary": {
        "parameters": {
            "duration_days": 7,
            "include_budget": True
        }
    }
}

# Initiate agents with tasks
city_selector = CitySelectionAgent(task=city_selection_task)
local_expert = LocalExpertAgent(task=local_expert_task)
travel_concierge = TravelConciergeAgent(task=travel_concierge_task)

# Initialize Crew AI
crew_ai = CrewAI(agents=[city_selector, local_expert, travel_concierge])

# Get user input and run the planner
user_input = {
    "departure_city": "New York",
    "destination_options": ["London", "Paris", "Berlin"],
    "travel_dates": "April 2024",
    "interests": ["AI", "fine dining", "museums"]
}

crew_ai.run(user_input)