Package: detect-hate-speech
Trabalho individual de GCES 2023-1 - Turma CarlaOs conhecimentos de Gestão de Configuração de Software são fundamentais no ciclo de vida de um produto de software. As técnicas para a gestão vão desde o controle de versão, automação de build e de configuração de ambiente, testes automatizados, isolamento do ambiente até o deploy do sistema. Todo este ciclo nos dias de hoje são integrados em um pipeline de DevOps com as etapas de Integração Contínua (CI) e Deploy Contínuo (CD) implementadas e automatizada.Para exercitar estes conhecimentos, neste trabalho, você deverá aplicar os conceitos estudados ao longo da disciplina no produto de software contido neste repositório.Resumo da aplicaçãoUma solução, que usa um modelo de classificação de texto (Text Classification Model), para indentificar discursos homofóbicos ou sexistas em tweets.As bases de dados de discurso de ódio que estão sendo usada são:https://github.com/ZeerakW/hatespeechhttps://data.world/thomasrdavidson/hate-speech-and-offensive-languageA ferramenta utilizada para subir a aplicação web é o Streamlit.Você podeacessar o ReadMedo repositorio original.Etapas do TrabalhoO trabalho deve ser elaborado através de etapas. Cada uma das etapas deve ser realizada em um commit separado com o resultado funcional desta etapa.As etapas de 1 a 3 são relacionadas ao isolamento do ambiente utilizando a ferramenta Docker e Docker Compose. Neste sentido o tutorial abaixo cobre os conceitos fundamentais para o uso destas tecnologias.Tutorial de DockerAs etapas de 4 e 5 são relacionadas à configuração do pipeline de CI e CD.Tutorial CI - GitlabContainerização do BancoNesta aplicação a conteinerização do banco não foi feita pois julguei que não era necessário, uma vez que o modelo já está treinado.Containerização da aplicaçãoNão utilizei um orquestrador (Docker Compose) para gerenciar comunicação entre os containers, pois apenas dockerizei a aplicação:Após o dockerfile ser criado, roda-se:docker build -t detect_hate_speech .Obs: O build está demorando um pouco pois o projeto roda em python 3.7, e os requirements são bastante específicos.Após ter buildado basta dar o comando run:docker run -p 8501:8501 detect_hate_speechE a aplicação irá rodar na porta 8501, dessa forma, acessando ohttp://localhost:8501/:Gestão de dependencias e pacotes pythonO arquivo de configuração dopoetryé o pyproject.toml:Que publica o pacote pipatravés de comandos que rodam na pipeline de CI.Documentação automatizadaA documentação gerada de forma automatizada com osphinxestá "rodando" nogitlab pages.Integração Contínua (CI)O GitLab-CI foi utilizado para garantir o build, os testes, deploy para ohttps://pypi.orge a geração da documentação.
Consiste em 4 stages: lint, tests, build-publish, pages.LintO linter utilizado foi oblack:TestsOpytestfoi utilizado para rodar os testes (não haviam testes no repo original, então criei um teste simples para adicionar a pipeline).Build-publishBuild-publish docker imageEssa etapa sobe a imagem do docker criada para odockerhub.Build-publish package pypiNesse stage ocorre o build e apublicação no pypido pacote gerado pelo poetry.Pages documentation - SphinxA ultima etapa consiste em utilizar osphinxpara gerar a documentação do projeto, e subi-la nogitlab pages.