Histórico de revisão
Data | Versão | Alteração | Autor |
---|---|---|---|
10/08/2021 | 0.1 | Abertura do documento de Arquitetura | Victor Eduardo |
21/08/2021 | 0.2 | Definição de tecnologias, e diagrama arquitetural | Victor Eduardo, Matheus Raphael |
08/09/2021 | 0.3 | Correção de pequenos erros presentes no documento | Victor Eduardo |
11/09/2021 | 0.4 | Correção de pequenos erros presentes no documento | Victor Eduardo |
22/09/2021 | 0.5 | Correção do desenho arquitetural e adição do diagrama de casos de uso | Victor Eduardo |
1. Introdução
1.1 Finalidade
Este documento tem como finalidade apresentar a arquitetura do projeto ChatBot, de forma que fique de fácil entedimento a estrututra arquitetural do projeto, e sejam mostradas todas as decisões relacionadas a ela.
1.2 Escopo
Essa documentação engloba as funções visadas pelo projeto, além das tecnologias usadas, seu diagrama de relações e casos de uso. Engloba também algumas outras informações técnicas como características de desempenho e qualidade. O projeto vem sendo desenvolvido por alunos da UNB-FGA, na disciplina MDS.
1.3 Definições, acrônimos e abreviações
Abreviação | Significado |
---|---|
API | Application Programming Interface |
FGA | Faculdade do Gama |
MDS | Métodos de Desenvolvimento de Software |
NLU | Natural-language understanding |
UNB | Universidade de Brasília |
1.4 Referências
- Chat Bot. Disponível em https://github.com/fga-eps-mds/2021.1-AlligaBot. Acesso em 10/08/2021.
- Como documentar a Arquitetura de Software. Disponível em http://www.linhadecodigo.com.br/artigo/3343/como-documentar-a-arquitetura-de-software.aspx. Acesso em 10/08/2021.
- Documento de Arquitetua GloriaBot. Disponível em: https://github.com/fga-eps-mds/2019.2-GloriaBot/blob/master/docs/DocumentoDeArquitetura.md. Acesso em 10/08/2021.
- Documento de Arquitetura Tino. Disponível em: https://github.com/fga-eps-mds/2019.1-Tino/blob/master/docs/documento-de-arquitetura.md. Acesso em 10/08/2021.
- Documento de Arquitetura Vamos Cuidar. Disponível em: https://fga-eps-mds.github.io/2020.1-VC_Usuario/#/docs/Documento_de_Arquitetura. Acesso em 10/08/2021.
1.5 Visão Geral
Este documento está dividído em 6 grandes tópicos, com subdivisões, com o objetivo final de detalhar as características arquiteturais do projeto, bem como seus requisitos e motivações:
Tópico | Descrição | |
---|---|---|
1 | Introdução | Fornece ao leitor uma visão geral do conteúdo abordado no documento |
2 | Representação Arquitetural | Detalha a arquitetura utilizada no projeto e como ela está organizada |
3 | Metas e Restrições da Arquitetura | Descreve os objetivos do projeto, bem como suas restrições, do ponto de vista arquitetural |
4 | Visão dos Casos de Uso | Descreve as partes significativas do ponto de vista da arquitetura do modelo de casos de uso |
5 | Visão Lógica | Descreve as partes significativas do ponto de vista da arquitetura do modelo de design |
6 | Tamanho e Desempenho | Descreve as características de desempenho do Software, bem como as restrições estabelecidas e possíveis falhas |
2. Representação da Arquitetura
A representação arquitetural do ciclo de funcionamento está explicitada na imagem acima, e explicada por meio do passo a passo abaixo: 1 - O ciclo começa quando o usuário envia uma mensagem para o AlligaBot; 2 - Após isso a mensagem é repassada ao bot onde primeiro a mensagem passa pelo Rasa NLU que processa a mensagem; 3 - Depois, no Rasa Core, é feita a etapa de identificar a intenção do usuário; 4 - O Rasa escolherá a resposta mais adequada através do Rasa Actions; 5 - E por último retornará tal resposta ao usuário via Telegram;
Obs.: Por se tratar de um ChatBot, o projeto conta apenas com a parte de Back-end, realizada através do Rasa, uma vez que o Front-end seria exatamente a interface do app Telegram que é responsável pela interação com o usuário, ou seja receber a mensagem do usuário e passá-la ao bot, e de mostrar ao usuário o retorno dado pelo bot.
2.1 Tecnologias
2.1.1 Rasa
Para a construção do sistema usaremos o Rasa, um framework utilizado para construção de bot’s de conversação. A escolha dele foi feita por ser uma alternativa open source, robusta e de fácil uso para implementação, a escolha de seu uso foi feita pelos tecnologistas que o consideraram a melhor opção para o desenvolvimento do projeto. O framework conta com 3 principais componentes, o Rasa NLU que é responsável por processar a mensagem enviada pelo usuário, o Rasa Core que é responsável por identificar a intenção do usuário e o Rasa Actions, que dada a intenção do usuário, este escolhe a resposta mais adequada a se retornar ao usuário. O Rasa aprende de acordo com que for sendo treinado, através de seu machine learning, e através do NLU consegue-se fazer também um bot “mais humano”.
2.1.2 Telegram
O local o qual o usuário poderá interagir com o bot será no Telegram sendo ele um app de troca de mensagens. A implementação de bot’s à plataforma é gratuita e disponibilizada pelo próprio app.
2.1.3 Python
A linguagem de programação a ser utilizada no bot será o Python, já que o Rasa também a utiliza.
3. Metas e restrições de Arquitetura
3.1 Metas
O projeto aqui apresentado trata-se de um chatbot integrado a plataforma Telegram e tem como função informar ao usuário acerca dos conteúdos sobre a COVID-19 com informações fornecidas, dentre outros, pelo site Corona Cidades, sobre como prevenir o contágio, gestão pública, e informações relacionadas à vacinação na região do usuário.
3.2 Restrições
- Possuir conexão com a internet
- Dispositivo com acesso ao Telegram
- O sistema entenderá apenas mensagens em Português - BR
3.3 Requisitos não funcionais
- O sistema deve possuir integração com a plataforma Telegram
- O sistema deve conversar com o usuário em linguagem natural
- O sistema deve ser capaz de receber a localização do usuário, quando necessário
- O bot deve ser treinado a fim de conseguir atender ao máximo de usuários possíveis
4. Visão dos Casos de Uso
4.1 Diagrama de Casos de Uso
4.2 Atores de Casos de Uso
Ator | Descrição |
---|---|
Usuário | O usuário poderá interagir com o bot através do chat da plataforma Telegram, utilizando linguagem natural |
4.3 Descrições de Casos de Uso
Épico | Caso de uso | Descrição |
---|---|---|
E1 | Sobre o bot | Será uma epic para ser uma informação inicial, onde o usuário terá o primeiro contato com o bot e terá uma breve explicação sobre suas funcionalidades |
E2 | Informações sobre covid | Será uma epic para informar o usuário e tirar dúvidas gerais sobre a covid |
E3 | Lembrete programado | Será uma epic para criar lembretes programados |
Informações mais detalhadas dos épicos podem ser encontradas no documento de Backlog do Produto.
5. Visão Lógica
5.1 Diagrama de Pacotes
- O pacote 2021.1-AlligaBot é o pacote principal do projeto e contém todos os outros sub-pacotes
- No pacote bot é o local onde está sendo desenvolvido o bot
- No pacote docs pode ser encontrada toda a documentação relacionada ao projeto
- No pacote gerencia está todo o gerenciamento de sprints de cada time
6. Tamanho e desempenho
Este bot atuará primeiramente no Telegram, seu tamanho e desempenho serão comuns com aplicações semelhantes de ChatBots que utilizam a tecnologia Rasa. O desempenho poderá ser afetado devido a serviços externos, como consultas de dados sobre vacinações ou instabilidades de sistemas.