🟢 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.
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.
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.
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
- 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.
As perguntas e respostas podem ser alteradas diretamente no dicionário utilizado pelo chatbot.
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
- 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.
O conjunto de dados de treinamento pode ser atualizado e o modelo pode ser ajustado de acordo com o problema abordado.
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
- 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.
| 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.
CHATBOT SYSTEM
│
┌────────────────┼────────────────┐
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌────────────┐
│ Chatbot 1 │ │ Chatbot 2 │ │ Chatbot 3 │
│ Fixed │ │ Local ML │ │ External │
│ Responses │ │ │ │ APIs │
└─────┬─────┘ └─────┬─────┘ └──────┬─────┘
│ │ │
▼ ▼ ▼
Dictionary ML Model OpenAI /
Dialogflow
Usuário
↓
Interface Web
↓
Flask
↓
Versão selecionada
├── Respostas predefinidas
├── Modelo local
└── API externa
↓
Processamento
↓
Resposta
↓
Interface
Chatbot/
│
├── chat1/
│ ├── chat1.py
│ └── templates/
│ └── index1.html
│
├── chat2/
│ ├── chat2.py
│ └── templates/
│ └── index2.html
│
├── chat3/
│ ├── chat3.py
│ └── templates/
│ └── index3.html
│
└── README.md
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.
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.
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.
| 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 |
Cada chatbot possui seu próprio diretório e implementação.
cd chat1
python chat1.pycd chat2
python chat2.pycd chat3
python chat3.pyA configuração específica de cada versão deve seguir os arquivos presentes em seu respectivo diretório.
Nenhuma integração externa é necessária.
As respostas podem ser personalizadas diretamente no código.
É necessário configurar o conjunto de dados utilizado pelo modelo local e os parâmetros de treinamento conforme a implementação existente.
É necessário configurar as credenciais das APIs utilizadas, como:
OpenAI
Dialogflow
Nunca publique chaves de API ou credenciais diretamente no repositório.
- 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.
Soluções em que existe um conjunto controlado de perguntas e respostas.
Aplicações que precisam de maior flexibilidade sem depender de APIs externas.
Sistemas que utilizam modelos externos para obter respostas mais flexíveis e naturais.
A arquitetura pode ser expandida para:
- Assistentes virtuais;
- Atendimento automatizado;
- FAQ inteligente;
- Agentes de IA;
- Automação de processos.
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.
- 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.
- 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.
🟢 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.
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.
Sugestões de melhorias, correções e novas ideias podem ser propostas por meio de:
- Issues;
- Pull Requests.
Yuri Fernando Dubbern
AI/ML Engineer · Generative AI · Machine Learning · Software Engineering · Intelligent Automation