-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
79 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
from dotenv import load_dotenv | ||
load_dotenv() | ||
|
||
import os | ||
from crewai import Agent, Task, Crew, Process | ||
from crewai_tools import SerperDevTool | ||
|
||
# You can choose to use a local model through Ollama for example. See https://docs.crewai.com/how-to/LLM-Connections/ for more information. | ||
|
||
# os.environ["OPENAI_API_BASE"] = 'http://localhost:11434/v1' | ||
# os.environ["OPENAI_MODEL_NAME"] ='openhermes' # Adjust based on available model | ||
# os.environ["OPENAI_API_KEY"] ='sk-111111111111111111111111111111111111111111111111' | ||
|
||
# You can pass an optional llm attribute specifying what model you wanna use. | ||
# It can be a local model through Ollama / LM Studio or a remote | ||
# model like OpenAI, Mistral, Antrophic or others (https://docs.crewai.com/how-to/LLM-Connections/) | ||
# If you don't specify a model, the default is OpenAI gpt-4o | ||
# | ||
# import os | ||
# os.environ['OPENAI_MODEL_NAME'] = 'gpt-3.5-turbo' | ||
# | ||
# OR | ||
# | ||
# from langchain_openai import ChatOpenAI | ||
|
||
search_tool = SerperDevTool() | ||
|
||
# Define your agents with roles and goals | ||
researcher = Agent( | ||
role='Senior Research Analyst', | ||
goal='Uncover cutting-edge developments in AI and data science', | ||
backstory="""You work at a leading tech think tank. | ||
Your expertise lies in identifying emerging trends. | ||
You have a knack for dissecting complex data and presenting actionable insights.""", | ||
verbose=True, | ||
allow_delegation=False, | ||
# You can pass an optional llm attribute specifying what model you wanna use. | ||
# llm=ChatOpenAI(model_name="gpt-3.5", temperature=0.7), | ||
tools=[search_tool] | ||
) | ||
writer = Agent( | ||
role='Tech Content Strategist', | ||
goal='Craft compelling content on tech advancements', | ||
backstory="""You are a renowned Content Strategist, known for your insightful and engaging articles. | ||
You transform complex concepts into compelling narratives.""", | ||
verbose=True, | ||
allow_delegation=True | ||
) | ||
|
||
# Create tasks for your agents | ||
task1 = Task( | ||
description="""Conduct a comprehensive analysis of the latest advancements in AI in 2024. | ||
Identify key trends, breakthrough technologies, and potential industry impacts.""", | ||
expected_output="Full analysis report in bullet points", | ||
agent=researcher | ||
) | ||
|
||
task2 = Task( | ||
description="""Using the insights provided, develop an engaging blog | ||
post that highlights the most significant AI advancements. | ||
Your post should be informative yet accessible, catering to a tech-savvy audience. | ||
Make it sound cool, avoid complex words so it doesn't sound like AI.""", | ||
expected_output="Full blog post of at least 4 paragraphs", | ||
agent=writer | ||
) | ||
|
||
# Instantiate your crew with a sequential process | ||
crew = Crew( | ||
agents=[researcher, writer], | ||
tasks=[task1, task2], | ||
verbose=True, | ||
process = Process.sequential | ||
) | ||
|
||
# Get your crew to work! | ||
result = crew.kickoff() | ||
|
||
print("######################") | ||
print(result) |