Ingestão de URL / Legislação
Cole o link de uma lei ou de um corpus de jurisprudência e o DATTA traz os artigos, as decisões relacionadas e a busca semântica prontos — sem baixar um único arquivo. Copiar um código artigo por artigo para dentro de um sistema é trabalho de dias, e ele ainda chega desatualizado. A aba URL da página de Upload faz isso em segundo plano, com barra de progresso real: você informa o endereço, escolhe o contexto de destino e pode sair da tela sem interromper a carga.
O que a ingestão de URL faz
A aba aceita um endereço web e decide sozinha como processá-lo. Quando o conteúdo é legislação (por exemplo, uma lei do Planalto ou uma página do corpus927 da ENFAM), a plataforma:
- separa o texto em artigos individuais;
- enriquece cada artigo com a jurisprudência relacionada (decisões dos tribunais) extraída do corpus927;
- grava os artigos e as decisões no grafo do contexto, com os relacionamentos apropriados;
- indexa o texto completo e os vetores semânticos no índice de busca do contexto, para que tudo apareça na Busca;
- identifica as entidades de cada artigo com o modelo configurado para o contexto.
O resultado: a legislação carregada passa a ser pesquisável tanto por palavra literal quanto por significado, com as decisões judiciais já ligadas a cada artigo.
A mesma aba também sabe lidar com outros tipos de URL (páginas HTML comuns, arquivos CSV/ZIP para download, pastas de arquivos, dados de CNPJ da Receita Federal). Este guia foca no fluxo de legislação, que é o mais rico. Os demais tipos são detectados automaticamente e processados por caminhos próprios — você não precisa escolher o tipo.
Antes de começar
| Pré-requisito | Por quê |
|---|---|
| Estar autenticado na plataforma | A ingestão exige sessão válida; se ela expirar, a interface avisa em português e pede para entrar novamente. |
| Um contexto (domínio) selecionado | O contexto define em qual base do grafo e em qual índice de busca os dados entram, e qual modelo de vetores/entidades será usado. Sem contexto ativo, o campo de URL e o botão Carregar URL ficam desabilitados. |
Permissão de envio de documentos (DOCUMENT_UPLOAD) | Sem ela a operação é negada, com mensagem amigável em português. |
Passo a passo
1. Abrir a página de Upload
Vá em . A trilha de navegação no topo confirma onde você está: DATTA › Processar › Upload.
2. Escolher o contexto de destino
No bloco Contexto de Destino, selecione o contexto onde a legislação deve ser gravada. O contexto ativo fica destacado logo abaixo ("Contexto ativo: ..."). Sem contexto selecionado não é possível prosseguir.
3. Selecionar a aba URL
Logo abaixo do seletor de contexto há três abas: PDF, URL e Texto. Clique em URL.
4. Colar o link
No campo Upload de URL Web, cole o endereço. Exemplos típicos:
- Lei do Planalto — ex.: o Código de Processo Civil (
https://www.planalto.gov.br/.../l13105.htm). - Página do corpus927 (ENFAM) — para legislação já acompanhada de jurisprudência.
- Outras páginas de normas (ex.: Instruções Normativas do DOU,
https://www.in.gov.br/...).
O campo aceita pressionar Enter para enviar.
5. (Opcional) Filtrar artigos
O campo Filtro de artigos permite carregar apenas um subconjunto — útil para um teste rápido antes de processar uma lei inteira:
| Filtro | Significado |
|---|---|
966 | apenas o Art. 966 |
966-970 | os artigos 966 a 970 (intervalo) |
966,967,970 | uma lista específica |
Deixe o campo vazio para carregar todos os artigos.
6. (Opcional) Atualizar toda a base
Em contextos de natureza jurídica aparece a opção Atualizar toda a base. Marcada, ela remove os artigos, parágrafos, incisos e alíneas existentes do contexto e reinsere tudo a partir da nova ingestão (os vetores semânticos precisam ser regerados depois). Use com cautela — a interface mostra um aviso em vermelho antes de confirmar.
7. Iniciar
Clique em Carregar URL. A ingestão começa em segundo plano e a barra de progresso aparece imediatamente; o botão passa a exibir "Iniciando..." enquanto a tarefa é criada.
O que acontece depois que você clica
A plataforma cria a tarefa, devolve na hora um identificador de tarefa (taskId) e segue processando de forma desacoplada — a interface não fica "presa" esperando o fim. Automações podem disparar e acompanhar a mesma ingestão; veja a referência de API.
Para legislação, o processamento percorre cinco fases, refletidas na barra de progresso:
| Fase | O que faz | Faixa da barra |
|---|---|---|
| 1. Análise de artigos | Lê a página e separa os artigos. Há deduplicação por número de artigo: se o mesmo "Art. N" aparece mais de uma vez na página, ele é contado apenas uma vez (mantendo o texto mais completo). | ~5% → 15% |
| 2. Gravação no grafo | Salva os artigos em lotes de 300, para não estourar o limite de tamanho de requisição (leis grandes têm milhares de artigos). | ~12% |
| 3. Jurisprudência | Para cada artigo, abre o corpus927 em um navegador headless (Playwright) e extrai as decisões relacionadas, ligando-as ao artigo no grafo. É a fase mais longa (uma consulta por artigo). | 15% → 95% |
| 4. Indexação para busca | Indexa o texto completo de cada artigo e gera os vetores semânticos, gravando-os no índice de busca do contexto. | ~96% |
| 5. Entidades | Extrai as entidades de cada artigo e as liga ao artigo no grafo, usando o modelo configurado para o contexto. | ~98% → 100% |
Três pontos que valem atenção:
- O modelo nunca é fixo no código. Tanto os vetores semânticos quanto o reconhecimento de entidades usam o modelo ativo da plataforma, definido nas configurações do contexto. Trocar o modelo lá muda o que é usado na próxima ingestão.
- A jurisprudência depende de a legislação ser reconhecida. Para os códigos mapeados (CPC, Código Civil, CDC, Constituição), a plataforma localiza a página correta no corpus927. Se a legislação não tiver correspondência conhecida, os artigos são gravados normalmente e a fase de jurisprudência é pulada com um aviso.
- Cada conteúdo vai para o lugar certo. O texto longo e os vetores vão para o índice de busca; o grafo guarda apenas metadados leves (número do artigo, código de ligação e um trecho curto) e os relacionamentos.
Acompanhar e cancelar
- Progresso real. A interface consulta o estado da tarefa a cada ~2 segundos e atualiza a barra com a porcentagem e a mensagem da fase atual (ex.: "Jurisprudência Art. 970 (5/12)").
- Sobrevive a sair e voltar. O identificador da tarefa fica guardado localmente no navegador. Se você navegar para outra área e voltar à aba URL, a interface verifica o estado real da tarefa e retoma o acompanhamento automaticamente — mas só se ela ainda estiver em andamento. Se já terminou (ou não existe mais), a interface limpa o vestígio e fica ociosa, sem mostrar progresso falso.
- Cancelar. Durante o processamento há o botão Cancelar. Ao final (sucesso, erro ou cancelamento) aparece um resumo e o botão Ingerir outra URL para começar de novo.
O processamento roda no servidor mesmo com a aba fechada. Fechar a página não cancela a ingestão — para interromper de fato, use Cancelar.
O contexto de destino não muda no meio da carga
Cada ingestão grava em um contexto de destino específico, escolhido no momento em que você clica em Carregar URL. Esse destino é fixado para a carga inteira: uma vez iniciada, a ingestão continua gravando no contexto original até o fim, independentemente do que você fizer na tela depois.
Para deixar isso visível, o bloco de progresso exibe um banner fixo enquanto a carga está em andamento:
- Upload em andamento — indica que há uma ingestão ativa.
- Contexto de destino: {contexto} — mostra, em destaque, exatamente para qual contexto os artigos, vetores e entidades estão sendo gravados.
O banner permanece com o mesmo contexto até o estado final da tarefa (concluída, com erro ou cancelada). A mensagem de conclusão também cita o contexto de destino real da carga, não o contexto que estiver ativo na tela naquele instante.
Por que isso importa. Você pode iniciar uma ingestão em um contexto e, em seguida, clicar em outro contexto nos chips superiores para começar a preparar outra operação. Antes, essa troca fazia a tela toda parecer refletir o novo contexto — dando a falsa impressão de que a carga em andamento tinha mudado de destino. O destino real nunca mudou; agora a tela também deixa isso claro.
Aviso quando você troca de contexto
Se, com uma carga em andamento, você selecionar um contexto diferente do contexto de destino da ingestão, a interface mostra um aviso logo abaixo do banner:
"A troca de contexto acima não afeta esta carga: ela continua sendo gravada no contexto de destino indicado."
Trocar de contexto durante um upload é permitido de propósito — serve para você já ir preparando a próxima operação em outro contexto sem esperar a carga atual terminar. O aviso apenas confirma que a ingestão em curso segue intacta no seu destino original.
Ao sair e voltar à página
Quando você navega para outra área e retorna à aba URL, o acompanhamento é retomado (ver seção anterior). Nesse retorno, o contexto de destino exibido no banner vem do próprio estado da tarefa no servidor — ou seja, é sempre o contexto correto onde a carga está gravando, mesmo que o contexto ativo na tela tenha sido alterado nesse meio-tempo.
Cargas antigas iniciadas antes desta melhoria podem não ter o contexto de destino registrado; nesses casos raros o banner recorre ao contexto ativo apenas para exibição. A gravação sempre ocorreu no destino correto.
Reprocessar sem duplicar
A ingestão é idempotente: reenviar a mesma URL não cria conteúdo duplicado.
- Legislação. Os artigos são gravados por merge no grafo — reprocessar a mesma lei atualiza os nós existentes em vez de duplicá-los. A deduplicação por número de artigo, descrita acima, garante que cada artigo entre uma única vez mesmo quando a página repete o mesmo "Art. N" em marcações aninhadas.
- PDF. Quando o conteúdo é um arquivo PDF, a deduplicação é por sha256: o código do documento deriva do hash do arquivo, então reenviar o mesmo PDF sobrescreve o mesmo registro (no grafo e no índice) em vez de criar uma cópia.
Em resumo: pode reprocessar à vontade para corrigir ou completar uma carga — a base não incha.
Dicas
- Teste pequeno antes da carga completa. Use o Filtro de artigos com um intervalo curto (ex.:
966-970) para validar que a URL é reconhecida e que a jurisprudência está vindo. Depois rode sem filtro para a carga completa. - Leis grandes levam tempo. A fase de jurisprudência faz uma consulta por artigo, com uma pausa curta entre elas para não sobrecarregar a fonte. Para um código com muitos artigos isso pode demorar bastante — a barra de progresso (faixa de 15% a 95%) é o melhor indicador do andamento.
- Confira o resultado na Busca. Assim que a fase de indexação termina, os artigos já aparecem na página Busca (texto literal + semântico), com as decisões ligadas a cada artigo.
- Deixe rodando. Como o processamento sobrevive à navegação, inicie a ingestão e siga usando outras áreas da plataforma; volte à aba URL quando quiser ver o andamento.
Solução de problemas
| Sintoma | Causa provável | O que fazer |
|---|---|---|
| Campo de URL e botão desabilitados | Nenhum contexto selecionado | Escolha um contexto no bloco Contexto de Destino |
| "Selecione um contexto antes de enviar a URL." | Ingestão tentada sem contexto ativo | Selecione o contexto e tente de novo |
| "URL é obrigatória." | Campo vazio | Cole o endereço antes de clicar em Carregar URL |
| "Sessão expirada. Faça login novamente." | Sessão/token expirou | Entre novamente na plataforma e repita a operação |
| "Erro de conexão com o servidor." | Serviço de documentos indisponível | Verifique a disponibilidade e tente novamente em alguns instantes |
| "Nenhum artigo encontrado na URL" | A página não tem estrutura de artigos reconhecível | Confirme que a URL é de uma legislação; para páginas comuns, o texto é tratado como HTML |
| Barra conclui sem jurisprudência | Legislação sem correspondência no corpus927 | Esperado — os artigos foram gravados; só a fase de jurisprudência foi pulada |
| Volta à aba e não há progresso | A tarefa já terminou ou foi removida | Comportamento normal; inicie uma nova ingestão se necessário |
Em qualquer falha, a interface mostra a mensagem em português, sem expor código de erro bruto, rastreamento de pilha ou dados técnicos de diagnóstico.
Veja também
- Busca — onde a legislação ingerida fica pesquisável.
- Geração de regras de triagem com IA — usa os artigos e a jurisprudência carregados aqui como fundamento das regras.
- Referência de API — para automatizar o disparo e o acompanhamento da ingestão.