Pular para o conteúdo

Quickstart

Este guia permite executar uma busca doutrinaria no corpus pre-construido do Douto em menos de 5 minutos. Para o setup completo do pipeline (incluindo extracao de PDF e enriquecimento), veja Instalacao.

  • Python 3.10 ou superior
  • pip
  • ~4 GB de RAM (para carregar embeddings em memoria)
  • Arquivos do corpus pre-construido (JSON) — disponiveis com o mantenedor do projeto
Terminal window
git clone https://github.com/sensdiego/douto.git
cd douto
pip install -r pipeline/requirements.txt

Aponte o Douto para o diretorio que contem os arquivos do corpus pre-construido:

Terminal window
export DATA_PATH="/caminho/para/seu/corpus/data"

Esse diretorio deve conter:

ArquivoDescricao
embeddings_doutrina.jsonVetores de embedding 768-dim para chunks de direito contratual
search_corpus_doutrina.jsonMetadados de cada chunk (titulo, autor, instituto, etc.)
bm25_index_doutrina.jsonDocumentos tokenizados para busca BM25 por palavras-chave
embeddings_processo_civil.jsonEmbeddings para chunks de processo civil
search_corpus_processo_civil.jsonMetadados para chunks de processo civil
bm25_index_processo_civil.jsonIndice BM25 para processo civil
Terminal window
# Buscar direito contratual por "exceptio non adimpleti contractus"
python3 pipeline/search_doutrina_v2.py "exceptio non adimpleti contractus" --area contratos
# Buscar processo civil por "tutela antecipada"
python3 pipeline/search_doutrina_v2.py "tutela antecipada requisitos" --area processo_civil
# Buscar em todas as areas
python3 pipeline/search_doutrina_v2.py "boa-fé objetiva" --area all --verbose
Terminal window
python3 pipeline/search_doutrina_v2.py --interativo

No modo interativo, voce tem um REPL com os seguintes comandos:

ComandoDescricao
/area contratos|processo_civil|allAlterna a area de busca
/filtro instituto=X tipo=Y fase=ZDefine filtros por metadados
/verboseAlterna a pre-visualizacao do texto dos chunks
/top NAltera o numero de resultados (padrao: 5)
/bm25Muda para busca somente por palavras-chave
/semMuda para busca somente semantica
/hybridMuda para busca hibrida (padrao)
/quitSair
Terminal window
# Buscar por um instituto juridico especifico
python3 pipeline/search_doutrina_v2.py "contrato bilateral" --instituto "exceptio" --area contratos
# Buscar somente definicoes
python3 pipeline/search_doutrina_v2.py "boa-fé objetiva" --tipo "definicao" --verbose

Um resultado tipico de busca tem esta aparencia:

1. [0.847] 📗 Da Exceção do Contrato Não Cumprido
📖 Contratos — Orlando Gomes (chunk 26/89) [contratos]
🏷️ exceptio non adimpleti contractus, contrato bilateral | definição, requisitos
ElementoSignificado
1.Posicao no ranking
[0.847]Score de relevancia (0-1, quanto maior melhor)
📗 / 📘Area: 📗 = contratos, 📘 = processo_civil
Primeira linhaTitulo do chunk (heading da secao no livro)
📖Titulo do livro, autor, posicao do chunk dentro do livro
🏷️Tags de instituto e tags de tipo de conteudo do enriquecimento

Com --verbose, o texto real do chunk (primeiros 300 caracteres) tambem e exibido.