Skip to content

AI-powered chatbot for digital marketing, using LangChain, Hugging Face fine-tuning (DistilGPT2), and RAG techniques with PDF, CSV, and TXT file support.

License

Notifications You must be signed in to change notification settings

abrahao-dev/abrahao-labs-chatbot

Repository files navigation

ChatBot da Abrahao Labs com Fine-Tuning e LangChain

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.

Status do Projeto e Requisitos Atendidos

Requisitos do Professor Implementados ✅

  • 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

Funcionalidades Adicionais Implementadas ✅

  • 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

Funcionalidades do ChatBot

  • 🤖 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

Tecnologias Utilizadas

  • 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

Estrutura do Projeto

│── 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

Configuração e Instalação

  1. Clone o repositório:
git clone https://github.com/abrahao-dev/abrahao-labs-chatbot

cd abrahao-labs-chatbot
  1. 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
  1. Instale as dependências:
python -m pip install --upgrade pip  # Atualiza pip
python -m pip install -r requirements.txt
  1. 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
  1. 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):

  • 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.

  1. Execute a aplicação:
python app.py
  1. 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

Personalização e Adaptação

  • 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 em static/ para personalizar a interface

Base de Conhecimento (RAG)

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.

Implementação do Fine-tuning

O projeto utiliza fine-tuning em um modelo base do Hugging Face (distilgpt2) para especialização em marketing digital:

  1. Preparação de Dados: Conversas de exemplo são organizadas em formato adequado
  2. Tokenização: Textos são convertidos em tokens para processamento pelo modelo
  3. Treinamento: O modelo é ajustado com configurações específicas para geração de texto
  4. Armazenamento Local: O modelo treinado é salvo localmente para uso offline
  5. 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.

Plano para Conclusão do Projeto

  1. 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

  2. Melhorar a Qualidade das Respostas - Aprimorar os parâmetros de geração de texto para evitar respostas incoerentes

  3. Ampliar os Testes - Realizar testes com diferentes cenários de conversa para garantir o funcionamento correto

  4. Documentar o Código - Adicionar docstrings completas e comentários explicativos em todo o código

  5. Preparar a Apresentação - Elaborar slides e demonstração prática do projeto

Requisitos de Hardware

  • 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

Troubleshooting

  • 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

Limitações Atuais

  • 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

Requisitos do Professor Atendidos

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

Autores

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

About

AI-powered chatbot for digital marketing, using LangChain, Hugging Face fine-tuning (DistilGPT2), and RAG techniques with PDF, CSV, and TXT file support.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published