Skip to content

Repository files navigation

MarkAPI — SciELO Research Communication Tools (RCT)

Black code style

Repositório: scieloorg/markapi · Licença: GPLv3


Objetivo do projeto

Plataforma para produção, avaliação e rastreio de objetos de comunicação de pesquisa (manuscritos, preprints, artigos, dados, livros, capítulos), com XML SPS como registro único e rastreável.

ÁreaDescrição
MarcaçãoPipeline DOCX/LaTeX/ODT → XML SPS com LLM; revisão humana sempre possível
ValidaçãoSchemas, regras de negócio e packtools
AvaliaçãoChecklists (CONSORT, PRISMA, STROBE, ARRIVE) e critérios FAIR no XML
SaídasPacote SPS, PDF, HTML, XML Crossref/PubMed/PMC, JSON DOAJ
IntegraçãoAPI REST (JWT); Wagtail embutido; SciELO Core e publicação via Upload/OPAC

Stack: Python 3.12, Django 6, Wagtail 7.4, DRF, Celery, Redis, PostgreSQL, packtools.

Princípios: IA auxilia, humano revisa; integração aditiva a sistemas editoriais existentes; LLM preferencialmente on-premise.


Desenvolvimento

Pré-requisitos: Docker, Docker Compose, Make.

ServiçoURL local
Wagtail/Djangohttp://127.0.0.1:8009
MailHoghttp://127.0.0.1:8029
PostgreSQLlocalhost:5439
Redislocalhost:6399
make build
make up
make django_migrate
make django_createsuperuser
make help# todos os alvos Make

Compose: local.yml (dev). Ambiente em .envs/.local/. Volume Postgres: ../scms_data/markapi/data_dev.

Modelo LLM:wiki — baixar e configurar modelo


Testes

Settings: config.settings.test ·

make build
make up
make django_migrate
make django_test # manage.py test
make django_fast
make pytest
make pytest_fast
make pytest_cov
docker compose -f local.yml run --rm django python manage.py test --settings=config.settings.test
docker compose -f local.yml run --rm django pytest

CI: job tests em .github/workflows/ci.yml (manage.py test + pytest, sem ignorar falhas).


Configuração

Módulos Django

DJANGO_SETTINGS_MODULEUso
config.settings.localDesenvolvimento (defeito do manage.py)
config.settings.productionProdução
config.settings.testTestes (make django_test, pytest)

Ficheiros de ambiente

  • .envs/.local/.djangoUSE_DOCKER, REDIS_URL, HF_TOKEN, FETCH_DATA_TIMEOUT, Flower
  • .envs/.local/.postgresPOSTGRES_*
  • .envs/.production/.djangoDJANGO_SECRET_KEY, DJANGO_ALLOWED_HOSTS, SENTRY_DSN, …

No container, o entrypoint define DATABASE_URL e CELERY_BROKER_URL a partir de POSTGRES_* e REDIS_URL.

Variáveis principais

VariávelDescrição
DATABASE_URLPostgreSQL (montada no entrypoint)
POSTGRES_HOST / POSTGRES_PORT / POSTGRES_DBCredenciais e base
REDIS_URLRedis (ex.: redis://redis:6379/0)
CELERY_BROKER_URLBroker Celery (= REDIS_URL no entrypoint)
DJANGO_SECRET_KEYChave secreta (produção)
DJANGO_ALLOWED_HOSTSHosts permitidos
DJANGO_CSRF_TRUSTED_ORIGINSOrigens CSRF
LLAMA_ENABLEDAtivar LLM local (false em testes)
HF_TOKENToken Hugging Face (download do modelo)
CORE_API_DOMAINAPI SciELO Core (defeito https://core.scielo.org)
DRF_PAGE_SIZEPaginação da API REST
SENTRY_DSNMonitorização (produção)
COMPRESS_ENABLEDCompressor de estáticos (produção)

Requisitos Python

  • requirements/base.txt — runtime
  • requirements/local.txt — dev + pytest
  • requirements/production.txt — produção

Após alterar dependências: make build.


Outros

mypy core # verificação de tipos (não é suite de testes)

Celery: serviços celeryworker e celerybeat no local.yml.

Deploy: ver production.yml e documentação Docker do projeto.

Docs:docs/testing.md, docs/pr/

About

Essa aplicação (markapi) é uma plataforma para processar artigos científicos, principalmente no fluxo SciELO.

Topics

Resources

Stars

0 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages