Segurança da Informação & Inteligência Artificial
O CrewAI permite que você crie equipes de IA onde cada agente tem funções, ferramentas e objetivos específicos, trabalhando em conjunto para realizar tarefas complexas.
Pense nisso como se estivesse montando sua equipe dos sonhos: cada membro (agente) traz habilidades e conhecimentos únicos, colaborando perfeitamente para atingir seus objetivos.
Assim como uma empresa tem departamentos (Vendas, Engenharia, Marketing) trabalhando juntos sob liderança para atingir objetivos de negócios, o CrewAI ajuda você a criar uma organização de agentes de IA com funções especializadas colaborando para realizar tarefas complexas.
Site Oficial: www.crewai.com
Utilize o colab.new para instalar os pacotes do CrewAI.
!pip install -q -U crewai crewai_tools

Realize a importação dos Agent, Task e Crew, execute e em seguida adicione mais um bloco de código: + Código
from crewai import Agent, Task, Crew

Para este exemplo vou utilizar a API da OpenAI
Acesse o site platform.openai.com/settings/organization/api-keys e gere a API_KEY.

Defina a variável OPEN_API_KEY com a Chave gerada no site da OpenAI.
import os
from google.colab import userdata
os.environ["OPENAI_API_KEY"] = userdata.get('OPENAI_API_KEY')
os.environ["OPEN_MODEL_NAME"] = 'gpt-4o'
os.environ["SERPER_API_KEY"] = userdata.get('SERPER_API_KEY')

Para obter dados da internet sugiro a utilização da API do Serper.
Acesse o site serper.dev e gere a API Key.

Defina a variável SERPER_API_KEY com a Chave gerada no site da Serper.

Execute o código para certificar que as variáveis foram configuradas corretamente.

Importe as ferramentas para fazer Web Sraping nos sites.
Para mais opções acesse: docs.crewai.com/concepts/tools
from crewai_tools import SerperDevTool, ScrapeWebsiteTool search_tool = SerperDevTool() scrape_tool = ScrapeWebsiteTool()

Criando o Agente de Busca de Conteúdo.
Para mais detalhes sobre os parâmetros dos Agents, acesse: docs.crewai.com/concepts/agents
buscador = Agent(
role='Buscador de Conteúdo',
goal='Localizar e consolidar informações relevantes sobre {tema} a partir de fontes online.',
backstory=(
'Você é um especialista em busca e curadoria de conteúdo. '
'Seu objetivo é pesquisar informações relevantes sobre {tema}, coletá-las de diversas fontes online e organizá-las de forma estruturada. '
'Os dados que você reunir servirão como base para o Redator de Conteúdo, garantindo que ele tenha materiais confiáveis e atualizados para a criação do artigo.'
),
tools=[search_tool, scrape_tool],
verbose=True
)

Criando o Agente Redator de Conteúdo.
redator = Agent(
role='Redator de Conteúdo',
goal='Produzir um artigo bem estruturado e profissional sobre {tema}.',
backstory=(
'Você é um especialista em redação e criação de conteúdo. '
'Seu objetivo é redigir um artigo de alta qualidade sobre {tema}, utilizando informações estruturadas e verificadas. '
'Para isso, você se baseará nos dados coletados pelo Buscador de Conteúdo, garantindo precisão, clareza e relevância na escrita. '
'Seu texto deve ser coeso, bem organizado e adequado ao público-alvo.'
),
tools=[search_tool, scrape_tool],
verbose=True
)

Criando o Agente Editor de Conteúdo.
editor = Agent(
role='Editor de Conteúdo',
goal='Revisar e aprimorar um artigo sobre {tema}, garantindo clareza, coesão e qualidade profissional.',
backstory=(
'Você é um editor experiente responsável por refinar e aprimorar textos. '
'Seu objetivo é revisar o artigo sobre {tema}, garantindo que ele seja claro, coeso e bem estruturado. '
'Para isso, você utilizará o texto gerado pelo Redator de Conteúdo, corrigindo erros, ajustando o tom e garantindo a fluidez da leitura. '
'Seu trabalho é essencial para entregar um conteúdo polido e de alta qualidade, adequado ao público-alvo.'
),
tools=[search_tool, scrape_tool],
verbose=True
)

Criando a Tarefa do Buscador.
Para mais detalhes sobre os parâmetros das Tasks, acesse: docs.crewai.com/concepts/tasks
buscar = Task(
description=(
"1. Pesquise e selecione as principais informações e recomendações sobre {tema}.\n"
"2. Identifique o público-alvo, considerando seus interesses, desafios e necessidades.\n"
"3. Inclua palavras-chave estratégicas e fontes confiáveis para embasar o conteúdo."
),
agent=buscador,
expected_output="Um resumo estruturado com insights relevantes sobre {tema}, incluindo palavras-chave essenciais e fontes de referência."
)

Criação da Tarefa do Buscador.
redigir = Task(
description=(
"1. Utilize os dados coletados para redigir um artigo profissional e bem fundamentado sobre {tema}.\n"
"2. Incorpore palavras-chave de maneira natural e estratégica para otimização.\n"
"3. Estruture o artigo de forma clara e coerente, garantindo introdução, desenvolvimento e uma conclusão objetiva e impactante."
),
agent=redator,
expected_output="Um artigo bem estruturado e profissional sobre {tema}, com linguagem clara e otimizada."
)

Criação da Tarefa do Buscador.
editar = Task(
description=(
"1. Revisar o artigo sobre {tema}, corrigindo erros de ortografia, gramática e pontuação.\n"
"2. Ajustar a fluidez do texto, garantindo coesão e clareza na comunicação.\n"
"3. Refinar a estrutura e o tom do artigo para torná-lo mais profissional e adequado ao público-alvo."
),
agent=editor,
expected_output="Um artigo revisado, coeso e pronto para publicação."
)

Criação da Equipe.
equipe = Crew(
agents = [buscador, redator, editor],
tasks = [buscar, redigir, editar],
verbose = True
)

Executando a Equipe.
titulo_do_artigo = 'Phishing'
entradas = {"tema" : titulo_do_artigo}
resultado = equipe.kickoff(inputs=entradas)

Realizando a Formatação do Artigo.
from IPython.display import Markdown Markdown(resultado.raw)
