Skip to content

Repository files navigation

Chatbot

Chatbot · Flask · Machine Learning · OpenAI · Dialogflow · Engenharia de Software

Status

🟢 Concluído — Projeto de portfólio / Engenharia de Software e IA

Projeto desenvolvido como TCC da Pós-Graduação em Engenharia de Software pela FAMEESP, estruturado em três versões de um chatbot com diferentes níveis de complexidade.

A evolução do projeto demonstra a passagem de uma abordagem baseada em respostas predefinidas, para aprendizado de máquina local e, posteriormente, para integração com APIs externas de Inteligência Artificial.

O objetivo é demonstrar, de forma prática, diferentes arquiteturas de construção de chatbots e os trade-offs entre simplicidade, processamento local e utilização de modelos externos.


Sobre o Projeto

O repositório organiza três implementações independentes:

Chatbot 1
Respostas Predefinidas
        ↓
Chatbot 2
Aprendizado de Máquina Local
        ↓
Chatbot 3
Integração com APIs Externas

Cada versão representa um nível diferente de complexidade e capacidade de resposta.


Objetivo

Demonstrar diferentes estratégias para desenvolvimento de chatbots:

  • Respostas determinísticas;
  • Aprendizado de máquina local;
  • Integração com APIs externas;
  • Aplicação de Flask;
  • Processamento de perguntas;
  • Evolução arquitetural de sistemas conversacionais.

O projeto também permite comparar diferentes abordagens em relação a:

  • Complexidade;
  • Flexibilidade;
  • Dependência externa;
  • Capacidade de resposta;
  • Necessidade de treinamento;
  • Recursos computacionais.

Chatbot 1 — Respostas Predefinidas

A primeira versão utiliza uma abordagem determinística.

As perguntas e respostas são armazenadas em um dicionário no código.

Usuário
   ↓
Pergunta
   ↓
Flask
   ↓
Dicionário de respostas
   ↓
Resposta predefinida

Características

  • Não exige treinamento;
  • Não utiliza modelos complexos de IA;
  • Possui comportamento previsível;
  • Indicado para conjuntos limitados de perguntas;
  • Fácil personalização.

Personalização

As perguntas e respostas podem ser alteradas diretamente no dicionário utilizado pelo chatbot.


Chatbot 2 — Aprendizado de Máquina Local

A segunda versão adiciona uma camada de Machine Learning.

O chatbot utiliza um modelo treinado localmente a partir de um conjunto de dados.

Dataset
   ↓
Treinamento
   ↓
Modelo ML
   ↓
Pergunta do usuário
   ↓
Predição
   ↓
Resposta

Características

  • Treinamento local;
  • Maior flexibilidade em relação à primeira versão;
  • Possibilidade de adaptação a novos exemplos;
  • Não depende de APIs externas para a inferência.

Personalização

O conjunto de dados de treinamento pode ser atualizado e o modelo pode ser ajustado de acordo com o problema abordado.


Chatbot 3 — Integração com APIs Externas

A terceira versão utiliza serviços externos de Inteligência Artificial.

Entre as integrações previstas no projeto estão:

  • OpenAI GPT;
  • Google Dialogflow.

Fluxo:

Usuário
   ↓
Flask
   ↓
API Externa
   ↓
Modelo de IA
   ↓
Resposta
   ↓
Usuário

Características

  • Não exige treinamento local;
  • Utiliza modelos externos;
  • Maior capacidade de geração de respostas;
  • Permite explorar modelos mais avançados;
  • Depende das APIs configuradas.

Comparação das Versões

Versão Abordagem Treinamento Local API Externa Complexidade
Chatbot 1 Respostas predefinidas Não Não Baixa
Chatbot 2 Machine Learning local Sim Não Média
Chatbot 3 APIs de IA Não Sim Alta

A evolução demonstra diferentes estratégias de implementação e os trade-offs entre controle local, flexibilidade e capacidade de resposta.


Arquitetura

                         CHATBOT SYSTEM
                               │
              ┌────────────────┼────────────────┐
              ▼                ▼                ▼
        ┌───────────┐    ┌───────────┐    ┌────────────┐
        │ Chatbot 1 │    │ Chatbot 2 │    │ Chatbot 3  │
        │   Fixed   │    │ Local ML  │    │ External   │
        │ Responses │    │           │    │    APIs    │
        └─────┬─────┘    └─────┬─────┘    └──────┬─────┘
              │                │                  │
              ▼                ▼                  ▼
        Dictionary           ML Model       OpenAI /
                                             Dialogflow

Fluxo Geral

Usuário
   ↓
Interface Web
   ↓
Flask
   ↓
Versão selecionada
   ├── Respostas predefinidas
   ├── Modelo local
   └── API externa
   ↓
Processamento
   ↓
Resposta
   ↓
Interface

Estrutura do Projeto

Chatbot/
│
├── chat1/
│   ├── chat1.py
│   └── templates/
│       └── index1.html
│
├── chat2/
│   ├── chat2.py
│   └── templates/
│       └── index2.html
│
├── chat3/
│   ├── chat3.py
│   └── templates/
│       └── index3.html
│
└── README.md

Chatbot 1

Arquivo principal:

chat1/chat1.py

Interface:

chat1/templates/index1.html

Responsabilidades:

  • Receber perguntas;
  • Consultar o conjunto de respostas;
  • Retornar a resposta correspondente;
  • Exibir a interação pela interface web.

