mirror of
https://github.com/danielmiessler/fabric
synced 2024-11-10 07:10:31 +00:00
90 lines
2.5 KiB
Python
90 lines
2.5 KiB
Python
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)
|