Carlex22 commited on
Commit
468ae14
·
1 Parent(s): b15cb4f

Revert "ParaAIV3.1"

Browse files

This reverts commit 6637d41762c1fe646f92b237983362062e2ce54e.

config/specialists_v13_6.yaml DELETED
@@ -1,104 +0,0 @@
1
- ##PARA.AI/config/specialists_v13_6.yaml
2
- # =============================================================================
3
- # Configuração dos 7 Especialistas V13.6
4
- # DATA: 2026-01-16
5
- # =============================================================================
6
-
7
- specialists:
8
- 1:
9
- name: "Segmentador"
10
- class: "SpecialistSegmentador"
11
- enabled: true
12
- prompt_file: "prompts/fase1_segmentador.txt"
13
- schema_file: "schemas/specialist_schemas/fase1_segmentacao.json"
14
- system_prompt: "Você é um especialista em segmentação de acórdãos do TJPR."
15
- llm_config:
16
- model: "groq/llama-3.1-70b-versatile"
17
- temperature: 0.2
18
- max_tokens: 3000
19
- max_retries: 3
20
- retry_delay: 2
21
-
22
- 2:
23
- name: "Metadados"
24
- class: "SpecialistMetadados"
25
- enabled: true
26
- prompt_file: "prompts/fase2_metadados.txt"
27
- schema_file: "schemas/specialist_schemas/fase2_metadados.json"
28
- system_prompt: "Você é um especialista em extração de metadados jurídicos do TJPR."
29
- llm_config:
30
- model: "groq/llama-3.1-70b-versatile"
31
- temperature: 0.1
32
- max_tokens: 1500
33
- max_retries: 3
34
- retry_delay: 2
35
-
36
- 3:
37
- name: "Classificador"
38
- class: "SpecialistClassificador"
39
- enabled: true
40
- prompt_file: "prompts/fase3_classificador.txt"
41
- schema_file: "schemas/specialist_schemas/fase3_classificacao.json"
42
- system_prompt: "Você é um especialista em classificação de ramos do direito."
43
- llm_config:
44
- model: "groq/llama-3.1-70b-versatile"
45
- temperature: 0.2
46
- max_tokens: 1000
47
- max_retries: 3
48
- retry_delay: 2
49
-
50
- 4:
51
- name: "Relatório"
52
- class: "SpecialistRelatorio"
53
- enabled: true
54
- prompt_file: "prompts/fase4_relatorio.txt"
55
- schema_file: "schemas/specialist_schemas/fase4_relatorio.json"
56
- system_prompt: "Você é um especialista em análise de RELATÓRIOS de acórdãos."
57
- llm_config:
58
- model: "groq/llama-3.1-70b-versatile"
59
- temperature: 0.3
60
- max_tokens: 2500
61
- max_retries: 3
62
- retry_delay: 2
63
-
64
- 5:
65
- name: "Fundamentação"
66
- class: "SpecialistFundamentacao"
67
- enabled: true
68
- prompt_file: "prompts/fase4_fundamentacao.txt"
69
- schema_file: "schemas/specialist_schemas/fase4_fundamentacao.json"
70
- system_prompt: "Você é um especialista em análise de FUNDAMENTAÇÃO de acórdãos."
71
- llm_config:
72
- model: "groq/llama-3.1-70b-versatile"
73
- temperature: 0.3
74
- max_tokens: 3000
75
- max_retries: 3
76
- retry_delay: 2
77
-
78
- 6:
79
- name: "Dispositivo"
80
- class: "SpecialistDispositivo"
81
- enabled: true
82
- prompt_file: "prompts/fase4_dispositivo.txt"
83
- schema_file: "schemas/specialist_schemas/fase4_dispositivo.json"
84
- system_prompt: "Você é um especialista em análise de DISPOSITIVOS de acórdãos."
85
- llm_config:
86
- model: "groq/llama-3.1-70b-versatile"
87
- temperature: 0.2
88
- max_tokens: 2000
89
- max_retries: 3
90
- retry_delay: 2
91
-
92
- 7:
93
- name: "Arquivista"
94
- class: "SpecialistArquivista"
95
- enabled: true
96
- prompt_file: "prompts/fase5_arquivista.txt"
97
- schema_file: "schemas/specialist_schemas/fase5_arquivista.json"
98
- system_prompt: "Você é um arquivista especializado em análise meta-cognitiva de acórdãos."
99
- llm_config:
100
- model: "groq/llama-3.1-70b-versatile"
101
- temperature: 0.4
102
- max_tokens: 1500
103
- max_retries: 3
104
- retry_delay: 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
prompts/fase1_segmentador.txt DELETED
@@ -1,25 +0,0 @@
1
- Você é um especialista em segmentação de acórdãos do TJPR.
2
-
3
- TAREFA: Dividir o texto abaixo nas 3 seções estruturais.
4
-
5
- TEXTO COMPLETO:
6
- {inteiro_teor}
7
-
8
- IDENTIFIQUE E EXTRAIA:
9
- 1. RELATÓRIO (início do texto até antes da fundamentação)
10
- 2. FUNDAMENTAÇÃO (parte do relator com análise jurídica)
11
- 3. DISPOSITIVO (decisão final, geralmente após "Ante o exposto")
12
-
13
- RETORNE JSON:
14
- {
15
- "secoes_originais": {
16
- "RELATORIO_texto_completo": "texto completo do relatório...",
17
- "FUNDAMENTACAO_texto_completo": "texto completo da fundamentação...",
18
- "DISPOSITIVO_texto_completo": "texto do dispositivo..."
19
- }
20
- }
21
-
22
- IMPORTANTE:
23
- - Se não conseguir identificar uma seção, use null
24
- - Preserve o texto original (não resuma)
25
- - Identifique pelos marcadores textuais (É O RELATÓRIO, VOTO, DISPOSITIVO)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
prompts/fase2_metadados.txt DELETED
@@ -1,36 +0,0 @@
1
- Você é um especialista em extração de metadados jurídicos do TJPR.
2
-
3
- TAREFA: Extrair informações estruturais objetivas do acórdão.
4
-
5
- EMENTA:
6
- {ementa}
7
-
8
- ÍNTEGRA (primeiras linhas):
9
- {inteiro_teor}
10
-
11
- EXTRAIA:
12
- 1. tribunal: "TJPR"
13
- 2. orgao_julgador: Nome da câmara/turma (ex: "1ª Câmara Cível")
14
- 3. classe_processual: Tipo do processo (ex: "Apelação Cível")
15
- 4. numeros_processo: Lista de números CNJ (ex: ["0001234-56.2023.8.16.0001"])
16
- 5. relator: Nome completo do relator (ex: "Des. João Silva")
17
- 6. data_julgamento: Data no formato YYYY-MM-DD
18
- 7. data_publicacao: Data de publicação (se houver)
19
-
20
- RETORNE JSON:
21
- {
22
- "metadados": {
23
- "tribunal": "TJPR",
24
- "orgao_julgador": "...",
25
- "classe_processual": "...",
26
- "numeros_processo": ["..."],
27
- "relator": "...",
28
- "data_julgamento": "YYYY-MM-DD",
29
- "data_publicacao": "YYYY-MM-DD"
30
- }
31
- }
32
-
33
- IMPORTANTE:
34
- - Use null se informação não estiver explícita
35
- - Data deve ser ISO 8601 (YYYY-MM-DD)
36
- - Números de processo devem incluir traços/pontos
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
prompts/fase3_classificador.txt DELETED
@@ -1,44 +0,0 @@
1
- Você é um especialista em classificação de ramos do direito.
2
-
3
- TAREFA: Classificar o acórdão abaixo em ramos do direito.
4
-
5
- EMENTA:
6
- {ementa}
7
-
8
- CLASSE PROCESSUAL: {metadados}
9
-
10
- CLASSIFIQUE EM UM DOS RAMOS:
11
- - Direito Civil
12
- - Direito do Consumidor
13
- - Direito Penal
14
- - Direito Processual Civil
15
- - Direito Processual Penal
16
- - Direito Tributário
17
- - Direito Administrativo
18
- - Direito de Família
19
- - Direito do Trabalho
20
- - Direito Empresarial
21
- - Direito Constitucional
22
- - Direito Ambiental
23
- - Outros
24
-
25
- RETORNE JSON:
26
- {
27
- "classificacao_tematica": {
28
- "RAMO_EXPECIALIZACAO_DIREITO": {
29
- "descricao": "Direito Civil",
30
- "relevancia_para_caso": 85
31
- },
32
- "ramos_secundarios": [
33
- {
34
- "descricao": "Direito Processual Civil",
35
- "relevancia_para_caso": 30
36
- }
37
- ]
38
- }
39
- }
40
-
41
- IMPORTANTE:
42
- - relevancia_para_caso: 0-100 (quão central é esse ramo para o caso)
43
- - ramos_secundarios: máximo 2 ramos
44
- - Use "Outros" se não se encaixar em nenhum
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
prompts/fase4_dispositivo.txt DELETED
@@ -1,50 +0,0 @@
1
- Você é um especialista em análise de DISPOSITIVOS de acórdãos.
2
-
3
- TAREFA: Extrair o RESULTADO do julgamento e pedidos.
4
-
5
- SEÇÃO DISPOSITIVO:
6
- {DISPOSITIVO_texto}
7
-
8
- EMENTA:
9
- {ementa}
10
-
11
- EXTRAIA:
12
- 1. resultado: "PROVIDO", "IMPROVIDO", "PARCIALMENTE_PROVIDO", "NAO_CONHECIDO", "EXTINTO_SEM_RESOLUCAO_MERITO", "PREJUDICADO"
13
- 2. sintese_decisao (máx 80 chars): Resumo da decisão em uma linha
14
- 3. mapa_pedidos: Lista de pedidos (máx 5):
15
- - pedido: Descrição do pedido
16
- - parte: Quem pediu
17
- - foi_conhecido: true/false
18
- - resultado_pedido: "deferido", "indeferido", "parcialmente_deferido"
19
- - fundamento_decisivo: Por que foi deferido/indeferido (máx 120 chars)
20
- 4. votacao (se houver):
21
- - unanime: true/false
22
- - votos_favoraveis: número
23
- - votos_contrarios: número
24
-
25
- RETORNE JSON:
26
- {
27
- "DECISAO": {
28
- "resultado": "PROVIDO",
29
- "sintese_decisao": "Recurso provido...",
30
- "mapa_pedidos": [
31
- {
32
- "pedido": "Indenização por danos morais",
33
- "parte": "autor",
34
- "foi_conhecido": true,
35
- "resultado_pedido": "deferido",
36
- "fundamento_decisivo": "Comprovado dano moral..."
37
- }
38
- ],
39
- "etiquetas_decisao": ["#provido"],
40
- "votacao": {
41
- "unanime": true,
42
- "votos_favoraveis": 3,
43
- "votos_contrarios": 0
44
- }
45
- }
46
- }
47
-
48
- IMPORTANTE:
49
- - resultado deve ser EXATAMENTE um dos enums
50
- - Máximo 5 pedidos
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
prompts/fase4_fundamentacao.txt DELETED
@@ -1,45 +0,0 @@
1
- Você é um especialista em análise de FUNDAMENTAÇÃO de acórdãos.
2
-
3
- TAREFA: Extrair as TESES DO RELATOR da fundamentação.
4
-
5
- SEÇÃO FUNDAMENTAÇÃO:
6
- {FUNDAMENTACAO_texto}
7
-
8
- EXTRAIA:
9
- 1. sintese_conectora_fundamentacao (máx 80 chars): Resumo da linha argumentativa
10
- 2. teses_relator: Lista de teses (máx 5), onde cada tese tem:
11
- - nucleo_logico_argumentativo (máx 120 chars): Argumento jurídico
12
- - peso_merito (0-100): Importância no julgamento
13
- - fundamentos_legal: Lista de fundamentos (máx 3):
14
- * tipo: "lei", "jurisprudencia", "sumula", "principio", "doutrina"
15
- * citacao_fonte: Referência completa (ex: "Art. 927 do CC", "STJ REsp 123456")
16
- * nucleo_logico: Resumo do fundamento (máx 120 chars)
17
- - etiquetas_semanticas: Tags (#responsabilidade_civil, etc)
18
- 3. etiquetas_fundamentacao: Tags gerais
19
-
20
- RETORNE JSON:
21
- {
22
- "FUNDAMENTACAO": {
23
- "sintese_conectora_fundamentacao": "Resumo...",
24
- "teses_relator": [
25
- {
26
- "nucleo_logico_argumentativo": "Argumento...",
27
- "peso_merito": 85,
28
- "fundamentos_legal": [
29
- {
30
- "tipo": "lei",
31
- "citacao_fonte": "Art. 927 do Código Civil",
32
- "nucleo_logico": "Responsabilidade objetiva..."
33
- }
34
- ],
35
- "etiquetas_semanticas": ["#responsabilidade_civil"]
36
- }
37
- ],
38
- "etiquetas_fundamentacao": ["#tag1"]
39
- }
40
- }
41
-
42
- IMPORTANTE:
43
- - Máximo 5 teses do relator
44
- - Máximo 3 fundamentos legais por tese
45
- - Tags em minúsculas com #
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
prompts/fase4_relatorio.txt DELETED
@@ -1,41 +0,0 @@
1
- Você é um especialista em análise de RELATÓRIOS de acórdãos.
2
-
3
- TAREFA: Extrair as TESES DAS PARTES do relatório abaixo.
4
-
5
- SEÇÃO RELATÓRIO:
6
- {RELATORIO_texto}
7
-
8
- METADADOS:
9
- {metadados}
10
-
11
- EXTRAIA:
12
- 1. sintese_conectora_narrativa (máx 80 chars): Resumo dos fatos em UMA linha
13
- 2. teses_fragmentadas: Lista de teses (máx 5), onde cada tese tem:
14
- - parte: "recorrente", "recorrido", "autor", "reu", "apelante", "apelado", "agravante", "agravado"
15
- - nucleo_logico_argumentativo (máx 120 chars): Essência do argumento
16
- - peso_merito (0-100): Importância da tese no caso
17
- - elementos_factuais: Lista de fatos (máx 3, cada um 80 chars)
18
- - etiquetas_semanticas: Tags (#indenizacao, #dano_moral, etc)
19
- 3. etiquetas_relatorio: Tags gerais do relatório
20
-
21
- RETORNE JSON:
22
- {
23
- "RELATORIO": {
24
- "sintese_conectora_narrativa": "Resumo curto...",
25
- "teses_fragmentadas": [
26
- {
27
- "parte": "recorrente",
28
- "nucleo_logico_argumentativo": "Argumento principal...",
29
- "peso_merito": 80,
30
- "elementos_factuais": ["Fato 1", "Fato 2"],
31
- "etiquetas_semanticas": ["#tag1", "#tag2"]
32
- }
33
- ],
34
- "etiquetas_relatorio": ["#tag1", "#tag2"]
35
- }
36
- }
37
-
38
- IMPORTANTE:
39
- - Seja conciso
40
- - Máximo 5 teses
41
- - Tags em minúsculas com # (ex: #dano_moral)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
prompts/fase5_arquivista.txt DELETED
@@ -1,34 +0,0 @@
1
- Você é um arquivista especializado em análise meta-cognitiva de acórdãos.
2
-
3
- TAREFA: Avaliar a QUALIDADE e COMPLEXIDADE do caso processado.
4
-
5
- JSON COMPLETO PROCESSADO:
6
- {context}
7
-
8
- ANALISE:
9
- 1. grau_confianca: "alta", "media", "baixa", "muito_baixa"
10
- - Baseado em: completude dos campos, consistência lógica, clareza
11
- 2. justificativa_confianca: Por que esse grau (máx 150 chars)
12
- 3. complexidade_caso: "baixa", "media", "alta", "muito_alta"
13
- - Considere: número de teses, fundamentos legais, pedidos
14
- 4. relevancia_jurisprudencial: "baixa", "media", "alta", "leading_case"
15
- - Casos inovadores, precedentes importantes = alta
16
- 5. alertas_qualidade: Lista de problemas (se houver):
17
- - "texto_incompleto", "citacoes_imprecisas", "inconsistencia_logica",
18
- "falta_fundamentacao", "contradicao_interna"
19
-
20
- RETORNE JSON:
21
- {
22
- "analise_arquivista": {
23
- "grau_confianca": "alta",
24
- "justificativa_confianca": "Todos os campos preenchidos...",
25
- "complexidade_caso": "media",
26
- "relevancia_jurisprudencial": "media",
27
- "alertas_qualidade": []
28
- }
29
- }
30
-
31
- IMPORTANTE:
32
- - Seja crítico mas justo
33
- - Se houver campos vazios, reduzir confiança
34
- - Máximo 3 alertas
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
schemas/protocolo_v13_6_schema.json DELETED
File without changes
schemas/specialist_schemas/fase1_segmentacao.json DELETED
@@ -1,33 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Schema Especialista 1 - Segmentador",
4
- "type": "object",
5
- "required": [
6
- "secoes_originais"
7
- ],
8
- "properties": {
9
- "secoes_originais": {
10
- "type": "object",
11
- "properties": {
12
- "RELATORIO_texto_completo": {
13
- "type": [
14
- "string",
15
- "null"
16
- ]
17
- },
18
- "FUNDAMENTACAO_texto_completo": {
19
- "type": [
20
- "string",
21
- "null"
22
- ]
23
- },
24
- "DISPOSITIVO_texto_completo": {
25
- "type": [
26
- "string",
27
- "null"
28
- ]
29
- }
30
- }
31
- }
32
- }
33
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
schemas/specialist_schemas/fase2_metadados.json DELETED
@@ -1,70 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Schema Especialista 2 - Metadados",
4
- "type": "object",
5
- "required": [
6
- "metadados"
7
- ],
8
- "properties": {
9
- "metadados": {
10
- "type": "object",
11
- "required": [
12
- "tribunal",
13
- "numeros_processo",
14
- "data_julgamento"
15
- ],
16
- "properties": {
17
- "tribunal": {
18
- "type": "string",
19
- "const": "TJPR"
20
- },
21
- "orgao_julgador": {
22
- "type": [
23
- "string",
24
- "null"
25
- ]
26
- },
27
- "classe_processual": {
28
- "type": [
29
- "string",
30
- "null"
31
- ]
32
- },
33
- "numeros_processo": {
34
- "type": "array",
35
- "items": {
36
- "type": "string"
37
- },
38
- "minItems": 1
39
- },
40
- "relator": {
41
- "type": [
42
- "string",
43
- "null"
44
- ]
45
- },
46
- "data_julgamento": {
47
- "type": [
48
- "string",
49
- "null"
50
- ],
51
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
52
- },
53
- "data_publicacao": {
54
- "type": [
55
- "string",
56
- "null"
57
- ],
58
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
59
- },
60
- "url_original": {
61
- "type": [
62
- "string",
63
- "null"
64
- ],
65
- "format": "uri"
66
- }
67
- }
68
- }
69
- }
70
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
schemas/specialist_schemas/fase3_classificacao.json DELETED
@@ -1,67 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Schema Especialista 3 - Classificador",
4
- "type": "object",
5
- "required": [
6
- "classificacao_tematica"
7
- ],
8
- "properties": {
9
- "classificacao_tematica": {
10
- "type": "object",
11
- "required": [
12
- "RAMO_EXPECIALIZACAO_DIREITO"
13
- ],
14
- "properties": {
15
- "RAMO_EXPECIALIZACAO_DIREITO": {
16
- "type": "object",
17
- "required": [
18
- "descricao",
19
- "relevancia_para_caso"
20
- ],
21
- "properties": {
22
- "descricao": {
23
- "type": "string",
24
- "enum": [
25
- "Direito Civil",
26
- "Direito do Consumidor",
27
- "Direito Penal",
28
- "Direito Processual Civil",
29
- "Direito Processual Penal",
30
- "Direito Tributário",
31
- "Direito Administrativo",
32
- "Direito de Família",
33
- "Direito do Trabalho",
34
- "Direito Empresarial",
35
- "Direito Constitucional",
36
- "Direito Ambiental",
37
- "Outros"
38
- ]
39
- },
40
- "relevancia_para_caso": {
41
- "type": "integer",
42
- "minimum": 0,
43
- "maximum": 100
44
- }
45
- }
46
- },
47
- "ramos_secundarios": {
48
- "type": "array",
49
- "items": {
50
- "type": "object",
51
- "properties": {
52
- "descricao": {
53
- "type": "string"
54
- },
55
- "relevancia_para_caso": {
56
- "type": "integer",
57
- "minimum": 0,
58
- "maximum": 100
59
- }
60
- }
61
- },
62
- "maxItems": 2
63
- }
64
- }
65
- }
66
- }
67
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
schemas/specialist_schemas/fase4_dispositivo.json DELETED
@@ -1,103 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Schema Especialista 6 - Dispositivo",
4
- "type": "object",
5
- "required": [
6
- "DECISAO"
7
- ],
8
- "properties": {
9
- "DECISAO": {
10
- "type": "object",
11
- "required": [
12
- "resultado",
13
- "mapa_pedidos"
14
- ],
15
- "properties": {
16
- "resultado": {
17
- "type": "string",
18
- "enum": [
19
- "PROVIDO",
20
- "IMPROVIDO",
21
- "PARCIALMENTE_PROVIDO",
22
- "NAO_CONHECIDO",
23
- "EXTINTO_SEM_RESOLUCAO_MERITO",
24
- "PREJUDICADO"
25
- ]
26
- },
27
- "sintese_decisao": {
28
- "type": [
29
- "string",
30
- "null"
31
- ],
32
- "maxLength": 80
33
- },
34
- "mapa_pedidos": {
35
- "type": "array",
36
- "items": {
37
- "type": "object",
38
- "required": [
39
- "pedido",
40
- "parte"
41
- ],
42
- "properties": {
43
- "pedido": {
44
- "type": "string"
45
- },
46
- "parte": {
47
- "type": "string"
48
- },
49
- "foi_conhecido": {
50
- "type": "boolean"
51
- },
52
- "resultado_pedido": {
53
- "type": [
54
- "string",
55
- "null"
56
- ],
57
- "enum": [
58
- "deferido",
59
- "indeferido",
60
- "parcialmente_deferido",
61
- null
62
- ]
63
- },
64
- "fundamento_decisivo": {
65
- "type": [
66
- "string",
67
- "null"
68
- ],
69
- "maxLength": 120
70
- }
71
- }
72
- }
73
- },
74
- "etiquetas_decisao": {
75
- "type": "array",
76
- "items": {
77
- "type": "string",
78
- "pattern": "^#[a-z_]+$"
79
- }
80
- },
81
- "votacao": {
82
- "type": [
83
- "object",
84
- "null"
85
- ],
86
- "properties": {
87
- "unanime": {
88
- "type": "boolean"
89
- },
90
- "votos_favoraveis": {
91
- "type": "integer",
92
- "minimum": 0
93
- },
94
- "votos_contrarios": {
95
- "type": "integer",
96
- "minimum": 0
97
- }
98
- }
99
- }
100
- }
101
- }
102
- }
103
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
schemas/specialist_schemas/fase4_fundamentacao.json DELETED
@@ -1,92 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Schema Especialista 5 - Fundamentação",
4
- "type": "object",
5
- "required": [
6
- "FUNDAMENTACAO"
7
- ],
8
- "properties": {
9
- "FUNDAMENTACAO": {
10
- "type": "object",
11
- "required": [
12
- "teses_relator"
13
- ],
14
- "properties": {
15
- "sintese_conectora_fundamentacao": {
16
- "type": [
17
- "string",
18
- "null"
19
- ],
20
- "maxLength": 80
21
- },
22
- "teses_relator": {
23
- "type": "array",
24
- "items": {
25
- "type": "object",
26
- "required": [
27
- "nucleo_logico_argumentativo"
28
- ],
29
- "properties": {
30
- "nucleo_logico_argumentativo": {
31
- "type": "string",
32
- "maxLength": 120
33
- },
34
- "peso_merito": {
35
- "type": "integer",
36
- "minimum": 0,
37
- "maximum": 100
38
- },
39
- "fundamentos_legal": {
40
- "type": "array",
41
- "items": {
42
- "type": "object",
43
- "required": [
44
- "tipo",
45
- "citacao_fonte"
46
- ],
47
- "properties": {
48
- "tipo": {
49
- "type": "string",
50
- "enum": [
51
- "lei",
52
- "jurisprudencia",
53
- "sumula",
54
- "principio",
55
- "doutrina"
56
- ]
57
- },
58
- "citacao_fonte": {
59
- "type": "string",
60
- "maxLength": 200
61
- },
62
- "nucleo_logico": {
63
- "type": [
64
- "string",
65
- "null"
66
- ],
67
- "maxLength": 120
68
- }
69
- }
70
- }
71
- },
72
- "etiquetas_semanticas": {
73
- "type": "array",
74
- "items": {
75
- "type": "string",
76
- "pattern": "^#[a-z_]+$"
77
- }
78
- }
79
- }
80
- }
81
- },
82
- "etiquetas_fundamentacao": {
83
- "type": "array",
84
- "items": {
85
- "type": "string",
86
- "pattern": "^#[a-z_]+$"
87
- }
88
- }
89
- }
90
- }
91
- }
92
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
schemas/specialist_schemas/fase4_relatorio.json DELETED
@@ -1,81 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Schema Especialista 4 - Relatório",
4
- "type": "object",
5
- "required": [
6
- "RELATORIO"
7
- ],
8
- "properties": {
9
- "RELATORIO": {
10
- "type": "object",
11
- "required": [
12
- "teses_fragmentadas",
13
- "etiquetas_relatorio"
14
- ],
15
- "properties": {
16
- "sintese_conectora_narrativa": {
17
- "type": [
18
- "string",
19
- "null"
20
- ],
21
- "maxLength": 80
22
- },
23
- "teses_fragmentadas": {
24
- "type": "array",
25
- "items": {
26
- "type": "object",
27
- "required": [
28
- "parte",
29
- "nucleo_logico_argumentativo"
30
- ],
31
- "properties": {
32
- "parte": {
33
- "type": "string",
34
- "enum": [
35
- "autor",
36
- "reu",
37
- "recorrente",
38
- "recorrido",
39
- "apelante",
40
- "apelado",
41
- "agravante",
42
- "agravado"
43
- ]
44
- },
45
- "nucleo_logico_argumentativo": {
46
- "type": "string",
47
- "maxLength": 120
48
- },
49
- "peso_merito": {
50
- "type": "integer",
51
- "minimum": 0,
52
- "maximum": 100
53
- },
54
- "elementos_factuais": {
55
- "type": "array",
56
- "items": {
57
- "type": "string",
58
- "maxLength": 80
59
- }
60
- },
61
- "etiquetas_semanticas": {
62
- "type": "array",
63
- "items": {
64
- "type": "string",
65
- "pattern": "^#[a-z_]+$"
66
- }
67
- }
68
- }
69
- }
70
- },
71
- "etiquetas_relatorio": {
72
- "type": "array",
73
- "items": {
74
- "type": "string",
75
- "pattern": "^#[a-z_]+$"
76
- }
77
- }
78
- }
79
- }
80
- }
81
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
schemas/specialist_schemas/fase5_arquivista.json DELETED
@@ -1,74 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Schema Especialista 7 - Arquivista",
4
- "type": "object",
5
- "required": [
6
- "analise_arquivista"
7
- ],
8
- "properties": {
9
- "analise_arquivista": {
10
- "type": "object",
11
- "required": [
12
- "grau_confianca"
13
- ],
14
- "properties": {
15
- "grau_confianca": {
16
- "type": "string",
17
- "enum": [
18
- "alta",
19
- "media",
20
- "baixa",
21
- "muito_baixa"
22
- ]
23
- },
24
- "justificativa_confianca": {
25
- "type": [
26
- "string",
27
- "null"
28
- ],
29
- "maxLength": 150
30
- },
31
- "complexidade_caso": {
32
- "type": [
33
- "string",
34
- "null"
35
- ],
36
- "enum": [
37
- "baixa",
38
- "media",
39
- "alta",
40
- "muito_alta",
41
- null
42
- ]
43
- },
44
- "relevancia_jurisprudencial": {
45
- "type": [
46
- "string",
47
- "null"
48
- ],
49
- "enum": [
50
- "baixa",
51
- "media",
52
- "alta",
53
- "leading_case",
54
- null
55
- ]
56
- },
57
- "alertas_qualidade": {
58
- "type": "array",
59
- "items": {
60
- "type": "string",
61
- "enum": [
62
- "texto_incompleto",
63
- "citacoes_imprecisas",
64
- "inconsistencia_logica",
65
- "falta_fundamentacao",
66
- "erro_processual",
67
- "contradicao_interna"
68
- ]
69
- }
70
- }
71
- }
72
- }
73
- }
74
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
specialists/__init__.py DELETED
@@ -1,25 +0,0 @@
1
- ##PARA.AI/specialists/__init__.py
2
- """
3
- Specialists Module - Especialistas V13.6 nativos
4
- DATA: 2026-01-16
5
- """
6
-
7
- from .specialist_segmentador import SpecialistSegmentador
8
- from .specialist_metadados import SpecialistMetadados
9
- from .specialist_classificador import SpecialistClassificador
10
- from .specialist_relatorio import SpecialistRelatorio
11
- from .specialist_fundamentacao import SpecialistFundamentacao
12
- from .specialist_dispositivo import SpecialistDispositivo
13
- from .specialist_arquivista import SpecialistArquivista
14
-
15
- __all__ = [
16
- 'SpecialistSegmentador',
17
- 'SpecialistMetadados',
18
- 'SpecialistClassificador',
19
- 'SpecialistRelatorio',
20
- 'SpecialistFundamentacao',
21
- 'SpecialistDispositivo',
22
- 'SpecialistArquivista'
23
- ]
24
-
25
- __version__ = "13.6.0"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
specialists/specialist_arquivista.py DELETED
@@ -1,45 +0,0 @@
1
- ##PARA.AI/specialists/specialist_arquivista.py
2
- """
3
- ESPECIALISTA 7: Arquivista
4
- FASE 5 - Análise meta-cognitiva e avaliação de qualidade
5
- """
6
- from typing import Dict, Any
7
- from core.base_specialist import BaseSpecialist
8
-
9
-
10
- class SpecialistArquivista(BaseSpecialist):
11
- """
12
- Especialista em análise meta-cognitiva
13
-
14
- RESPONSABILIDADE:
15
- - Avaliar grau de confiança do processamento
16
- - Analisar complexidade do caso
17
- - Avaliar relevância jurisprudencial
18
- - Identificar alertas de qualidade
19
- - Análise dialética das partes (arquétipos)
20
-
21
- INPUT: JSON COMPLETO de FASE 1-4
22
- OUTPUT: analise_arquivista {...}
23
- DEPENDÊNCIAS: FASE 4 COMPLETA (todos os especialistas anteriores)
24
- """
25
-
26
- def __init__(self, config_path: str, llm_manager, schema_validator=None):
27
- super().__init__(
28
- specialist_id=7,
29
- config_path=config_path,
30
- llm_manager=llm_manager,
31
- schema_validator=schema_validator
32
- )
33
-
34
- def _get_empty_structure(self) -> Dict[str, Any]:
35
- """Estrutura vazia em caso de falha total"""
36
- return {
37
- "analise_arquivista": {
38
- "grau_confianca": "baixa",
39
- "justificativa_confianca": None,
40
- "partes": [],
41
- "complexidade_caso": None,
42
- "relevancia_jurisprudencial": None,
43
- "alertas_qualidade": []
44
- }
45
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
specialists/specialist_classificador.py DELETED
@@ -1,42 +0,0 @@
1
- ##PARA.AI/specialists/specialist_classificador.py
2
- """
3
- ESPECIALISTA 3: Classificador
4
- FASE 3 - Classifica ramo do direito e assuntos
5
- """
6
- from typing import Dict, Any
7
- from core.base_specialist import BaseSpecialist
8
-
9
-
10
- class SpecialistClassificador(BaseSpecialist):
11
- """
12
- Especialista em classificação temática de acórdãos
13
-
14
- RESPONSABILIDADE:
15
- - Identificar ramo principal do direito
16
- - Atribuir relevância (0-100) ao ramo principal
17
- - Identificar ramos secundários (se houver)
18
-
19
- INPUT: ementa + metadados (de FASE 2)
20
- OUTPUT: classificacao_tematica
21
- DEPENDÊNCIAS: FASE 2 (Metadados)
22
- """
23
-
24
- def __init__(self, config_path: str, llm_manager, schema_validator=None):
25
- super().__init__(
26
- specialist_id=3,
27
- config_path=config_path,
28
- llm_manager=llm_manager,
29
- schema_validator=schema_validator
30
- )
31
-
32
- def _get_empty_structure(self) -> Dict[str, Any]:
33
- """Estrutura vazia em caso de falha total"""
34
- return {
35
- "classificacao_tematica": {
36
- "RAMO_EXPECIALIZACAO_DIREITO": {
37
- "descricao": "Outros",
38
- "relevancia_para_caso": 50
39
- },
40
- "ramos_secundarios": []
41
- }
42
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
specialists/specialist_dispositivo.py DELETED
@@ -1,44 +0,0 @@
1
- ##PARA.AI/specialists/specialist_dispositivo.py
2
- """
3
- ESPECIALISTA 6: Dispositivo
4
- FASE 4.3 - Extrai DECISÃO e resultado do julgamento
5
- """
6
- from typing import Dict, Any
7
- from core.base_specialist import BaseSpecialist
8
-
9
-
10
- class SpecialistDispositivo(BaseSpecialist):
11
- """
12
- Especialista em extração de decisões
13
-
14
- RESPONSABILIDADE:
15
- - Identificar resultado (PROVIDO, IMPROVIDO, etc)
16
- - Extrair mapa de pedidos (o que foi pedido vs concedido)
17
- - Identificar votação (unânime ou não)
18
- - Síntese da decisão
19
-
20
- INPUT: DISPOSITIVO_texto_completo + ementa + metadados
21
- OUTPUT: DECISAO {...}
22
- DEPENDÊNCIAS: FASE 1, 2
23
- EXECUTA EM: PARALELO (com Relatório e Fundamentação)
24
- """
25
-
26
- def __init__(self, config_path: str, llm_manager, schema_validator=None):
27
- super().__init__(
28
- specialist_id=6,
29
- config_path=config_path,
30
- llm_manager=llm_manager,
31
- schema_validator=schema_validator
32
- )
33
-
34
- def _get_empty_structure(self) -> Dict[str, Any]:
35
- """Estrutura vazia em caso de falha total"""
36
- return {
37
- "DECISAO": {
38
- "resultado": None,
39
- "sintese_decisao": None,
40
- "mapa_pedidos": [],
41
- "etiquetas_decisao": [],
42
- "votacao": None
43
- }
44
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
specialists/specialist_fundamentacao.py DELETED
@@ -1,42 +0,0 @@
1
- ##PARA.AI/specialists/specialist_fundamentacao.py
2
- """
3
- ESPECIALISTA 5: Fundamentação
4
- FASE 4.2 - Extrai teses do RELATOR da fundamentação
5
- """
6
- from typing import Dict, Any
7
- from core.base_specialist import BaseSpecialist
8
-
9
-
10
- class SpecialistFundamentacao(BaseSpecialist):
11
- """
12
- Especialista em extração de teses do RELATOR
13
-
14
- RESPONSABILIDADE:
15
- - Extrair argumentos jurídicos do relator
16
- - Identificar fundamentos legais (leis, jurisprudência, súmulas)
17
- - Gerar etiquetas semânticas
18
- - Síntese conectora da fundamentação
19
-
20
- INPUT: FUNDAMENTACAO_texto_completo + metadados
21
- OUTPUT: FUNDAMENTACAO {...}
22
- DEPENDÊNCIAS: FASE 1, 2
23
- EXECUTA EM: PARALELO (com Relatório e Dispositivo)
24
- """
25
-
26
- def __init__(self, config_path: str, llm_manager, schema_validator=None):
27
- super().__init__(
28
- specialist_id=5,
29
- config_path=config_path,
30
- llm_manager=llm_manager,
31
- schema_validator=schema_validator
32
- )
33
-
34
- def _get_empty_structure(self) -> Dict[str, Any]:
35
- """Estrutura vazia em caso de falha total"""
36
- return {
37
- "FUNDAMENTACAO": {
38
- "sintese_conectora_fundamentacao": None,
39
- "teses_relator": [],
40
- "etiquetas_fundamentacao": []
41
- }
42
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
specialists/specialist_metadados.py DELETED
@@ -1,52 +0,0 @@
1
- ##PARA.AI/specialists/specialist_metadados.py
2
- """
3
- ESPECIALISTA 2: Metadados
4
- FASE 2 - Extrai metadados estruturais do acórdão
5
- """
6
- from typing import Dict, Any
7
- from core.base_specialist import BaseSpecialist
8
-
9
-
10
- class SpecialistMetadados(BaseSpecialist):
11
- """
12
- Especialista em extração de metadados estruturais
13
-
14
- RESPONSABILIDADE:
15
- - Tribunal, órgão julgador, classe processual
16
- - Números de processo (formato CNJ)
17
- - Relator, data de julgamento, data de publicação
18
- - URL original
19
- - Hashes SHA-256
20
-
21
- INPUT: ementa + inteiro_teor + secoes_originais (de FASE 1)
22
- OUTPUT: metadados + hashes
23
- DEPENDÊNCIAS: FASE 1 (Segmentação)
24
- """
25
-
26
- def __init__(self, config_path: str, llm_manager, schema_validator=None):
27
- super().__init__(
28
- specialist_id=2,
29
- config_path=config_path,
30
- llm_manager=llm_manager,
31
- schema_validator=schema_validator
32
- )
33
-
34
- def _get_empty_structure(self) -> Dict[str, Any]:
35
- """Estrutura vazia em caso de falha total"""
36
- return {
37
- "metadados": {
38
- "tribunal": "TJPR",
39
- "orgao_julgador": None,
40
- "classe_processual": None,
41
- "numeros_processo": [],
42
- "relator": None,
43
- "data_julgamento": None,
44
- "data_publicacao": None,
45
- "url_original": None
46
- },
47
- "hashes": {
48
- "hash_numero_processo": None,
49
- "hash_ementa": None,
50
- "hash_inteiro_teor": None
51
- }
52
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
specialists/specialist_relatorio.py DELETED
@@ -1,43 +0,0 @@
1
- ##PARA.AI/specialists/specialist_relatorio.py
2
- """
3
- ESPECIALISTA 4: Relatório
4
- FASE 4.1 - Extrai teses das PARTES do relatório
5
- """
6
- from typing import Dict, Any
7
- from core.base_specialist import BaseSpecialist
8
-
9
-
10
- class SpecialistRelatorio(BaseSpecialist):
11
- """
12
- Especialista em extração de teses das PARTES
13
-
14
- RESPONSABILIDADE:
15
- - Extrair teses do autor/recorrente
16
- - Extrair teses do réu/recorrido
17
- - Identificar elementos factuais
18
- - Gerar etiquetas semânticas (#tags)
19
- - Síntese conectora narrativa (máx 80 chars)
20
-
21
- INPUT: RELATORIO_texto_completo + metadados + classificacao
22
- OUTPUT: RELATORIO {...}
23
- DEPENDÊNCIAS: FASE 1, 2, 3
24
- EXECUTA EM: PARALELO (com Fundamentação e Dispositivo)
25
- """
26
-
27
- def __init__(self, config_path: str, llm_manager, schema_validator=None):
28
- super().__init__(
29
- specialist_id=4,
30
- config_path=config_path,
31
- llm_manager=llm_manager,
32
- schema_validator=schema_validator
33
- )
34
-
35
- def _get_empty_structure(self) -> Dict[str, Any]:
36
- """Estrutura vazia em caso de falha total"""
37
- return {
38
- "RELATORIO": {
39
- "sintese_conectora_narrativa": None,
40
- "teses_fragmentadas": [],
41
- "etiquetas_relatorio": []
42
- }
43
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
specialists/specialist_segmentador.py DELETED
@@ -1,42 +0,0 @@
1
- ##PARA.AI/specialists/specialist_segmentador.py
2
- """
3
- ESPECIALISTA 1: Segmentador
4
- FASE 1 - Segmenta inteiro teor em RELATÓRIO + FUNDAMENTAÇÃO + DISPOSITIVO
5
- """
6
- from typing import Dict, Any
7
- from core.base_specialist import BaseSpecialist
8
-
9
-
10
- class SpecialistSegmentador(BaseSpecialist):
11
- """
12
- Especialista em segmentação tripartite de acórdãos
13
-
14
- RESPONSABILIDADE:
15
- - Identificar onde começa/termina RELATÓRIO
16
- - Identificar onde começa/termina FUNDAMENTAÇÃO
17
- - Identificar onde começa/termina DISPOSITIVO
18
-
19
- INPUT: inteiro_teor_bruto (texto completo)
20
- OUTPUT: 3 campos de texto segmentados
21
- DEPENDÊNCIAS: NENHUMA (é o primeiro)
22
- """
23
-
24
- def __init__(self, config_path: str, llm_manager, schema_validator=None):
25
- super().__init__(
26
- specialist_id=1,
27
- config_path=config_path,
28
- llm_manager=llm_manager,
29
- schema_validator=schema_validator
30
- )
31
-
32
- def _get_empty_structure(self) -> Dict[str, Any]:
33
- """Estrutura vazia em caso de falha total"""
34
- return {
35
- "secoes_originais": {
36
- "ementa": None,
37
- "RELATORIO_texto_completo": None,
38
- "FUNDAMENTACAO_texto_completo": None,
39
- "DISPOSITIVO_texto_completo": None,
40
- "inteiro_teor_bruto": None
41
- }
42
- }