Skip to content

Latest commit

 

History

History
138 lines (88 loc) · 4.45 KB

File metadata and controls

138 lines (88 loc) · 4.45 KB

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