Este projeto consiste em um chatbot integrado ao WhatsApp, desenvolvido com Flask, que utiliza a biblioteca Langchain e a API do WAHA. O objetivo do chatbot é fornecer informações nutricionais detalhadas sobre alimentos, como carboidratos, proteínas, gorduras e calorias, aproveitando a Google Generative AI.
A ideia surgiu a partir de um estudo de caso apresentado pela PyCodeBr sobre LLMs e AI. Então tive a ideia de desenvolver um chatBot pudesse responder a perguntas sobre a composição nutricional de alimentos de maneira acessível e rápida. A implementação foi realizada utilizando a API do WAHA para permitir interações via WhatsApp.
- Respostas Automáticas: O chatbot responde automaticamente a consultas sobre alimentos.
- Informações Nutricionais: Fornece dados sobre carboidratos, proteínas, gorduras, fibras e calorias.
- Tratamento de Saudações: Responde a saudações de maneira amigável, incentivando perguntas sobre alimentos.
- Tratamento de Erros: Responde a perguntas fora do escopo com uma mensagem adequada.
-
Instalação do WAHA
Você Precisa ter uma instancia do WAHA rodando localmente na sua maquina na porta 3000 para o funcionamento do projeto e consumo de todos os endpoints.
docker run -it -p 3000:3000/tcp devlikeapro/waha
-
Clone o repositório:
git clone https://github.com/iiiiiuri/LLM-Nutricional.git cd <nome do diretório>
-
Instale as dependências necessárias:
pip install -r requirements.txt
-
Crie um arquivo .env na raiz do projeto e adicione sua chave de API do Google, gerada em https://ai.google.dev/ .
GOOGLE_API= Sua_Chave_Aqui
🛠️ Como Usar
-
Inicie o servidor Flask:
python app.py
-
O servidor irá escutar na porta 5000 e responder a mensagens enviadas para o webhook configurado.
-
Envie uma mensagem para o número do WhatsApp associado à API do WAHA para interagir com o chatbot.
⚙️ Estrutura do Código
O código principal do projeto é estruturado da seguinte forma:
Flask: Utilizado para criar o servidor e gerenciar as rotas.
Langchain: Usado para gerar respostas baseadas em prompts.
Google Generative AI: Integração com o modelo Gemini para gerar informações nutricionais.
Sinta-se à vontade para personalizar qualquer parte do texto ou adicionar mais detalhes conforme necessário!! :D