Unidade 2 — Alfred sai da máquina
Na Unidade 1, o Alfred consultava um arquivo. acervo.db estava no seu disco, tinha algumas centenas de linhas inventadas, e nunca mudava.
Isso foi de propósito: aprender o ciclo Thought–Action–Observation com o dado sob controle total é mais fácil, mais rápido e não depende de rede nenhuma.
Agora o dado passa a ser real.
Nesta unidade, as mesmas duas Tools passam a consultar a API Pública do DataJud, a base nacional do CNJ. São 23.152.022 processos do TJRJ — número que você vai obter você mesmo, no primeiro capítulo.
Por que o CNJ, e não direto o sistema do Tribunal
Três motivos, em ordem de importância.
1. Você pode fazer isso hoje. A API do DataJud é pública. Não precisa de convênio, de pedido à Diretoria de TI, nem de chave nominal. Você abre o terminal e consulta. Um curso em que metade da turma fica esperando credencial não é um curso.
2. O dado é o mesmo. A Resolução CNJ nº 331/2020 obriga todos os tribunais a enviar seus dados processuais ao DataJud, no formato MNI. Os campos que você vai ver — numeroProcesso, classe, assuntos, orgaoJulgador, movimentos — são os campos do EJUD e do EPROC do TJRJ, depois de traduzidos para a tabela nacional. Quem aprende a modelar perguntas sobre o DataJud aprende a modelar perguntas sobre o acervo do Tribunal.
3. Não há segredo de justiça envolvido. Isso merece um capítulo inteiro, e tem um: Sigilo, e por que ele não é problema seu aqui. Por ora, o resumo: o DataJud público só contém processos de nível de sigilo 0. Os que precisam de proteção nunca chegam à API.
Existe uma diferença que importa e que você vai sentir na primeira consulta: o DataJud tem metadados, não peças. Você vai obter número, classe, assunto, órgão julgador, datas e a lista de movimentos. Não vai obter a inicial, a sentença, nem o nome das partes.
Para um juiz isso costuma bastar: com o número do processo em mãos, o sistema do Tribunal está a um clique.
O que muda, e o que não muda
| Unidade 1 | Unidade 2 | |
|---|---|---|
| Origem do dado | SQLite local | API Pública do CNJ |
| Volume | ~500 linhas sintéticas | 23.152.022 processos reais |
| Linguagem da consulta | SQL | Elasticsearch Query DSL (JSON) |
| Onde roda o modelo | Sua máquina | Sua máquina |
| O ciclo do agente | Thought → Action → Observation | Idêntico |
| Estrutura das Tools | Duas: resolve assunto, busca processos | Duas: as mesmas |
| Quem decide o teto de resultados | Seu código | Seu código |
A coluna da direita muda em três linhas de sete. É esse o argumento da unidade: o agente não é o dado. Trocar a origem trocou as Tools por dentro e não tocou em mais nada.
O que você vai construir
O mesmo pedido do primeiro dia:
Alfred, traga os processos mais recentes sobre violência doméstica.
Só que a resposta agora sai de processos que existem, com números que passam no dígito verificador, tramitando em varas com nome e endereço.
Esta unidade faz o seu computador falar com um servidor de fora. Se a máquina estiver na rede do Tribunal, é possível que a saída para api-publica.datajud.cnj.jus.br esteja bloqueada, ou que passe por um proxy.
O capítulo Problemas comuns tem o diagnóstico. Se estiver bloqueado, o caminho é pedir a liberação do domínio — não é um pedido de acesso a dado sigiloso, é um endereço público do CNJ.
Roteiro
- A API Pública do DataJud — a primeira chamada, sem agente nenhum
- Fazendo perguntas em Query DSL — o mínimo de Elasticsearch para não escrever consulta no escuro
- Sigilo, e por que ele não é problema seu aqui — e por que continua sendo, no Tribunal
- As Tools — as mesmas duas, agora contra o CNJ
- Alfred no CNJ — o agente completo, rodando
- Quiz final