Deepak Pant
Updated poetry setup
c6d9110
import warnings
from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task
from resume_maker_ai_agent.tools.custom_tool import search_tool
warnings.filterwarnings("ignore", category=SyntaxWarning, module="pysbd")
@CrewBase
class ResumeMakerAIAgent:
"""ResumeMakerAIAgent crew"""
agents_config = "config/agents.yaml"
tasks_config = "config/tasks.yaml"
@agent
def job_researcher(self) -> Agent:
"""
Creates the job researcher agent.
This agent is responsible for searching for job openings.
:return: An instance of the Agent class
"""
return Agent(config=self.agents_config["job_researcher"], tools=[search_tool], verbose=True)
@agent
def profiler(self) -> Agent:
"""
Creates the profiler agent.
This agent is responsible for researching and generating music details.
:return: An instance of the Agent class
"""
return Agent(config=self.agents_config["profiler"], tools=[search_tool], verbose=True)
@agent
def resume_strategist(self) -> Agent:
"""
Creates the resume strategist agent.
This agent is responsible for customizing resumes based on job
descriptions.
:return: An instance of the Agent class
"""
return Agent(config=self.agents_config["resume_strategist"], tools=[search_tool], verbose=True)
@task
def research_task(self) -> Task:
"""
Creates the research task.
This task is responsible for searching for job openings.
:return: An instance of the Task class
"""
return Task(config=self.tasks_config["research_task"], async_execution=True)
@task
def profile_task(self) -> Task:
"""
Creates the profile task.
This task is responsible for researching and generating music details.
:return: An instance of the Task class
"""
return Task(config=self.tasks_config["profile_task"], async_execution=True)
@task
def resume_strategy_task(self) -> Task:
"""
Creates the profile task.
This task is responsible for generating a profile based on the output
of the research task.
:return: An instance of the Task class
"""
return Task(
config=self.tasks_config["resume_strategy_task"],
context=[self.research_task(), self.profile_task()],
)
@crew
def crew(self) -> Crew:
"""Creates the JioSavanMusicDownloaderAgent crew"""
return Crew(
agents=self.agents, # Automatically created by the @agent decorator
tasks=self.tasks, # Automatically created by the @task decorator
process=Process.sequential,
verbose=False,
)