No project description provided
Project description
Trabalho individual de GCES 2023-1 - Turma Carla
Os 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ção
Uma 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/hatespeech
- https://data.world/thomasrdavidson/hate-speech-and-offensive-language
A ferramenta utilizada para subir a aplicação web é o Streamlit.
Você pode acessar o ReadMe do repositorio original.
Etapas do Trabalho
O 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.
As etapas de 4 e 5 são relacionadas à configuração do pipeline de CI e CD.
Containerização do Banco
Nesta 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ção
Nã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_speech
E a aplicação irá rodar na porta 8501, dessa forma, acessando o http://localhost:8501/ :
Gestão de dependencias e pacotes python
O arquivo de configuração do poetry é o pyproject.toml:
Que publica o pacote pip através de comandos que rodam na pipeline de CI.
Documentação automatizada
A documentação gerada de forma automatizada com o sphinx está "rodando" no gitlab pages.
Integração Contínua (CI)
O GitLab-CI foi utilizado para garantir o build, os testes, deploy para o https://pypi.org e a geração da documentação. Consiste em 4 stages: lint, tests, build-publish, pages.
Lint
O linter utilizado foi o black:
Tests
O pytest foi utilizado para rodar os testes (não haviam testes no repo original, então criei um teste simples para adicionar a pipeline).
Build-publish
Build-publish docker image
Essa etapa sobe a imagem do docker criada para o dockerhub.
Build-publish package pypi
Nesse stage ocorre o build e a publicação no pypi do pacote gerado pelo poetry.
Pages documentation - Sphinx
A ultima etapa consiste em utilizar o sphinx para gerar a documentação do projeto, e subi-la no gitlab pages.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for detect_hate_speech-0.1.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11e63440c1ee0e545c12973d9d17fe8550b532849295d1436cf54f53fb0e2ded |
|
MD5 | e251407f40580b89f8d68b152a107691 |
|
BLAKE2b-256 | 64c4fd828fc572b4eaf34089854e0eb01b4bf8869a2455dde13062cf4393dd06 |