Spaces:
Runtime error
Runtime error
Revert "ParaAIV3.1"
Browse filesThis reverts commit 6637d41762c1fe646f92b237983362062e2ce54e.
- config/specialists_v13_6.yaml +0 -104
- prompts/fase1_segmentador.txt +0 -25
- prompts/fase2_metadados.txt +0 -36
- prompts/fase3_classificador.txt +0 -44
- prompts/fase4_dispositivo.txt +0 -50
- prompts/fase4_fundamentacao.txt +0 -45
- prompts/fase4_relatorio.txt +0 -41
- prompts/fase5_arquivista.txt +0 -34
- schemas/protocolo_v13_6_schema.json +0 -0
- schemas/specialist_schemas/fase1_segmentacao.json +0 -33
- schemas/specialist_schemas/fase2_metadados.json +0 -70
- schemas/specialist_schemas/fase3_classificacao.json +0 -67
- schemas/specialist_schemas/fase4_dispositivo.json +0 -103
- schemas/specialist_schemas/fase4_fundamentacao.json +0 -92
- schemas/specialist_schemas/fase4_relatorio.json +0 -81
- schemas/specialist_schemas/fase5_arquivista.json +0 -74
- specialists/__init__.py +0 -25
- specialists/specialist_arquivista.py +0 -45
- specialists/specialist_classificador.py +0 -42
- specialists/specialist_dispositivo.py +0 -44
- specialists/specialist_fundamentacao.py +0 -42
- specialists/specialist_metadados.py +0 -52
- specialists/specialist_relatorio.py +0 -43
- specialists/specialist_segmentador.py +0 -42
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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|