You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.5 KiB
90 lines
2.5 KiB
9 months ago
|
from crewai import Crew
|
||
|
from textwrap import dedent
|
||
|
from .trip_agents import TripAgents
|
||
|
from .trip_tasks import TripTasks
|
||
|
import os
|
||
|
from dotenv import load_dotenv
|
||
|
|
||
|
current_directory = os.path.dirname(os.path.realpath(__file__))
|
||
|
config_directory = os.path.expanduser("~/.config/fabric")
|
||
|
env_file = os.path.join(config_directory, ".env")
|
||
|
load_dotenv(env_file)
|
||
|
os.environ['OPENAI_MODEL_NAME'] = 'gpt-4-0125-preview'
|
||
|
|
||
|
|
||
|
class TripCrew:
|
||
|
|
||
|
def __init__(self, origin, cities, date_range, interests):
|
||
|
self.cities = cities
|
||
|
self.origin = origin
|
||
|
self.interests = interests
|
||
|
self.date_range = date_range
|
||
|
|
||
|
def run(self):
|
||
|
agents = TripAgents()
|
||
|
tasks = TripTasks()
|
||
|
|
||
|
city_selector_agent = agents.city_selection_agent()
|
||
|
local_expert_agent = agents.local_expert()
|
||
|
travel_concierge_agent = agents.travel_concierge()
|
||
|
|
||
|
identify_task = tasks.identify_task(
|
||
|
city_selector_agent,
|
||
|
self.origin,
|
||
|
self.cities,
|
||
|
self.interests,
|
||
|
self.date_range
|
||
|
)
|
||
|
gather_task = tasks.gather_task(
|
||
|
local_expert_agent,
|
||
|
self.origin,
|
||
|
self.interests,
|
||
|
self.date_range
|
||
|
)
|
||
|
plan_task = tasks.plan_task(
|
||
|
travel_concierge_agent,
|
||
|
self.origin,
|
||
|
self.interests,
|
||
|
self.date_range
|
||
|
)
|
||
|
|
||
|
crew = Crew(
|
||
|
agents=[
|
||
|
city_selector_agent, local_expert_agent, travel_concierge_agent
|
||
|
],
|
||
|
tasks=[identify_task, gather_task, plan_task],
|
||
|
verbose=True
|
||
|
)
|
||
|
|
||
|
result = crew.kickoff()
|
||
|
return result
|
||
|
|
||
|
|
||
|
class planner_cli:
|
||
|
def ask(self):
|
||
|
print("## Welcome to Trip Planner Crew")
|
||
|
print('-------------------------------')
|
||
|
location = input(
|
||
|
dedent("""
|
||
|
From where will you be traveling from?
|
||
|
"""))
|
||
|
cities = input(
|
||
|
dedent("""
|
||
|
What are the cities options you are interested in visiting?
|
||
|
"""))
|
||
|
date_range = input(
|
||
|
dedent("""
|
||
|
What is the date range you are interested in traveling?
|
||
|
"""))
|
||
|
interests = input(
|
||
|
dedent("""
|
||
|
What are some of your high level interests and hobbies?
|
||
|
"""))
|
||
|
|
||
|
trip_crew = TripCrew(location, cities, date_range, interests)
|
||
|
result = trip_crew.run()
|
||
|
print("\n\n########################")
|
||
|
print("## Here is you Trip Plan")
|
||
|
print("########################\n")
|
||
|
print(result)
|