- Integrantes
- Descrição
- Requisitos
- Tecnologias
- Fluxo do Software
- Dificuldades
- Resultados
- Como_Usar
- Conclusão
- Anderson do Vale - and3510
- Beatriz Barreto - whosbea
- Cristovam Paulo - cristovam10000
- Guilherme de Assis - onizuka465
- Gustavo do Vale - gustavodovale
- Lucas Cesar - lucascesar1107
Chatbot universitário que ajuda os alunos a acessarem informações de forma rápida e precisa
- Ser aplicado no Whatsapp - Não Funcional
- Ter uma função para mandar Calendario Acadêmico - Funcional
- Ter uma função para mostrar horarios das provas - Funcional
- Ter uma função para mostrar as faltas do aluno - Funcional
- Ter uma função para o usuario reportar problemas da faculdade,chatbot ou curso - Funcional
- Ter uma função para pesquisar livros que estão na biblioteca - Funcional
- Ter uma função para mostrar as notas das provas e quizzes do aluno - Funcional
- Ter uma função para mostrar os números de telefone e emails da instituição - Funcional
- Ter uma função para começar um bate papo com uma IA, para tirar duvidas sobre as materias - Funcional
- Usar Banco para armazenar e buscar informações - Não Funcional
- Typebot: Plataforma para criar chatbots interativos, sem programação complexa.
- NocoDB: Banco de dados visual que transforma dados em planilhas.
- Evolution API: Automação para envio de mensagens via WhatsApp.
- WhatsApp: Plataforma para troca de mensagens e comunicação instantânea.
- ChatGPT: IA para geração de conversas em linguagem natural.
- Docker: Virtualização de aplicações em contêineres para qualquer ambiente.
- Postman: Ferramenta para testar, monitorar e documentar APIs.
Realizar pesquisas acadêmicas com os alunos é desafiador devido à baixa participação, causada por falta de tempo ou desinteresse no tema. A sobrecarga de atividades acadêmicas e extracurriculares dificulta o comprometimento dos estudantes, afetando a qualidade e quantidade das respostas.
Tivemos problemas durante a execução dos testes do protótipo devido ao grande número de solicitações, o que causou algumas sobrecargas e paralisações nos testes.
Além disso, gastamos um tempo tentando enviar uma requisição HTTP da plataforma Typebot para a API Evolution.Felizmente, conseguimos ter sucesso após expor o serviço local à internet usando o comando ngrok
no Linux.
Durante o projeto, fomos informados de que não poderíamos integrar o chatbot com o banco de dados da faculdade por questões de segurança. Isso reduziu as chances de o sistema ser adotado pela instituição, porém, poderíamos ajustar o projeto removendo as funcionalidades que dependiam de acesso ao banco de dados da faculdade, como Ver Notas, Faltas e Biblioteca.
Devido ao alto custo das requisições, não conseguimos utilizar a API do ChatGPT, então optamos por usar a API Gemini.
- A criação de personagens e dados fictícios foi realizada para testes com o chatbot e o banco de dados.
- Sete salas foram criadas, cada uma abrigando um personagem específico.
- O cursos criados foram 3 (Engenharia Software, Direito, Administração) com periodos diferentes e turnos.
Antes de tentar usar, é importante ja saber como usar as plataformas Typebot e NocoDb
-
Criar Conta no Typebot:
- Acesse o site do Typebot e siga as instruções para criar uma conta.
-
Criar Conta no NocoDB:
- Acesse o site do NocoDB e registre-se para criar sua conta.
-
Integração entre Typebot e NocoDB:
O Typebot oferece suporte direto para o NocoDB, facilitando a integração. Para configurar, siga os passos abaixo:
-
Token de Autenticação:
- Você precisará fornecer o token da API do NocoDB para autenticar a conexão.
-
IDs das Tabelas:
- Quando solicitado pela integração, especifique os Table IDs das tabelas que deseja acessar.
-
-
Carregamento das Tabelas:
- As tabelas estão disponíveis no arquivo
tables.zip
. Baixe o arquivo e faça o upload de cada tabela no NocoDB.
- As tabelas estão disponíveis no arquivo
-
Importar o Template:
- Utilize meu arquivo
template.json
para importar as configurações necessárias para o Typebot.
- Utilize meu arquivo
- Navegue até o diretório do arquivo
docker-compose.yml
:
Estarei usando a versão 1.8.2 do Evolution API
Use o seguinte comando para acessar a pasta do projeto:
cd BIA_Project
-
Execute o stack com o Docker Compose no
BIA_Project/docker/docker-compose.yml
:Antes de fazer um
docker-compose up
, crie um arquivo .env na mesma pasta do docker-compose.ymle adicione:
AUTHENTICATION_API_KEY= senha da chave api evolution
Para iniciar os serviços definidos no Docker Compose, utilize o comando:
docker-compose up
Se não tiver docker, veja a documentação
-
Acesse a API localmente:
Após executar o comando acima, um contêiner chamado evolution-whatsapp_api-1 será iniciado na porta 8080. Para verificar se a API está rodando corretamente, abra o navegador e acesse:
https://localhost:8080
No entanto, para que o Typebot possa fazer requisições HTTP, precisamos expor a porta 8080 para a internet.
-
Exponha a porta com Ngrok:
Execute o seguinte comando para expor a porta 8080:
ngrok http 8080
Isso irá gerar uma URL pública que redireciona as requisições para sua API local. Caso nunca tenha usado o Ngrok, consulte a documentação oficial para mais informações.
-
Acesse a API pela internet:
Como mostrado na imagem, copie a URL gerada pelo Ngrok (por exemplo,
https://4e1f-138-121-129-56.ngrok-free.app
) e cole no navegador. Agora, sua Evolution API está acessível pela internet!lembrando, que sua url será diferente.
-
Acessar o Gerenciador:
-
Abra o navegador e acesse o gerenciador da API por meio da URL gerada pelo Ngrok:
https://4e1f-138-121-129-56.ngrok-free.app/manager
-
Você verá um formulário de login semelhante ao da imagem abaixo:
- O
ApiKey
padrão do Gerenciador é 4D2883EC3249AD0271123319BB6E7ABD. Caso queira alterar, edite o arquivodocker-compose.yml
.
-
-
Conectar seu WhatsApp à Evolution API:
- Primeiro, será necessário criar uma instância para conectar o WhatsApp.
-
Escolha o tipo de integração: Cloud API ou Baileys.
Dica: Utilize Baileys se você não estiver usando o WhatsApp Business. -
Após criar a instância, clique nela para acessar a configuração da Evolution API.
- Agora conecte seu whatsapp com o API, usando Scan QRCODE do aplicativo.
-
Configurar o Typebot:
-
Dentro da instância da Evolution API, vá até a seção de configuração do Typebot.
-
No início do fluxo, existem três variáveis que precisam ser preenchidas:
-
apikey: A chave de API que você está utilizando.
-
instance: A instância que você criou anteriormente.
-
baseUrl: A URL base da API (gerada pelo Ngrok).
-
Agora, vamos configurar a API para receber corretamente o fluxo do Typebot. Para isso, o fluxo precisa estar publicado.
-
Na configuração da API, utilize a URL:
https://typebot.co
E no campo Nome do Fluxo, insira o nome do fluxo correspondente, por exemplo:
"bia-1xxte5n"
.
-
Depois disso, envie uma mensagem para o número registrado na API e veja a mágica acontecer!
- Tabelas: Todas as tabelas criadas e configuradas no fluxo, com os IDs das tabelas corretos.
- API Evolution: API Evolution em execução no Docker, com a porta 8080 exposta na internet através do Ngrok.
- Configuração de Parâmetros: Parâmetros adequadamente configurados no fluxo e na API Evolution para garantir que as requisições sejam processadas corretamente.
O projeto BIA - Bot Inteligente Acadêmico é uma ferramenta inovadora que visa facilitar o acesso dos alunos às informações acadêmicas por meio de um chatbot no WhatsApp. Ele integra diversas tecnologias como Typebot, NocoDB e Evolution API, utilizando contêineres Docker para simplificar o ambiente de desenvolvimento. Através de funcionalidades como o envio do calendário acadêmico, horários de provas, notas e faltas, o bot melhora a comunicação entre a faculdade e os alunos.
Apesar das dificuldades enfrentadas, como limitações no uso de bancos de dados institucionais e sobrecarga nos testes, a equipe conseguiu implementar soluções alternativas, expondo serviços locais à internet via Ngrok, garantindo assim a continuidade do projeto. O uso de plataformas como o Typebot e a Evolution API possibilitou a criação de menus dinâmicos e personalizáveis, proporcionando uma experiência de usuário aprimorada.
No final, não obtivemos a aprovação da faculdade para implementar o projeto devido ao corte de funcionalidades, mas disponibilizaremos o protótipo publicamente para que quem quiser possa testar o software em sua máquina.
A conclusão deste projeto destaca a importância da integração entre tecnologias e a criatividade da equipe para superar os desafios, com um protótipo funcional, mesmo que com algumas funcionalidades ainda em desenvolvimento ou ajustáveis conforme as necessidades.