Descreve arquitetura e funcionalidades do chatbot Liz
This commit is contained in:
+45
@@ -160,6 +160,38 @@ Em conjunto, esses trabalhos mostram que há estudos sobre chatbots de saúde, r
|
||||
|
||||
Quanto ao ciclo de desenvolvimento, o presente estudo situa-se entre a validação do protótipo e a preparação de novas iterações, e não em uma avaliação de impacto ou de efetividade em larga escala. Os achados sobre facilidade de uso, utilidade, intenção de uso, fluxo e percepções lexicais podem retroalimentar o projeto ao orientar a revisão de mensagens, o tratamento de erros, a clareza das opções de agendamento e a priorização de funcionalidades antes de uma implantação mais ampla.
|
||||
|
||||
\section{Descrição do artefato}
|
||||
|
||||
O chatbot Liz foi desenvolvido como um protótipo de apoio à conscientização e à prevenção do câncer do colo do útero no contexto da rede pública de saúde de Nova Andradina. A proposta inicial, descrita por Picolo et al. \cite{Picolo2024ChatbotPrevencao}, foi elaborada a partir de levantamento bibliográfico, requisitos levantados com profissionais da Estratégia Saúde da Família, testes de tecnologias e prototipagem. A revisão bibliográfica específica do autor também identificou o uso de chatbots em ações de informação, prevenção e acompanhamento em saúde \cite{Picolo2022ChatbotSaude}.
|
||||
|
||||
\subsection{Arquitetura e tecnologias}
|
||||
|
||||
O código disponibilizado pelos autores organiza o sistema em uma aplicação principal Node.js/Express, uma camada de persistência com Sequelize e PostgreSQL e um serviço de integração com o WhatsApp. O projeto também utiliza AdminJS para administração, Redis e Node-Resque para enfileiramento assíncrono, RiveScript para a base de diálogos, `node-telegram-bot-api` para o Telegram e `node-schedule` para as tarefas programadas. A execução é preparada para Docker, com variáveis de ambiente para as credenciais e os serviços externos \cite{ProjetoChatbotSaude}.
|
||||
|
||||
Na integração com o WhatsApp, o serviço separado utiliza `whatsapp-web.js` com `LocalAuth` para manter a sessão autenticada. As mensagens recebidas são encaminhadas por um stream gRPC para o trabalhador do sistema principal; o trabalhador coloca o evento em uma fila Redis, processa a mensagem e devolve a resposta pelo mesmo serviço gRPC. Para o envio, o serviço normaliza o identificador do destinatário para o formato do WhatsApp e chama a API local do cliente conectado. O Telegram segue fluxo semelhante de recepção por webhook/polling e processamento pelo trabalhador.
|
||||
|
||||
Os dados de domínio são persistidos principalmente nas entidades `Paciente`, `Esf`, `Agendamento`, `Informacao`, `Avaliacao` e `Usuario`. O cadastro relaciona a paciente ao posto da ESF e ao identificador do canal de mensagens. Os agendamentos armazenam a data e o horário previstos, a data confirmada e o estado de processamento. O serviço de agendamento executa uma rotina periódica, consulta exames próximos e envia lembretes para os identificadores de WhatsApp e Telegram cadastrados.
|
||||
|
||||
\subsection{Abordagem conversacional}
|
||||
|
||||
Embora a introdução mencione Inteligência Artificial e \textit{Deep Learning}, a implementação disponibilizada para o protótipo Liz é predominantemente baseada em regras. A biblioteca RiveScript carrega arquivos `.rive` com tópicos, padrões de entrada, respostas, variáveis de contexto e chamadas para funções JavaScript. O processamento não corresponde ao treinamento de um modelo de aprendizado profundo: as mensagens são normalizadas, comparadas às regras e encaminhadas para funções de negócio que consultam ou alteram o banco de dados. Assim, a referência à IA deve ser entendida como enquadramento tecnológico do projeto, e não como evidência de que o protótipo avaliado empregou um modelo treinado de \textit{Deep Learning}.
|
||||
|
||||
Essa caracterização é importante para a reprodutibilidade: a base conversacional pode ser inspecionada nos tópicos de cadastro, boas-vindas, menus, informações, agendamento, finalização e avaliação, enquanto as operações de persistência ficam encapsuladas no modelo `ChatBot`. A revisão do autor descreve o uso de processamento de linguagem natural como possibilidade para chatbots, mas o artefato publicado utiliza principalmente seleção orientada por menus e números \cite{Picolo2022ChatbotSaude,Picolo2024ChatbotPrevencao}.
|
||||
|
||||
\subsection{Fluxos e funcionalidades}
|
||||
|
||||
O fluxo inicial verifica se o identificador do canal já está associado a uma paciente. Quando não está, o chatbot oferece o cadastro, que solicita nome, CPF, ESF e telefone, confirma cada dado e associa o registro ao WhatsApp ou Telegram. O CPF é validado antes da gravação e, quando já existe um cadastro, o identificador do novo canal pode ser associado ao registro encontrado.
|
||||
|
||||
Depois do cadastro, o menu principal oferece quatro caminhos: (1) agendar o exame preventivo; (2) consultar o exame marcado; (3) consultar informações sobre o câncer do colo do útero; e (4) finalizar o atendimento. O agendamento é conduzido por etapas: escolha do dia da semana, confirmação do dia, escolha do intervalo de horário e confirmação do pedido. A consulta recupera a data registrada; o módulo de informações lista temas mantidos no banco e apresenta o conteúdo selecionado; ao final, a paciente pode atribuir uma nota de 0 a 10 ao atendimento.
|
||||
|
||||
Os diagramas de fluxo utilizados no projeto descrevem a navegação por menus e confirmações. Neste artigo, o roteiro de uso apresentado na Figura \ref{fig:roteiro} sintetiza a sequência de cadastro, consulta, agendamento e acesso às informações. A implementação original também disponibiliza diagramas de casos de uso, classes, entidade-relacionamento e fluxo de diálogo no repositório do projeto \cite{ProjetoChatbotSaude}.
|
||||
|
||||
\subsection{Tratamento de falhas e entradas não reconhecidas}
|
||||
|
||||
O tratamento de falhas combina validações de entrada, confirmações intermediárias e respostas coringa. Nos tópicos RiveScript, entradas diferentes das opções esperadas acionam mensagens como ``não tenho resposta para essa opção'' e reapresentam o menu ou a etapa corrente. O cadastro verifica CPF e entradas numéricas; o fluxo de agendamento confirma dia e horário antes de salvar; e as chamadas de persistência retornam mensagens de erro quando o cadastro, o agendamento ou a avaliação não podem ser gravados.
|
||||
|
||||
Na camada de comunicação, o serviço do WhatsApp informa quando o cliente ainda não está pronto e expõe o estado da conexão por gRPC. A fila Redis desacopla a recepção do processamento e reduz o risco de bloquear o canal enquanto o sistema consulta o banco. Essas estratégias explicam por que termos como ``erro'' e ``problema'' podem aparecer nas percepções das participantes: eles podem se referir tanto a entradas fora do menu quanto a dificuldades de compreensão, persistência ou comunicação. Como o presente estudo não analisou logs, essa interpretação permanece contextual e não permite atribuir cada termo a uma falha técnica específica.
|
||||
|
||||
\section{Metodologia}
|
||||
|
||||
\subsection{Aspectos éticos}
|
||||
@@ -509,6 +541,19 @@ Em conformidade com o Art. 2º, inciso III, do Manual de Publicações da SBC, o
|
||||
v. 7, n. 1, maio 2024.
|
||||
Disponível em: \url{https://periodicos.ufms.br/index.php/EIGEDIN/article/view/20590}.
|
||||
|
||||
\bibitem{Picolo2022ChatbotSaude}
|
||||
PICOLO, Luiz Fernando; TOMBINI, Guilherme Ferreira; DOS SANTOS, Rafael de Andrade Albuquerque;
|
||||
DE AGUIAR, Gabriely Abreu; LEITE, Guilherme Fracalossi.
|
||||
Chatbot e a saúde: uma revisão bibliográfica sobre o uso de chatbots para o auxílio no tratamento do câncer do colo de útero.
|
||||
\textit{Encontro Internacional de Gestão, Desenvolvimento e Inovação (EIGEDIN)}, v. 6, n. 1, 2022.
|
||||
Disponível em: \url{https://trilhasdahistoria.ufms.br/index.php/EIGEDIN/article/view/16797}.
|
||||
|
||||
\bibitem{ProjetoChatbotSaude}
|
||||
PICOLO, Luiz Fernando et al.
|
||||
\textit{Projeto Fundect -- Pictec: projeto-chatbot-saude}.
|
||||
GitHub, 2022--2026.
|
||||
Disponível em: \url{https://github.com/luizpicolo/projeto-chatbot-saude}.
|
||||
|
||||
\bibitem{Preece2013}
|
||||
PREECE, Jennifer; ROGERS, Yvonne; SHARP, Helen.
|
||||
\textit{Design de interação: além da interação humano-computador}.
|
||||
|
||||
Reference in New Issue
Block a user