Este projeto implementa um ChatBot especializado em marketing digital para a Abrahao Labs, desenvolvido como trabalho para a disciplina de Inteligência Artificial. O sistema utiliza um modelo de linguagem (LLM) do Hugging Face com fine-tuning personalizado e integração com o framework LangChain para recuperação de informações contextuais (RAG) a partir de arquivos externos.
- ChatBot em Python: Aplicação completa desenvolvida em Python 3.9
- Fine-tuning com Hugging Face: Modelo distilgpt2 com ajuste fino para marketing digital
- Framework LangChain: Implementação de RAG (Retrieval Augmented Generation)
- Dados Específicos: Carregamento e processamento de arquivos PDF, CSV e TXT
- Objetivo Específico: Chatbot especializado em marketing digital para prospecção de leads
- Interface Web: Implementada com Flask, HTML, CSS e JavaScript
- Armazenamento vetorial com FAISS para busca semântica eficiente
- Sistema de sessões para gerenciar múltiplos usuários
- Manutenção de contexto de conversa
- Lógica de extração e qualificação de potenciais clientes
- Recomendação de planos com base no perfil do cliente
- Tratamento de erros e sistema de fallback
- 🤖 Atendimento Automatizado: Simula uma conversa natural sobre marketing digital
- 🔍 Busca Contextual: Utiliza RAG (Retrieval Augmented Generation) para consultar informações específicas nos documentos carregados
- 📚 Base de Conhecimento: Integra informações de múltiplos formatos (PDF, CSV e TXT)
- 📊 Análise de Mensagens: Identifica necessidades e interesses do usuário
- 💼 Apresentação de Serviços: Explica os serviços de marketing digital disponíveis
- 💰 Recomendação Personalizada: Sugere planos de marketing adequados ao perfil
- 🔄 Manutenção de Contexto: Lembra informações de mensagens anteriores
- Python 3.9: Linguagem de programação principal do projeto
- LangChain: Framework para construção de aplicações com LLMs e RAG
- Hugging Face: Plataforma para modelos de linguagem com fine-tuning
- Flask: Framework web para a interface do ChatBot
- FAISS: Biblioteca para armazenamento e busca vetorial eficiente
- Transformers: Biblioteca para processamento de linguagem natural
- Sentence-Transformers: Para geração de embeddings semânticos
- PyPDF2 e Pandas: Para processamento de arquivos PDF e CSV
│── app/
│ │── __init__.py
│ │── chatbot.py # Classe principal do ChatBot
│ │── conversation_manager.py # Gerenciamento de conversa e qualificação
│ │── data_loader.py # Carregamento de documentos (PDF, CSV, TXT)
│ │── prompt_manager.py # Templates de prompts para o LLM
│ │── vector_store.py # Armazenamento e busca vetorial com FAISS
│ └── fine_tuning.py # Módulo de fine-tuning do modelo LLM
│── data/
│ │── faq_agencia.csv # Perguntas frequentes sobre marketing digital
│ │── planos_precos.csv # Informações sobre planos e preços
│ │── script_qualificacao.txt # Roteiro para qualificação de leads
│ └── servicos_agencia.pdf # Descrição detalhada dos serviços
│── fine_tuned_model/ # Modelo com fine-tuning salvo localmente
│── vectorstore/ # Base de conhecimento vetorizada (FAISS)
│── templates/
│ └── index.html # Interface web do chat
│── static/
│ │── logo.png # Logo da Abrahao Labs
│ │── script.js # Lógica de interface em JavaScript
│ └── style.css # Estilos CSS da interface
│── app.py # Servidor web com Flask
│── run_fine_tuning.py # Script para executar o fine-tuning
│── .env # Variáveis de ambiente (API keys)
└── requirements.txt # Dependências do projeto
- Clone o repositório:
git clone https://github.com/abrahao-dev/abrahao-labs-chatbot
cd abrahao-labs-chatbot
- Crie e ative um ambiente virtual Python:
# Usando venv (recomendado)
python -m venv .venv
source .venv/bin/activate # No Windows: .venv\Scripts\activate
# Alternativamente, usando pyenv
pyenv install 3.9.13 # Instala Python 3.9.13
pyenv local 3.9.13 # Define versão local do projeto
python -m venv .venv
source .venv/bin/activate
- Instale as dependências:
python -m pip install --upgrade pip # Atualiza pip
python -m pip install -r requirements.txt
- Configure as variáveis de ambiente (opcional para modo offline):
Crie um arquivo .env
na raiz do projeto com o seguinte conteúdo:
HUGGINGFACE_API_KEY=sua_chave_api_do_hugging_face # Opcional, apenas se for usar a API
- IMPORTANTE: Obtenha os arquivos do modelo fine-tuned
Os arquivos do modelo fine-tuned não estão incluídos no repositório devido ao limite de tamanho do GitHub. Você tem duas opções:
-
Opção A: Baixe os arquivos do modelo pelo link compartilhado (recomendado):
- Baixe os arquivos de: Google Drive - Modelo Fine-tuned
- Extraia os arquivos e coloque-os na pasta com nome
fine_tuned_model/
dentro da raíz do projeto
-
Opção B: Execute o script de fine-tuning para gerar o modelo localmente:
python run_fine_tuning.py
⚠️ Observação: O fine-tuning pode levar várias horas dependendo do seu hardware.
- Execute a aplicação:
python app.py
- Acesse a interface web em: http://localhost:8080
Nota: Se a porta 8080 estiver em uso, você pode alterar a porta no arquivo
app.py
- Prompts: Personalize as instruções ao modelo em
app/prompt_manager.py
- Dados de Treinamento: Edite os arquivos em
data/
para adaptar a base de conhecimento - Fine-tuning: Execute
python run_fine_tuning.py
para retreinar o modelo com novos dados - Interface: Modifique
templates/index.html
e arquivos emstatic/
para personalizar a interface
O ChatBot implementa RAG (Retrieval Augmented Generation) utilizando os seguintes arquivos:
- servicos_agencia.pdf: Descrição dos serviços de marketing digital oferecidos
- faq_agencia.csv: Perguntas frequentes sobre marketing digital com respostas
- planos_precos.csv: Informações sobre planos, preços e benefícios
- script_qualificacao.txt: Roteiro usado para coletar informações sobre potenciais clientes
Esses documentos são processados, indexados e armazenados em um banco de dados vetorial (FAISS) que permite busca semântica eficiente para complementar as respostas do modelo de linguagem.
O projeto utiliza fine-tuning em um modelo base do Hugging Face (distilgpt2) para especialização em marketing digital:
- Preparação de Dados: Conversas de exemplo são organizadas em formato adequado
- Tokenização: Textos são convertidos em tokens para processamento pelo modelo
- Treinamento: O modelo é ajustado com configurações específicas para geração de texto
- Armazenamento Local: O modelo treinado é salvo localmente para uso offline
- Inferência: Respostas são geradas usando o modelo ajustado
Nota: O modelo fine-tuned está disponível para download no Google Drive fornecido nas instruções de instalação para facilitar a execução do projeto.
O fine-tuning permite que o modelo responda de forma mais precisa e especializada sobre marketing digital, atendendo ao requisito central do projeto.
-
Finalizar o Relatório Acadêmico - Completar o relatório seguindo o Manual para Normalização de Trabalhos Acadêmicos da USF com todos os itens exigidos
-
Melhorar a Qualidade das Respostas - Aprimorar os parâmetros de geração de texto para evitar respostas incoerentes
-
Ampliar os Testes - Realizar testes com diferentes cenários de conversa para garantir o funcionamento correto
-
Documentar o Código - Adicionar docstrings completas e comentários explicativos em todo o código
-
Preparar a Apresentação - Elaborar slides e demonstração prática do projeto
- Python 3.9 ou superior
- Mínimo de 4GB de RAM
- Pelo menos 1GB de espaço em disco livre
- Processador com pelo menos 2 núcleos
- Erro ao carregar o modelo: Verifique se os arquivos do modelo fine-tuned foram baixados corretamente
- Erro de dependências: Execute
pip install -r requirements.txt
novamente - Aplicação lenta: Reduza o número de documentos na base de conhecimento
- Porta em uso: Altere a porta no arquivo
app.py
se a 8080 estiver ocupada - Erros no console: Consulte os logs em
logs/app.log
para diagnósticos
- Processamento: O fine-tuning pode ser demorado em computadores sem GPU
- Qualidade das Respostas: O modelo fine-tuned local pode gerar respostas de qualidade inferior às vezes
- Processamento de Mensagens Curtas: Há dificuldade na extração de informações em mensagens muito curtas
- Estabilidade: A integração com o armazenamento vetorial precisa de ajustes em alguns casos
- Suscetibilidade a Erros: Podem ocorrer falhas ocasionais na inicialização do modelo
✅ ChatBot em Python: Aplicação totalmente desenvolvida em Python 3.9 ✅ Fine-tuning Hugging Face: Implementado com modelo distilgpt2 ✅ Framework LangChain: Utilizado para RAG e gerenciamento de conversa ✅ Dados Externos: Integração com arquivos PDF, CSV e TXT ✅ Objetivo Específico: Foco em marketing digital para a Abrahao Labs
Desenvolvido para a disciplina de Inteligência Artificial da Universidade São Francisco (USF).
- Matheus Abrahão Martins Alvares
- Cauê Becker Rossi
- Bruno Ricci Zanoni
- Giulio Passetti Figueiredo