Forked and enhanced from the crewAI examples repository
VacAIgent leverages the CrewAI framework to automate and enhance the trip planning experience, integrating a user-friendly Streamlit interface. This project demonstrates how autonomous AI agents can collaborate and execute complex tasks efficiently, now with an added layer of interactivity and accessibility through Streamlit.
Check out the video below for code walkthrough 👇
(Trip example originally developed by @joaomdmoura)
CrewAI simplifies the orchestration of role-playing AI agents. In VacAIgent, these agents collaboratively decide on cities and craft a complete itinerary for your trip based on specified preferences, all accessible via a streamlined Streamlit user interface.
The introduction of Streamlit transforms this application into an interactive web app, allowing users to easily input their preferences and receive tailored travel plans.
To experience the VacAIgent app:
Configure Environment: Set up the environment variables for Browseless, Serper, and OpenAI. Use the secrets.example
as a guide to add your keys then move that file (secrets.toml
) to .streamlit/secrets.toml
.
Install Dependencies: Execute pip install -r requirements.txt
in your terminal.
Launch the App: Run streamlit run streamlit_app.py
to start the Streamlit interface.
★ Disclaimer: The application uses GPT-4 by default. Ensure you have access to OpenAI's API and be aware of the associated costs.
streamlit_app.py
, where users can input their trip details../trip_tasks.py
: Contains task prompts for the agents../trip_agents.py
: Manages the creation of agents../tools directory
: Houses tool classes used by agents../streamlit_app.py
: The heart of the Streamlit app.To switch from GPT-4 to GPT-3.5, pass the llm argument in the agent constructor:
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI(model='gpt-3.5-turbo') # Loading gpt-3.5-turbo (see more OpenAI models at https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4)
class TripAgents:
# ... existing methods
def local_expert(self):
return Agent(
role='Local Expert',
goal='Provide insights about the selected city',
tools=[SearchTools.search_internet, BrowserTools.scrape_and_summarize_website],
llm=llm,
verbose=True
)
For enhanced privacy and customization, you can integrate local models like Ollama:
Pass the Ollama model to agents in the CrewAI framework:
from langchain.llms import Ollama
ollama_model = Ollama(model="agent")
class TripAgents:
# ... existing methods
def local_expert(self):
return Agent(
role='Local Expert',
tools=[SearchTools.search_internet, BrowserTools.scrape_and_summarize_website],
llm=ollama_model,
verbose=True
)
VacAIgent is open-sourced under the MIT License.