Chatbot 2

Arquivo principal:

chat2/chat2.py

Interface:

chat2/templates/index2.html

Responsabilidades:

  • Carregar dados de treinamento;
  • Utilizar modelo local;
  • Processar a pergunta;
  • Gerar a resposta correspondente.

Chatbot 3

Arquivo principal:

chat3/chat3.py

Interface:

chat3/templates/index3.html

Responsabilidades:

  • Receber a pergunta;
  • Encaminhar para a API configurada;
  • Processar a resposta;
  • Retornar o resultado ao usuário.

Tecnologias

Categoria Tecnologias
Linguagem Python
Web Framework Flask
Machine Learning Modelo local de ML
IA Generativa OpenAI GPT
Conversational AI Google Dialogflow
Interface HTML
Arquitetura Aplicações independentes por versão

Como Executar

Cada chatbot possui seu próprio diretório e implementação.

Chatbot 1

cd chat1
python chat1.py

Chatbot 2

cd chat2
python chat2.py

Chatbot 3

cd chat3
python chat3.py

A configuração específica de cada versão deve seguir os arquivos presentes em seu respectivo diretório.


Configuração

Chatbot 1

Nenhuma integração externa é necessária.

As respostas podem ser personalizadas diretamente no código.

Chatbot 2

É necessário configurar o conjunto de dados utilizado pelo modelo local e os parâmetros de treinamento conforme a implementação existente.

Chatbot 3

É necessário configurar as credenciais das APIs utilizadas, como:

OpenAI
Dialogflow

Nunca publique chaves de API ou credenciais diretamente no repositório.


O que este projeto demonstra

  • Desenvolvimento de chatbots;
  • Python;
  • Flask;
  • Aplicações web;
  • Machine Learning;
  • Integração com APIs de IA;
  • OpenAI;
  • Dialogflow;
  • Comparação entre modelos locais e externos;
  • Evolução arquitetural;
  • Separação entre interface e lógica;
  • Experimentação com IA aplicada;
  • Engenharia de Software aplicada a sistemas conversacionais.

Casos de Uso

Chatbots Determinísticos

Soluções em que existe um conjunto controlado de perguntas e respostas.

Chatbots com Machine Learning

Aplicações que precisam de maior flexibilidade sem depender de APIs externas.

Chatbots com LLMs

Sistemas que utilizam modelos externos para obter respostas mais flexíveis e naturais.

Base para Sistemas Conversacionais

A arquitetura pode ser expandida para:

  • Assistentes virtuais;
  • Atendimento automatizado;
  • FAQ inteligente;
  • Agentes de IA;
  • Automação de processos.

Aprendizados Arquiteturais

A principal característica do projeto é demonstrar a evolução de complexidade:

Respostas Determinísticas
        ↓
Machine Learning Local
        ↓
Modelos Externos de IA

Essa evolução evidencia diferentes decisões de engenharia relacionadas a:

  • Complexidade de implementação;
  • Necessidade de treinamento;
  • Dependência de infraestrutura externa;
  • Flexibilidade;
  • Capacidade computacional;
  • Manutenção.

Limitações

  • Cada versão possui capacidades e limitações próprias;
  • O chatbot baseado em respostas predefinidas depende do conjunto cadastrado;
  • O modelo local depende da qualidade dos dados de treinamento;
  • APIs externas dependem de disponibilidade, configuração e credenciais;
  • O projeto representa uma implementação acadêmica e de portfólio;
  • Não representa uma plataforma conversacional comercial completa.

Melhorias Futuras

  • Interface unificada para as três versões;
  • Memória conversacional;
  • RAG;
  • Integração com bancos de dados;
  • Avaliação automática das respostas;
  • Histórico de conversas;
  • Multi-agent architecture;
  • APIs próprias;
  • Observabilidade;
  • Integração com novos LLMs;
  • Containerização;
  • Deploy em cloud;
  • Comparação quantitativa entre as abordagens;
  • Dashboard de métricas.

Status Final

🟢 Concluído

O projeto possui as três abordagens implementadas e organizadas:

  • ✅ Chatbot com respostas predefinidas;
  • ✅ Chatbot com Machine Learning local;
  • ✅ Chatbot com integração com APIs externas;
  • ✅ Aplicações Flask;
  • ✅ Interfaces HTML;
  • ✅ Estrutura separada por versão;
  • ✅ Experimentação com diferentes níveis de complexidade;
  • ✅ Documentação das abordagens.

O projeto permanece como uma demonstração prática da evolução de sistemas conversacionais, desde arquiteturas determinísticas até integrações com modelos de Inteligência Artificial externos.


Contexto Acadêmico

TCC — Pós-Graduação em Engenharia de Software — FAMEESP

O projeto foi desenvolvido no contexto acadêmico para demonstrar diferentes estratégias de implementação de chatbots e sua evolução arquitetural.


Contribuições

Sugestões de melhorias, correções e novas ideias podem ser propostas por meio de:

  • Issues;
  • Pull Requests.

Autor

Yuri Fernando Dubbern

AI/ML Engineer · Generative AI · Machine Learning · Software Engineering · Intelligent Automation

LinkedIn · GitHub · Lattes · Linktree

About

Três implementações evolutivas de chatbot (respostas predefinidas, ML local e API de IA) — TCC de Pós-Graduação em Engenharia de Software (FAMEESP).

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages