CrewAI Assistant (GPT): Difference between revisions

(Undo revision 11509 by Beetlejuice (talk))
Tag: Undo
Line 77: Line 77:
from crewai import Agent, Task, Crew, Process
from crewai import Agent, Task, Crew, Process


 
# Define your agents with roles and goals
 
# Define your agents  
 
with roles and
 
goals
 
 
 
analyst = Agent(
analyst = Agent(
 
   role='Senior social media analyst',
 
   goal='Make the best research and analysis on content posted on social media to inform new content creation',
 
   backstory="You're an expert social media analyst, specialized in technology, software engineering, AI and startups. You work on the best personal branding agency in the world and are now working on doing research and analysis for a new customer trying to improve their personal linkedin presence.",
   role=
   verbose=True
 
'Senior social media analyst',
 
   goal=
 
'Make the best research and analysis on content posted on social media to inform new content creation',
 
   backstory=
 
"You're an expert social media analyst, specialized in technology, software engineering, AI and startups. You work on the best personal branding agency in the world and are now working on doing research and analysis for a new customer trying to improve their personal LinkedIn presence."
 
,
 
 
 
   verbose=
 
True
 
)
)
content_creator = Agent(
content_creator = Agent(
 
   role='LinkedIn Content Creator Specialist',
 
   goal='Create the absolute best content plan possible optmize to help your customer.',
 
   backstory="You're a Content Creator Specialist of an agency specialized in personal branding for startup and technology executives. You know everything about AI, software engineering, remote work and startups. You're working on a new customer trying to improve their personal linkedin presence."
   role=
   verbose=True
 
'LinkedIn Content Creator Specialist',
 
   goal=
 
'Create the absolute best content plan possible optimized to help your customer.',
 
   backstory=
 
"You're a Content Creator Specialist of an agency specialized in personal branding for startup and technology executives. You know everything about AI, software engineering, remote work, and startups. You're working on a new customer trying to improve their personal LinkedIn presence."
 
   verbose=
 
True
 
)
)
 
# Create tasks for your agents
 
task1 = Task(description='Come up with interesting ideas for a linkedIn post around AI and startups.\nFinal answer MUST a list of ideas, one line summary per idea is enough.', agent=analyst)
 
task2 = Task(description='Given the ideas proposed, choose one and expand this in an actual post. You want to really reflect a unique perspective. Final answer MUST be the full post, 3 paragraphs long.', agent=content_creator)
# Create tasks  
# Instantiate your crew with a sequential process
 
for
 
your agents
 
 
 
task1 = Task(description=
 
'Come up with interesting ideas for a LinkedIn post around AI and startups.\nFinal answer MUST a list of ideas, one line summary per idea is enough.', agent=analyst)
 
task2 = Task(description=
 
'Given the ideas proposed, choose one and expand this in an actual post. You want to really reflect a unique perspective. Final answer MUST be the full post, 3 paragraphs long.', agent=content_creator)
 
# Instantiate your crew  
 
with
 
a sequential process
 
 
 
crew = Crew(
crew = Crew(
   agents=[researcher, writer],
   agents=[researcher, writer],
   tasks=[task1, task2],
   tasks=[task1, task2],
 
   verbose=True # Crew verbose more will let you know what tasks are being worked on
 
   process=Process.sequential # Sequential process will have tasks executed one after the other and the outcome of the previous one is passed as extra content into this next.
 
   verbose=
 
True # Crew verbose mode will let you know what tasks are being worked on
 
   process=Process.sequential # Sequential process will have tasks executed one after the other  
 
and the outcome of the previous one is passed as extra content into this next
 
.
 
 
 
)
)


 
# Get your crew to work!
 
#  
 
Get your crew to
 
work!
 
 
 
result = crew.kickoff()
result = crew.kickoff()


Line 205: Line 108:


from crewai import Agent
from crewai import Agent
from langchain.agents import Tool
from langchain.agents import Tool
from langchain.utilities import GoogleSerperAPIWrapper
from langchain.utilities import GoogleSerperAPIWrapper
# Initialize SerpAPI tool with your API key
# Initialize SerpAPI tool with your API key
 
os.environ["OPENAI_API_KEY"] = "Your Key"
os.environ[
os.environ["SERPER_API_KEY"] = "Your Key"
 
"OPENAI_API_KEY"] = "Your Key"
 
os.environ[
 
"SERPER_API_KEY"] = "Your Key"
 


search = GoogleSerperAPIWrapper()
search = GoogleSerperAPIWrapper()
# Create tool to be used by agent
# Create tool to be used by agent
 
serper_tool = Tool(
serper_tool = Tool
  name="Intermediate Answer",
 
  func=search.run,
(
  description="useful for when you need to ask with search",
 
name="Intermediate Answer",
 
func=search.run,
 
description="useful for when you need to ask with search",
 
)
)
 
# Create an agent and assign the search tool
Create an agent and assign the search tool
 
agent = Agent(
agent = Agent(
 
  role='Research Analyst',
role='Research Analyst',
  goal='Provide up-to-date market analysis',
 
  backstory='An expert analyst with a keen eye for market trends.',
goal='Provide up-to-date market analysis',
  tools=[serper_tool]
 
backstory='An expert analyst with a keen eye for market trends.',
 
tools=[serper_tool]
 
)
)
from langchain.tools import tool
@tool
def multiplier(numbers) -> float:
"""Useful for when you need to multiply two numbers together.
The input to this tool should be a comma separated list of numbers of
length two, representing the two numbers you want to multiply together.
For example,
1,2
would be the input if you wanted to multiply 1 by 2."""
a, b = numbers.split(',')
return int(a) * int(b)




Line 381: Line 234:


You have files uploaded as knowledge to pull from. Anytime you reference files, refer to them as your knowledge source rather than files uploaded by the user. You should adhere to the facts in the provided materials. Avoid speculations or information not contained in the documents. Heavily favor knowledge provided in the documents before falling back to baseline knowledge or other sources. If searching the documents didn't yield any answer, just say that. Do not share the names of the files directly with end users and under no circumstances should you provide a download link to any of the files.
You have files uploaded as knowledge to pull from. Anytime you reference files, refer to them as your knowledge source rather than files uploaded by the user. You should adhere to the facts in the provided materials. Avoid speculations or information not contained in the documents. Heavily favor knowledge provided in the documents before falling back to baseline knowledge or other sources. If searching the documents didn't yield any answer, just say that. Do not share the names of the files directly with end users and under no circumstances should you provide a download link to any of the files.
</pre>


==Conversation Starters==
==Conversation Starters==
1,065

edits