Uma ferramenta em Python para conduzir revisões sistemáticas de literatura científica seguindo o protocolo PRISMA, integrando busca automatizada, triagem semântica e análise com modelos de linguagem.
- Busca de artigos em múltiplas fontes (padrão: arXiv, Crossref, OpenAlex; suportadas PLOS, PubMed, Scopus, SpringerNature, Scholar e IEEE).
- Triagem semântica com pré-filtragem baseada em embeddings (
--incl-key,--excl-key, thresholds) e fallback sem chave de API. - Revisão e resumo de artigos com LLM (fallback sem chave de API).
- Download automático de PDFs e extração de texto completo (PDF, XML/JATS).
- Orquestração de pipeline completa (
search,triage,review,fetch-fulltexte geração de fluxograma PRISMA) via CrewAI ou CLI. - Configuração automática de diretórios (dados, cache, logs, relatórios) e logging com Loguru.
- Cache HTTP opcional com
requests-cachepara acelerar requisições.
- Python ≥ 3.8
- Git
- (opcional) uv (gerenciador de ambientes e pacotes)
- (opcional)
dotdo Graphviz (para geração de fluxogramas PRISMA)
# Instalar uv
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS/Linux
# ou via pip
echo pip install uv | bash
# Clonar o repositório e entrar na pasta
git clone git@bitbucket.org:certi_repos/bibreview.git
cd bibreview
# Criar e ativar ambiente virtual
uv venv
source .venv/bin/activate
# Instalar dependências
uv pip install -r requirements.txt
uv pip install -e .- Copie
.env.examplepara.env. - Preencha as chaves de API em
.env.
Execute a ferramenta pelo comando revsys seguido de subcomandos e opções:
Busca artigos e exporta metadados para CSV.
revsys search \
--query "machine learning" \
--sources crossref,openalex \
--from-date 2022-01-01 \
--to-date 2023-01-01 \
--max-records 100 \
--output resultados.csv- Obs 1 . Para buscar com três fontes ou mais, utilize o -s antes de cada fonte. Ex. -s crossref -s arvix -s openalex
- Obs 2 . Existem limites para busca nas APIs de bases fechadas.
- Obs 3 . A busca no scholar possui alguns bugs de proxy. Sugirimos utilizar outros métodos por enquanto.
Triagem assistida por IA dos artigos encontrados.
revsys triage \
--query "machine learning" \
--input resultados.csv \
--output triaged.csvRevisão e resumo com LLM dos artigos triados.
revsys review \
--input triaged.csv \
--output review.csvDownload automático de PDFs.
revsys download-pdfs \
--input triaged.csv \
--failure-output failed_downloads.csv \
--output-dir pdfs/Extrai texto completo de PDFs/XML para RAG.
revsys fetch-fulltext \
--input triaged.csv \
--output-dir fulltexts/ \
--output triaged_fulltext.jsonGera fluxograma visual PRISMA.
revsys prisma-diagram \
--identified 200 \
--pretriage 150 \
--triaged 100 \
--fulltext 80 \
--output prisma_flowchart.png- Definir diretrizes (pergunta de pesquisa, critérios de inclusão/exclusão, query) usando notebook de apoio.
- Buscar metadados em várias bases.
- Pré-triagem semântica (TF-IDF, embeddings).
- Triagem com LLM (GPT-4o ou fallback).
- Download e extração de full-text (PDF/XML).
- Revisão com RAG e geração de seções estruturadas.
- Gerar relatório e fluxograma PRISMA.
Após a instalação, utilize o comando revsys:
revsys search \
--query '"lung" AND ("segmentation" OR "deep learning" OR "machine learning")' \
--sources crossref \
--from-date 2022-01-01 \
--to-date 2023-01-01 \
--max-records 50 \
--output resultados.csvOpções principais:
--query(obrigatório): termo de busca de documentos cientificos. ----sources: fontes a consultar. Valores possíveis:arxiv,crossref,openalex,plos,pubmed,scopus,springernature,scholar,ieee. Padrão:arxiv,crossref,openalex.--from-date/--to-date: filtros de data (YYYY-MM-DD) para APIs que suportam.--max-records: máximo de registros por fonte.--output: caminho do CSV de saída.
Triagem assistida por IA dos artigos pesquisados.
revsys triage \
--query '"lung" AND ("segmentation" OR "deep learning" OR "machine learning")' \
--input resultados.csv \
--output triaged.csvOpções:
--query,-q: pergunta de pesquisa.--input,-i: CSV de input (search).--output,-o: CSV de output (triaged).
Revisão e resumo assistido por LLM dos artigos triados.
revsys review \
--input triaged.csv \
--output review.csvOpções:
--input,-i: CSV de input (triaged).--output,-o: CSV ou TXT de output (resumos).
Download automático de PDFs dos artigos listados.
revsys download-pdfs \
--input triaged.csv \
--output-dir pdfs/Opções:
--input,-i: CSV de input com colunaDownload URL.--output-dir,-d: diretório para salvar PDFs.
Download de PDFs/XML e extração de texto completo.
revsys fetch-fulltext \
--input triaged.csv \
--output-dir fulltexts/ \
--output triaged_fulltext.jsonOpções:
--input,-i: CSV de input com colunasDOIouDownload URL.--output-dir,-d: diretório para salvar PDFs/XML e texto extraído.--output,-o: arquivo JSON de saída com conteúdo completo.
Orquestra pipeline completo:
- define diretrizes (pergunta, critérios e query)
- busca refinada via
search_query - triagem assistida por IA
- revisão de abstracts e full-text (RAG)
- sugestão de tópicos e escrita das seções
- polimento final do texto
Se
--sourcesfor omitido, utiliza as fontes padrão:arxiv,crossref,openalex.
revsys run \
--query '"lung" AND ("segmentation" OR "deep learning" OR "machine learning")' \
--sources openalex \
--max-records 50 \
--output resultados.csvDefine diretrizes de revisão via LLM:
revsys define-directives \
--topic "Lung segmentation methods using deep learning" \
--output directives.jsonGera relatório PRISMA textual:
revsys prisma-report \
--identified 200 \
--pretriage 150 \
--triaged 100 \
--fulltext 80 \
--output prisma_report.txtGera fluxograma PRISMA visual (pré-requisito: ponto de entrada dot do Graphviz instalado no sistema):
revsys prisma-diagram \
--identified 200 \
--pretriage 150 \
--triaged 100 \
--fulltext 80 \
--output prisma_flowchart.png(ROADMAP)
**!! Em desenvolvimento !! ** #BUG MKDocs implementado, mas não lista as funções!
Toda a documentação do RevSys está disponível em formato estático via MkDocs.
Para pré-visualizar localmente:
mkdocs serveObservação: este projeto usa o tema Material para MkDocs. Se você receber o erro "Unrecognised theme name: 'material'", instale o pacote correspondente:
pip install mkdocs-materialPara construir o site estático:
mkdocs build**!! Em desenvolvimento !! ** #TODO: RASCUNHO NÃO TESTADO
Você pode rodar o sistema completo via Docker e Docker Compose:
- Construa a imagem:
docker build -t revsys . - Suba os serviços (Redis, CLI e Orchestrator):
docker-compose up -d
- Verifique os logs:
docker-compose logs -f revsys-cli docker-compose logs -f revsys-orch
Para parar e remover containers:
docker-compose down**!! Em desenvolvimento !! ** #TODO: RASCUNHO NÃO TESTADO
Este projeto utiliza Bitbucket Pipelines para CI. O arquivo bitbucket-pipelines.yml na raiz define o pipeline que:
- Instala/completa as dependências via pip
- Instala o pacote em modo editável (
pip install -e .) - Executa os testes com pytest
O pipeline é executado em pushes para main e feature/*, e em pull requests.
O step de instalação inclui a instalação do binário graphviz para suportar a geração dos diagramas PRISMA.
- #TODO: Integração com ferramentas de gerenciamento de referências (EndNote, Zotero).
- #TODO: Suporte a LLMs locais (por exemplo, Gemma ou LLAMA).
- #TODO: API web ou interface gráfica.
- #TODO: Documentação de API e exemplos de notebook mais detalhados.
