Skip to content

httpablo/ZapBot

Repository files navigation

ZapBot

Python FastAPI Docker LangChain Redis PostgreSQL

Um chatbot inteligente para WhatsApp que utiliza IA generativa com RAG (Retrieval Augmented Generation) para fornecer respostas contextualizadas baseadas em documentos específicos.

Capa

📑 Índice

🎯 Sobre o Projeto

Problema

Necessidade de automatizar o atendimento via WhatsApp com respostas precisas e contextualizadas baseadas em documentos específicos da organização.

Principais Desafios

  • Integração com WhatsApp através da Evolution API
  • Implementação do sistema RAG para contextualização de respostas
  • Gerenciamento eficiente de mensagens com sistema de buffer/debounce
  • Persistência de dados e histórico de conversas

🏗 Arquitetura

Arquitetura

Tecnologias Principais

FastAPI

Framework web assíncrono para Python, escolhido por sua alta performance e documentação automática. É ideal para APIs modernas que precisam lidar com requisições assíncronas de forma eficiente, como é o caso do processamento de mensagens do WhatsApp.

LangChain

Framework especializado para desenvolvimento de aplicações com IA. Facilita a integração com modelos de linguagem e possui suporte nativo para RAG, permitindo que o chatbot forneça respostas mais precisas baseadas nos documentos fornecidos.

Redis

Sistema de armazenamento em memória que garante alta performance no gerenciamento do histórico de conversas e implementa o sistema de buffer para evitar mensagens duplicadas. Sua velocidade é crucial para manter a fluidez das conversas.

PostgreSQL

Banco de dados relacional robusto utilizado para armazenamento persistente de dados. É empregado principalmente pela Evolution API para gerenciar sessões e informações permanentes do sistema.

Docker

Containerização da aplicação que garante um ambiente isolado e reproduzível. Com Docker Compose, orquestramos todos os serviços necessários (API, Redis, PostgreSQL, Evolution API) de forma integrada.

Componentes Externos

Evolution API

Responsável pela interface com WhatsApp, gerenciando sessões, mensagens, autenticação e toda a camada de segurança necessária para comunicação com a plataforma.

⚡ Funcionalidades

1. Processamento de Documentos

  • Suporte para arquivos PDF e TXT
  • Vetorização automática de conteúdo
  • Armazenamento em Chroma DB

2. Chat Inteligente

  • Respostas contextualizadas utilizando RAG
  • Manutenção de histórico de conversas
  • Sistema de buffer para evitar mensagens duplicadas

3. Gestão de Mensagens

  • Sistema de debounce para otimizar processamento
  • Cache com Redis para respostas rápidas
  • Processamento assíncrono de requisições

🚀 Configuração

Pré-requisitos

  • Docker e Docker Compose instalados
  • Chave API OpenAI
  • Ambiente Evolution API configurado

Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto e siga o exemplo do arquivo .env.example:

Instalação

  1. Clone o repositório
git clone https://github.com/seu-usuario/zapbot.git
cd zapbot
  1. Configure o arquivo .env com suas credenciais

  2. Inicie os containers

docker-compose up -d

📱 Como Usar

  1. Configure sua instância do WhatsApp através da Evolution API
  2. Adicione documentos via endpoint /documents/upload
  3. Envie mensagens pelo WhatsApp e receba respostas contextualizadas
  4. Monitore logs através do dashboard da Evolution API

👥 Contribuição

Contribuições são muito bem-vindas! Para contribuir:

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/nova-feature)
  3. Commit suas mudanças (git commit -m 'Adiciona nova feature')
  4. Push para a branch (git push origin feature/nova-feature)
  5. Abra um Pull Request

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors