Este projeto propõe o desenvolvimento de um chatbot inteligente voltado para dúvidas sobre processos e procedimentos, utilizando exclusivamente um banco de dados relacional (MySQL) como fonte principal de consulta, sem uso de bancos vetoriais como ChromaDB. O sistema será capaz de pesquisar documentos, apresentar respostas, registrar feedback dos usuários e, em caso de respostas insuficientes, recorrer à API do ChatGPT como fallback.
2. Objetivos
Automatizar o atendimento a dúvidas sobre processos e procedimentos documentados.
Permitir atualização automática diária do conhecimento do chatbot com novos documentos.
Garantir precisão e cobertura das respostas, recorrendo ao ChatGPT em caso de dúvidas não solucionadas localmente.
Permitir avaliação do usuário e contínua evolução do sistema.
3. Arquitetura e Frameworks Utilizados
3.1 Principais Frameworks e Bibliotecas
Python 3.9+: Linguagem principal do sistema.
MySQL: Banco relacional para armazenar documentos, textos extraídos, logs, feedback e metadados.
mysql-connector-python ou SQLAlchemy: Conexão e manipulação do MySQL em Python.
pdfminer.six: Extração de texto de PDFs.
python-docx: Extração de texto de arquivos Word.
OpenAI (API): Integração com ChatGPT para fallback.
Unstructured (opcional): Para leitura flexível de múltiplos formatos.
Streamlit ou Flask (opcional): Interface web para interação com usuário e avaliação de respostas.
Agendador de tarefas (cron, Task Scheduler): Para automação da ingestão e atualização diária de documentos.
4. Metodologias Utilizadas
Busca textual clássica (SQL): As perguntas dos usuários são tratadas como consultas de texto, usando buscas por palavra-chave (LIKE, FULLTEXT).
Fallback Inteligente: Caso nenhuma resposta relevante seja localizada no MySQL, a pergunta é repassada ao ChatGPT via API.
Ciclo de Aprendizagem Contínua: Feedback do usuário para identificar perguntas mal respondidas e melhorar a base.
Automação de atualização diária: Script agendado para processar novos documentos e atualizar o banco de dados.
5. Etapas do Projeto
5.1 Planejamento e Levantamento de Requisitos
Definição dos tipos de documentos a serem processados (PDF, DOCX, TXT).
Estruturação das pastas: /docs_novos/ para documentos a indexar, /docs_indexados/ para documentos já processados.
Estruturação do banco MySQL: tabelas para documentos, logs, feedback, usuários.
5.2 Ambiente e Infraestrutura
Instalação do Python e bibliotecas necessárias.
Instalação e configuração do MySQL Server.
Criação do banco de dados e tabelas.
5.3 Processamento e Indexação de Documentos
Extração de texto de PDFs e Word usando pdfminer.six e python-docx.
Inserção dos textos extraídos na tabela de documentos do MySQL, com campos como: ID, nome do arquivo, texto, data, usuário, etc.
5.4 Desenvolvimento do Chatbot
Recebimento da pergunta do usuário via interface CLI, Web ou API.
Consulta ao MySQL utilizando SQL FULLTEXT SEARCH (ou LIKE) para encontrar o(s) documento(s) mais relevante(s).
Exibição da resposta ao usuário.
Caso a resposta seja vazia ou não satisfatória, consulta à API do ChatGPT.
Registro da interação e da avaliação do usuário.
5.5 Automatização da Atualização Diária
Script automatizado, agendado, para processar novos documentos diariamente:
Extração do texto.
Inserção no banco de dados.
Movimentação dos arquivos para pasta de processados.
5.6 Interface com o Usuário e Feedback
(Opcional) Interface web para consulta e avaliação das respostas.
Registro do feedback do usuário em tabela específica para análise futura.
5.7 Testes e Validação
Testes unitários dos scripts de processamento.
Testes de busca e precisão de respostas.
Testes de fallback e integração com ChatGPT.
5.8 Documentação e Treinamento
Documentação detalhada do sistema, scripts e uso.
Treinamento dos usuários e administradores do sistema.
6. Considerações Técnicas
6.1 Limitações da Busca no MySQL
Busca por palavra-chave: O MySQL não realiza buscas semânticas, ou seja, depende da correspondência exata ou parcial das palavras da pergunta com o texto dos documentos.
Alternativa: É possível usar o recurso FULLTEXT do MySQL para buscas em campos grandes (LONGTEXT), mas não substitui a busca vetorial.
Melhoria futura: Caso necessário, pode-se integrar futuramente um banco vetorial para busca semântica avançada.
7. Estrutura Sugerida de Tabelas MySQL
sqlCopiarEditarCREATE TABLE documentos (
id INT AUTO_INCREMENT PRIMARY KEY,
nome_arquivo VARCHAR(255),
texto LONGTEXT,
data_upload DATETIME,
usuario VARCHAR(100)
);
CREATE TABLE interacoes (
id INT AUTO_INCREMENT PRIMARY KEY,
id_documento INT,
pergunta TEXT,
resposta TEXT,
foi_fallback BOOLEAN,
data DATETIME,
FOREIGN KEY (id_documento) REFERENCES documentos(id)
);
CREATE TABLE feedback (
id INT AUTO_INCREMENT PRIMARY KEY,
id_interacao INT,
avaliacao ENUM('boa','ruim'),
comentario TEXT,
data DATETIME,
FOREIGN KEY (id_interacao) REFERENCES interacoes(id)
);
8. Resumo dos Frameworks e Bibliotecas
Framework/Biblioteca
Função
Python 3.9+
Linguagem principal
MySQL
Banco relacional, principal repositório
mysql-connector-python
Conexão Python-MySQL
pdfminer.six
Ler PDF
python-docx
Ler Word
OpenAI (API)
ChatGPT (fallback)
Unstructured
Ler múltiplos formatos (opcional)
Streamlit/Flask (opcional)
Interface web
9. Metodologias
Busca textual clássica (FULLTEXT/LIKE)
Fallback Inteligente
Aprendizagem Contínua (feedback)
Automação de ingestão de dados
10. Considerações Finais
O projeto propõe uma solução prática, fácil de gerenciar e com requisitos tecnológicos acessíveis, usando o MySQL como núcleo do sistema. Garante automatização da base de conhecimento, integração com IA de ponta (ChatGPT), avaliação do usuário e flexibilidade para futuras expansões.
Agora é possível imprimir Chave PIX no programa Etiqueta.
O Software Etiqueta permite gerar chave PIX para ser impresso.
Esta novidade permitirá aos pequenos empreendedores maior facilidade em suas vendas.
Para isso é necessário ter a versão 1.9 ou superior.
Selecionando a aba PRINTER, e em seguida clicar na imagem do PIX.
O programa vem com meu PIX, caso queira fazer uma doação. Porem para mudar, basta digitar o String do PIX no campo String BARCODE, colando lá.
Após isso, o QRCODE será modificado, permitindo que você imprima sua chave PIX.
Atenção: Tenha certeza de ter mudado a chave, pois caso contrário será criado erroneamente uma chave pix para minha conta. E doações não serão devolvidas.
O Sistema não salva a chave, toda vez que for gerar, será necessário modificar a mesma.
Reconhecimento de voz usando o srvOuve, permite ouvir o que se diz.
O srvOuve, é um projeto de minha autoria, que permite criar aplicação de Voz para Texto. Neste projeto, iremos utilizar várias abordagens diferentes, para criar uma aplicação para atender essa finalidade.
Neste primeiro projeto finalizado, criamos um serviço de voz para texto que precisa ser online.
O projeto srvOuve, permite utilizar diversos serviços diferentes, ouvindo tanto online como offline, unificando assim a forma de obter esses serviços em um único canal.
Permitindo criar integrações mais ageis.
No exemplo do vídeo usamos o MNote como ferramenta de integração. Onde ele recebe o texto “escutado” pelo srvOuve e repassa ao CHATGPT, permitindo assim que esse responda, e depois convertendo em texto de voz, através do srvFalar, outro projeto de minha autoria.