caarleexx commited on
Commit
d9eb15e
·
verified ·
1 Parent(s): 8fd9b93

Update docs/MODELCARD.md

Browse files
Files changed (1) hide show
  1. docs/MODELCARD.md +209 -5
docs/MODELCARD.md CHANGED
@@ -8,10 +8,10 @@
8
  | Campo | Valor |
9
  |-------|-------|
10
  | Nome | Para.AI Assuntos Jurídicos API |
11
- | Versão | 1.0.0 |
12
  | Base URL | `https://api.para-ai.com` / `http://localhost:8000` |
13
  | Protocolo | REST / JSON |
14
- | Latência típica | 74ms (`/busca-q`) · 800ms (`/busca`) |
15
  | Licença dados | CNJ — domínio público |
16
  | Licença código | MIT |
17
 
@@ -25,6 +25,7 @@ Use este tool quando o usuário perguntar sobre:
25
  - Legislação aplicável a um tema do Direito
26
  - Hierarquia de ramos/categorias do Direito brasileiro
27
  - Definição técnica de um instituto jurídico
 
28
 
29
  ---
30
 
@@ -110,6 +111,129 @@ Use este tool quando o usuário perguntar sobre:
110
 
111
  ---
112
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  ## Exemplo — OpenAI Function Calling
114
 
115
  ```python
@@ -208,11 +332,91 @@ TOOL_ANTHROPIC = {
208
  "topk": 1, "retornar": ["titulo", "definicao", "introducao"]}
209
  ```
210
 
211
- ### 4. Drill-down hierárquico
 
 
 
 
212
  ```
213
- GET /grafo/filhos?ancestor=Crimes+contra+o+Patrimônio&size=20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
214
  ```
215
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
216
  ---
217
 
218
- *v1.0.0 · 24/02/2026 · Para.AI*
 
8
  | Campo | Valor |
9
  |-------|-------|
10
  | Nome | Para.AI Assuntos Jurídicos API |
11
+ | Versão | 1.0.1 |
12
  | Base URL | `https://api.para-ai.com` / `http://localhost:8000` |
13
  | Protocolo | REST / JSON |
14
+ | Latência típica | 74ms (`/busca-q`) · 800ms (`/busca`) · 120ms (`/grafo/filhos`) |
15
  | Licença dados | CNJ — domínio público |
16
  | Licença código | MIT |
17
 
 
25
  - Legislação aplicável a um tema do Direito
26
  - Hierarquia de ramos/categorias do Direito brasileiro
27
  - Definição técnica de um instituto jurídico
28
+ - Navegação pela árvore de assuntos (drill-down hierárquico)
29
 
30
  ---
31
 
 
111
 
112
  ---
113
 
114
+ ## Endpoint de Navegação: GET /grafo/filhos
115
+
116
+ **Retorna assuntos do mesmo nível e pastas filhas diretas de um nó da hierarquia.**
117
+
118
+ ### Parâmetros
119
+
120
+ | Parâmetro | Tipo | Obrigatório | Descrição |
121
+ |-----------|------|-------------|-----------|
122
+ | `ancestor` | string | ✓ | Nome do nó ancestral (ex: "Crimes contra o Patrimônio") |
123
+ | `size` | integer | ✗ | Máximo de resultados (padrão: 50, max: 500) |
124
+ | `estruturado` | boolean | ✗ | Retornar resposta separada por tipo (padrão: false) |
125
+
126
+ ### Comportamento
127
+
128
+ O endpoint retorna **APENAS**:
129
+ 1. Assuntos do **mesmo nível hierárquico** do ancestor
130
+ 2. **Pastas/categorias filhas diretas** (profundidade + 1)
131
+
132
+ **NÃO retorna** os assuntos dentro das pastas dos filhos (netos, bisnetos, etc.).
133
+
134
+ ### Exemplo de Requisição
135
+
136
+ ```bash
137
+ GET /grafo/filhos?ancestor=DIREITO DO CONSUMIDOR&size=50
138
+ ```
139
+
140
+ ### Schema da Resposta (modo padrão)
141
+
142
+ ```json
143
+ {
144
+ "ancestor": "DIREITO DO CONSUMIDOR",
145
+ "total": 13,
146
+ "filhos": [
147
+ {
148
+ "id": "fb36b9c7...",
149
+ "nome_assunto": "DIREITO DO CONSUMIDOR",
150
+ "classes_profundidade": 1,
151
+ "classes_path": "DIREITO DO CONSUMIDOR",
152
+ "titulo_curto": "Direito do Consumidor",
153
+ "breve_sintese": "Assunto que abrange questões relativas à proteção...",
154
+ "dispositivos_legais": ["Lei nº 8.078/1990"]
155
+ },
156
+ {
157
+ "id": "0039f247...",
158
+ "nome_assunto": "Responsabilidade do Fornecedor",
159
+ "classes_profundidade": 2,
160
+ "classes_path": "DIREITO DO CONSUMIDOR > Responsabilidade do Fornecedor",
161
+ "titulo_curto": "Responsabilidade do Fornecedor",
162
+ "breve_sintese": "Trata da responsabilidade civil do fornecedor..."
163
+ },
164
+ {
165
+ "id": "0bcbb6ab...",
166
+ "nome_assunto": "Dever de Informação",
167
+ "classes_profundidade": 2,
168
+ "classes_path": "DIREITO DO CONSUMIDOR > Dever de Informação"
169
+ }
170
+ // ... mais 10 pastas de profundidade 2
171
+ ]
172
+ }
173
+ ```
174
+
175
+ ### Schema da Resposta (modo estruturado)
176
+
177
+ ```bash
178
+ GET /grafo/filhos?ancestor=DIREITO DO CONSUMIDOR&estruturado=true
179
+ ```
180
+
181
+ ```json
182
+ {
183
+ "ancestor": "DIREITO DO CONSUMIDOR",
184
+ "ancestor_profundidade": 1,
185
+ "total": 13,
186
+ "assuntos_mesmo_nivel": {
187
+ "total": 1,
188
+ "assuntos": [
189
+ {
190
+ "id": "fb36b9c7...",
191
+ "nome_assunto": "DIREITO DO CONSUMIDOR",
192
+ "classes_profundidade": 1,
193
+ "classes_path": "DIREITO DO CONSUMIDOR"
194
+ }
195
+ ]
196
+ },
197
+ "pastas_com_filhos": {
198
+ "total": 12,
199
+ "pastas": [
200
+ {
201
+ "id": "0039f247...",
202
+ "nome_assunto": "Responsabilidade do Fornecedor",
203
+ "classes_profundidade": 2,
204
+ "classes_path": "DIREITO DO CONSUMIDOR > Responsabilidade do Fornecedor"
205
+ },
206
+ {
207
+ "id": "0bcbb6ab...",
208
+ "nome_assunto": "Dever de Informação",
209
+ "classes_profundidade": 2,
210
+ "classes_path": "DIREITO DO CONSUMIDOR > Dever de Informação"
211
+ }
212
+ // ... mais 10 pastas
213
+ ]
214
+ }
215
+ }
216
+ ```
217
+
218
+ ### Caso de Uso
219
+
220
+ Ideal para construir interfaces de navegação em árvore, onde o usuário clica em uma pasta e vê apenas as subpastas diretas, não todos os conteúdos recursivamente.
221
+
222
+ ```javascript
223
+ // Frontend - Navegação em árvore
224
+ async function loadChildren(nodeName) {
225
+ const response = await fetch(
226
+ `/grafo/filhos?ancestor=${nodeName}&estruturado=true`
227
+ );
228
+ const data = await response.json();
229
+
230
+ // Mostrar apenas as pastas clicáveis
231
+ return data.pastas_com_filhos.pastas;
232
+ }
233
+ ```
234
+
235
+ ---
236
+
237
  ## Exemplo — OpenAI Function Calling
