Grupo NexGen - MagaBOT: Um Gerador Facilitado de Manifesto

Boa noite, somos o Grupo NexGen e estamos muito contentes em participar do Hackaton e poder contribuir, aprender e trocar experiências com os mentores e colegas.

Apresentação

Somos o Pedro, Michel e Fabrício, estudantes da USP - São Carlos (P e M em Eng de Computação, F em Ciências de Computação), cada um com suas especialidades e soft skills, somos engajados com soluções objetivas e eficientes.

Problema Mapeado

Ao lermos sobre a proposta do evento, a primeira pergunta que veio-nos a mente foi: “Afinal, o quê é Terraform?”. Apesar de termos conhecimento do que seja Cloud, Magalu Cloud e afins, a tecnologia Terraform era desconhecida para nós. Com isso, pensamos que, de fato, essa situação pode ter ocorrido também com outros grupos e, principalmente, com profissionais recém inseridos no mercado de trabalho e profissionais cuja expertise não seja em infraestrutura.

Solução

Após estudarmos mais e explorármos a ampla documentação disponibilizada pelo time Magalu Cloud, estruturamos uma solução ao problema supracitado: Um Gerador Facilitado de Manifesto. Ou seja, automatizar a criação de arquivos de forma que o usuário não precise se debruçar sobre as linhas de arquivo, basta ele indicar quais as necessidades que precisam ser cobertas.

Para tal, utilizaremos de uma aplicação web hospedada na Magalu Cloud que permite ao usuário escrever em linguagem natural quais as configurações de arquivo que ele precisa, resultando em uma comunicação com nossa API que usufrui do poder de interpretação semântica da IA generativa para retornar um arquivo pronto ao usuário.

2 curtidas

Atualizações Parciais 1: Backend

Conforme explicitado na mensagem de Apresentação, optamos por, a nível de backend, seguir com uma GenAI para gerar o arquivo Terraform. Para tanto, estamos utilizando a linguagem python 3.10 como base, para manusear o LLM, a bliblioteca da CreawAI para criar nossos agentes com uma chave da OpenAI que criamos para o evento.

Caso convenha, segue um link para maiores referências sobre a CreawAI: https://www.crewai.com/

1 curtida

Atualizações Parciais 2: Frontend

Buscando uma interface agradável ao usuário, de fácil entendimento e eficiente, estamos criando o frontend de nossa aplicação web com React e Tailwind. A seguir, pode-se ver uma prévia do UI.

Atualizações Parciais 3: Backend

Seguindo com nossa implementação, escolhemos o framework de python chamado FastAPI para fazer a comunicação entre nossos agentes e o frontend, visto que ele é simples e leve.

1 curtida

Atualizações Parciais 4: Infra

Temos código backend e código frontend rodando em localhost de forma correta e funcional. Mas, afinal, como tornar isso uma aplicação mais próxima da realidade?

Tendo esse propósito em mente, optamos por hospedar dentro da Magalu Cloud nossos módulos de maneira distribuída, estando cada uma em uma VM que nós criamos. Além dessa estratégia se aproximar daquela realizada por muitos players do mercado para tornar escalável com maior facilidade, a experiência de criarmos VMs e trabalharmos com elas rendeu valiosos aprendizados da melhor maneira possível: hands on.

Atualização Final: Entrega do Projeto

Após uma longa noite percorrendo ideias, linhas de código, pizzas e doces, chegamos ao fim anunciando que o MagaBOT está em produção, com front em 169.150.0.101:5173.

Overview Técnico

Resumindo os tópicos abordados nas atualizações parciais, temos:

  • Frontend em React e Tailwind: responsável pelo UX e UI.
  • Backend em FastAPI: responsável por receber as requisições do frontend, acionar o processamento do MagaBOT e enviar resultado de volta ao frontend.
  • Agentes com CreawAI: conjunto de agentes usando API do GPT-4o de modo que o modelo gere o arquivo Terraform a partir do que fora requisitado pelo usuário e também, tomando como base um conjunto de informações disponibilizadas na documentação da Magalu Cloud.
  • Infra: nosso frontend está hospedado em uma VM da Magalu Cloud enquanto o backend está em outra, conforme prática comumente adotada por players referências do mercado.

Sobre o percurso

O Hachaton foi, de fato, uma experiência ímpar no ano, uma grande oportunidade de fazermos networking, trocarmos experiências, ouvirmos de mentores já inseridos no mercado por meio da Magalu, momentos de descontração com pizzas e doces, e, principalmente, termos a oportunidade de aprender sobre cloud computing de uma forma totalmente hands on.

Resultado - O MagaBOT

Passadas as longas horas da noite, concluímos o projeto proposto, nosso site se encontra no ar, hospedado totalmente na Magalu Cloud. Dessa forma, qualquer usuário pode entrar e requisitar um arquivo Terraform, facilitando a entrada de novos profissionais e migração de profissionais de outros setores na área de infraestrutura.

Repositório

Todos os códigos utilizados estão disponíveis no github do projeto.

Instalação

Clonar o Repositório:

git clone https://github.com/MichelH7cker/mgc-hackathon

Instalação de Dependências:

Backend

pip install -r requirements.txt
cd mgc-hackathon/site/backend/
vi .env

No .env, insira a chave OPENAI_API_KEY e os valores de HOST e PORT.

python3 app.py

Frontend

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
cd mgc-hackathon/site/frontend/
npm install
npm run dev

Usabilidade

Uma vez no site, tem-se uma experiência deveras intuitiva: tem-se uma caixa de texto onde o usuário pode escrever, em língua natural, o tipo de arquivo Terraform que ele deseja. Com isso, nosso porcessamento gerará o código e retornará o conteúdo disponível visivelmente e, também, um botão de download diretamente em “.tf”.

1 curtida