Topic outline

  • Nesse módulo vamos mostrar como construir um GPT personalizado passo a passo.

    Exemplo 19: Assista ao vídeo a seguir e refaça o exemplo. 



    Observe como inserir uma API no GPT personalizado

    API significa Interface de Programação de Aplicações (do inglês: Application Programming Interface). 



    Exemplo 20 - Criando agentes para redação de textos técnicos usando API SERPER e da OPENAI

    No site da Google criar uma API (mostrado no exemplo 17) da SERPER. Criar uma API da OPENAI.



    Executar o código a seguir passo a passo no GOOGLE COLAB. Comece criando um NOVO NOTEBOOK.

    Copie e cole as partes do código. Execute e observe os resultados. 


    📌 Parte 1 – Instalação das bibliotecas

    Comece sempre com a instalação das versões necessárias. Execute em uma célula separada:

    !pip install crewai==0.28.8 crewai_tools==0.1.6 langchain_community==0.0.29

    📌 Parte 2 – Importações

    Depois de instalar, importe os módulos principais:

    import os from crewai_tools import tool, SerperDevTool, ScrapeWebsiteTool, WebsiteSearchTool from crewai import Agent, Task, Crew, Process from langchain_openai import ChatOpenAI

    📌 Parte 3 – Configuração das chaves de API

    Aqui organizamos a leitura das chaves que estão salvas em arquivos locais (API_OpenAI_SEPEI.txt e API_Serper.txt). Você deve fazer upload desses arquivos no Colab antes.

    # Função para ler a chave de API do OpenAI def get_openai_api_key(): with open('API_OpenAI_SEPEI.txt', 'r') as file: return file.read().strip() # Função para ler a chave de API do Serper def get_serper_api_key(): with open('API_Serper.txt', 'r') as file: return file.read().strip() # Configurar variáveis de ambiente openai_api_key = get_openai_api_key() serper_api_key = get_serper_api_key() os.environ["OPENAI_API_KEY"] = openai_api_key os.environ["SERPER_API_KEY"] = serper_api_key

    📌 Parte 4 – Configuração do LLM e Ferramentas

    Definimos o modelo de linguagem e as ferramentas que os agentes poderão usar.

    # Modelo LLM gpt4o_mini_llm = ChatOpenAI(model="gpt-4o-mini", api_key=openai_api_key) # Ferramentas ferramenta_de_busca = SerperDevTool() ferramenta_de_raspagem = ScrapeWebsiteTool()

    📌 Parte 5 – Definição dos Agentes

    Aqui configuramos os três agentes: Planejador, Escritor e Editor.

    planejador = Agent( role="Planejador de Conteúdo", goal="Planejar conteúdo envolvente e factualmente preciso sobre {tópico}", backstory=( "Você está trabalhando no planejamento de um artigo de blog " "sobre o tópico: {tópico}. " "Você coleta informações que ajudam o público a aprender algo " "e tomar decisões informadas. " "Seu trabalho é a base para que o Redator de Conteúdo escreva " "um artigo sobre este tópico." ), verbose=True, tools=[ferramenta_de_busca, ferramenta_de_raspagem], allow_delegation=False, llm=gpt4o_mini_llm ) escritor = Agent( role="Redator de Conteúdo", goal="Escrever um artigo em português do Brasil, de opinião perspicaz e factualmente preciso sobre {tópico}", backstory=( "Você está trabalhando na escrita de um artigo de opinião sobre o tópico: {tópico}. " "Você baseia sua escrita no trabalho do Planejador de Conteúdo, que fornece um esboço e contexto. " "Você segue os principais objetivos e fornece insights apoiados em informações do Planejador. " "Reconhece quando uma afirmação é opinião e quando é fato." ), verbose=True, tools=[ferramenta_de_busca, ferramenta_de_raspagem], allow_delegation=False, llm=gpt4o_mini_llm ) editor = Agent( role="Editor", goal="Editar um post de blog alinhado ao estilo da organização.", backstory=( "Você é um editor que recebe um post de blog do Redator de Conteúdo. " "Seu objetivo é revisar para garantir boas práticas jornalísticas, " "apresentar pontos de vista equilibrados e evitar polêmicas desnecessárias." ), verbose=True, tools=[ferramenta_de_busca, ferramenta_de_raspagem], allow_delegation=False, llm=gpt4o_mini_llm )

    📌 Parte 6 – Definição das Tarefas

    Aqui estabelecemos as tarefas que cada agente deve executar.

    planejamento = Task( description=( "1. Priorizar as últimas tendências, principais players e notícias relevantes sobre {tópico}.\n" "2. Identificar o público-alvo, considerando interesses e pontos de dor.\n" "3. Desenvolver um esboço de conteúdo detalhado com introdução, pontos principais e call-to-action.\n" "4. Incluir palavras-chave de SEO e fontes relevantes." ), expected_output="Documento de plano de conteúdo com esboço, público-alvo, palavras-chave e recursos.", agent=planejador, ) escrita = Task( description=( "1. Use o plano de conteúdo para criar um post de blog atraente sobre {tópico}.\n" "2. Incorpore palavras-chave de SEO de forma natural.\n" "3. Nomeie seções de maneira envolvente.\n" "4. Estruture com introdução, corpo e conclusão.\n" "5. Revise erros gramaticais e alinhe com público-alvo." ), expected_output="Post de blog em português, formato markdown, pronto para publicação.", agent=escritor, ) edicao = Task( description="Revise o post de blog para corrigir erros e alinhar ao público-alvo.", expected_output="Post revisado, pronto para publicação, em português, com seções de 3-4 parágrafos.", agent=editor )

    📌 Parte 7 – Montagem da Crew

    Aqui juntamos os agentes e tarefas.

    crew = Crew( agents=[planejador, escritor, editor], tasks=[planejamento, escrita, edicao], verbose=2 )

    📌 Parte 8 – Execução

    Finalmente, rodamos a orquestração da equipe, passando o tópico desejado.

    result = crew.kickoff(inputs={"tópico": "Seminário de Ensino, Pesquisa e Extensão do IFSC - SEPEI"}) from IPython.display import Markdown Markdown(result)

    ==============================================
    Você pode alterar o tópico em vermelho para construir textos sobre outros assuntos.
    O importante nesse exemplo é você perceber que é possível usar a IA usando APIs.  

    =================================

    Se você chegou até aqui e realizou pelo menos 12 atividades práticas, parabéns !

    Você pode solicitar a emissão do certificado de participação com 8 horas de carga horária. 

    Para isso você deve enviar um PDF único comprovando a realização de pelo menos 12 atividades para o email: jesue@ifsc.edu.br com assunto: PRÁTICA DE IA - SOLICITAÇÃO DE CERTIFICADO. 

    Você também deve preencher o formulário a seguir com seus dados.

    https://forms.gle/zw1cdYrC3K7DHoHq5

    ============================================================================

    Prof. Jesué Graciliano da Silva


    Para saber mais: 

    https://wiki.sj.ifsc.edu.br/images/d/db/Apendice.pdf

    https://moodle.ifsc.edu.br/pluginfile.php/489695/mod_resource/content/4/ESTUDO%20COMPLEMENTAR%20CURSO%20EAD%20IA.pdf

    ==================