Skip to main content

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:

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.

Tutorial de Docker

As etapas de 4 e 5 são relacionadas à configuração do pipeline de CI e CD.

Tutorial CI - Gitlab

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:

image

Após o dockerfile ser criado, roda-se:

docker build -t detect_hate_speech .

image

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

image

E a aplicação irá rodar na porta 8501, dessa forma, acessando o http://localhost:8501/ :

image image image

Gestão de dependencias e pacotes python

O arquivo de configuração do poetry é o pyproject.toml:

image

Que publica o pacote pip através de comandos que rodam na pipeline de CI.

image

Documentação automatizada

A documentação gerada de forma automatizada com o sphinx está "rodando" no gitlab pages.

image

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.

image

image image image

Lint

O linter utilizado foi o black:

image

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.

image

Build-publish package pypi

Nesse stage ocorre o build e a publicação no pypi do pacote gerado pelo poetry.

image

Pages documentation - Sphinx

A ultima etapa consiste em utilizar o sphinx para gerar a documentação do projeto, e subi-la no gitlab pages.

image

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

detect_hate_speech-0.1.8.tar.gz (5.5 kB view hashes)

Uploaded Source

Built Distribution

detect_hate_speech-0.1.8-py3-none-any.whl (6.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page