File size: 3,157 Bytes
aec8693
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# ℹ️ INFO.md — Para.AI Assuntos Jurídicos API
**Para potenciais clientes e usuários**

---

## O que é?

API REST pública que provê acesso estruturado aos **5.184 assuntos jurídicos**
catalogados oficialmente pelo **Conselho Nacional de Justiça (CNJ)**.

Projetada para advogados, legaltechs, sistemas de gestão processual e
desenvolvedores que integram LLMs com contexto jurídico confiável.

---

## Propósito e Objetivo

### Problema

Profissionais do Direito perdem horas navegando manualmente a taxonomia do CNJ
para classificar processos. Chatbots jurídicos carecem de fonte estruturada e
confiável. Sistemas de triagem automática erram por falta de contexto oficial.

### Solução

A Para.AI API entrega em milissegundos:

- **Busca fuzzy** tolerante a erros (`"aposen"``"Aposentadoria"`)
- **Filtros por ramo**, legislação e hierarquia
- **Autocomplete** em tempo real
- **Ficha unificada** para tool calling de LLMs (GPT-4, Claude, Gemini)
- **Árvore hierárquica** completa (22 ramos, até 5 níveis)

---

## Arquitetura

```
Cliente / LLM
     │  HTTP/JSON

FastAPI 0.115  ←── Pydantic 2 (validação + serialização ORJSON)


Elasticsearch 8.12
  • Índice: assuntos_juridicos  (5.184 docs, ~18 MB)
  • Analyzer: juridico_pt  (lowercase + ASCII fold + stemmer PT + stopwords)
  • Edge n-gram tokenizer para autocomplete
  • BM25 com pesos: nome_assunto^4, titulo_curto^3, breve_sintese^2 …


Base CNJ  (dados públicos, bulk_assuntos.ndjson)
```

---

## Endpoints Disponíveis

| Endpoint | Método | Latência p50 | Descrição |
|----------|--------|-------------|-----------|
| `/busca` | GET/POST | ~800ms | Full-text + filtros + facets |
| `/busca-q` | GET/POST | ~74ms | Estruturada para LLMs |
| `/autocomplete` | GET | ~45ms | Sugestões por prefixo |
| `/hierarquia` | GET | ~250ms | Árvore 22 ramos |
| `/assuntos/{id}` | GET | ~20ms | Documento completo |
| `/grafo/filhos` | GET | ~100ms | Drill-down por ancestral |
| `/health` | GET | ~10ms | Status e métricas |

Documentação interativa: `http://localhost:8000/docs`

---

## Desafios e Soluções

| Desafio | Solução |
|---------|---------|
| Soft hyphens `\xad` nos textos CNJ | Strip no pipeline de indexação |
| Termos jurídicos longos com acentos | ASCII folding + stemmer português |
| LLMs precisam de payload compacto | `/busca-q` com `retornar=[]` seletivo |
| Hierarquia de 5 níveis aninhados | Agregações ES nested + `classes_path` |
| Autocompletar prefixos rápido | Edge n-gram (min 2, max 20 chars) |

---

## Próximos Passos

**Q2 2026 — Otimização**
- Cache Redis (p95 < 200ms)
- Rate limiting e API keys
- Métricas Prometheus + Grafana

**Q3 2026 — Inteligência**
- Busca semântica (embeddings)
- Dicionário de sinônimos jurídicos
- `/classificar` — inferência de assunto por texto livre

**Q4 2026 — Escala**
- Cluster ES 3 nós
- Integração com jurisprudência (acórdãos TJPR)
- Webhooks de atualização CNJ

---

## Open Source

Código: https://github.com/para-ai/assuntos-juridicos  
Licença: MIT  
Dados: CNJ (domínio público)