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.
89 lines
2.5 KiB
89 lines
2.5 KiB
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)
|
|
|