238
 
239
  ```python
 
332
  "topk": 1, "retornar": ["titulo", "definicao", "introducao"]}
333
  ```
334
 
335
+ ### 4. Navegação hierárquica (drill-down)
336
+
337
+ **Listar pastas filhas diretas:**
338
+ ```bash
339
+ GET /grafo/filhos?ancestor=Crimes contra o Patrimônio&size=20
340
  ```
341
+
342
+ **Resposta:**
343
+ - Assuntos do mesmo nível (irmãos)
344
+ - Pastas/categorias filhas diretas
345
+ - **NÃO** inclui assuntos dentro das pastas
346
+
347
+ **Navegação estruturada (para UIs):**
348
+ ```bash
349
+ GET /grafo/filhos?ancestor=DIREITO PENAL&estruturado=true
350
+ ```
351
+
352
+ **Casos de uso:**
353
+ - Construir árvores de navegação
354
+ - Breadcrumbs dinâmicos
355
+ - Interfaces de seleção hierárquica
356
+ - Sugestões de assuntos relacionados
357
+
358
+ ### 5. Obter hierarquia completa
359
+ ```bash
360
+ GET /hierarquia
361
  ```
362
 
363
+ Retorna a árvore completa de ramos → categorias → subcategorias em formato agregado.
364
+
365
+ ---
366
+
367
+ ## Comparação entre Endpoints de Navegação
368
+
369
+ | Endpoint | Retorna | Caso de Uso |
370
+ |----------|---------|-------------|
371
+ | `/hierarquia` | Árvore completa agregada | Visão geral, estatísticas |
372
+ | `/grafo/filhos` | Apenas nível atual + filhos diretos | Navegação incremental, UI |
373
+ | `/busca` | Busca full-text | Busca livre por palavras |
374
+ | `/busca-q` | Busca estruturada | Tool calling, RAG |
375
+
376
+ ---
377
+
378
+ ## Notas de Implementação
379
+
380
+ ### Performance
381
+
382
+ - **Cache recomendado:** `/hierarquia` (raramente muda)
383
+ - **Taxa de limite:** 100 req/min por IP (ajustável)
384
+ - **Timeout:** 10s (aumentar para `/busca` com `texto_completo`)
385
+
386
+ ### Paginação
387
+
388
+ ```json
389
+ {
390
+ "page": 2,
391
+ "size": 20
392
+ }
393
+ ```
394
+
395
+ Apenas em `/busca` (GET/POST). Outros endpoints usam `size` ou `topk`.
396
+
397
+ ### Fuzzy Match
398
+
399
+ ```json
400
+ {"modo": "fuzzy"} // Tolera erros de digitação (fuzziness AUTO)
401
+ {"modo": "exact"} // Match exato em campos keyword
402
+ ```
403
+
404
+ ---
405
+
406
+ ## Changelog
407
+
408
+ ### v1.0.1 (28/02/2026)
409
+ - ✨ Correção do endpoint `/grafo/filhos`: agora retorna apenas mesmo nível + filhos diretos
410
+ - ✨ Novo parâmetro `estruturado=true` para resposta separada por tipo
411
+ - 📝 Documentação expandida sobre navegação hierárquica
412
+ - 🐛 Fix: `/grafo/filhos` não retorna mais descendentes recursivos (netos, bisnetos)
413
+
414
+ ### v1.0.0 (24/02/2026)
415
+ - 🚀 Release inicial
416
+ - Suporte a busca full-text e estruturada
417
+ - 5.184 assuntos jurídicos CNJ
418
+ - Endpoints REST completos
419
+
420
  ---
421
 
422
+ *v1.0.1 · 28/02/2026 · Para.AI*