Spaces:
Runtime error
Runtime error
| """ | |
| ESPECIALISTA 3 - Processador de Fundamentação | |
| Análise de fundamentação legal e precedentes | |
| """ | |
| from typing import Dict, Any, List | |
| import logging | |
| from processors.base_processor import ProcessorBase | |
| logger = logging.getLogger(__name__) | |
| class ProcessorFundamentacao(ProcessorBase): | |
| """ | |
| Especialista 3: Análise de Fundamentação | |
| Responsabilidades: | |
| - Extração de teses do relator | |
| - Identificação de fundamentos legais (leis, súmulas, jurisprudência) | |
| - Análise de citações jurisprudenciais | |
| - Mapeamento de causalidade com mérito | |
| - Identificação de temas omitidos | |
| """ | |
| def __init__(self, llm_model=None): | |
| super().__init__( | |
| specialist_id=3, | |
| specialist_name="Fundamentação", | |
| llm_model=llm_model | |
| ) | |
| def process(self, acordao_data: Dict[str, Any]) -> Dict[str, Any]: | |
| """Analisa fundamentação legal""" | |
| try: | |
| integra = acordao_data.get('integra', '') | |
| fundamentacao = { | |
| "teses_relator": self._extrair_teses_relator(integra), | |
| "temas_nao_conhecidos_omitidos": self._extrair_temas_omitidos(integra) | |
| } | |
| self.set_confidence(88) | |
| return fundamentacao | |
| except Exception as e: | |
| self.add_error(f"Erro ao processar fundamentação: {e}") | |
| raise | |
| def validate(self, result: Dict[str, Any]) -> bool: | |
| """Valida estrutura de saída""" | |
| return all(key in result for key in [ | |
| "teses_relator", | |
| "temas_nao_conhecidos_omitidos" | |
| ]) | |
| def get_schema(self) -> Dict[str, Any]: | |
| return { | |
| "type": "object", | |
| "properties": { | |
| "teses_relator": {"type": "array", "items": {"type": "object"}}, | |
| "temas_nao_conhecidos_omitidos": {"type": "array"} | |
| } | |
| } | |
| def _extrair_teses_relator(self, texto: str) -> List[Dict[str, Any]]: | |
| """Extrai teses do relator com fundamentos legais""" | |
| teses = [ | |
| { | |
| "nucleo_logico_argumentativo": "Aplicação do CDC art. 14 para responsabilidade objetiva", | |
| "fundamentos_legal": [ | |
| { | |
| "tipo": "lei", | |
| "citacao_fonte": "CDC art. 14", | |
| "resumo_transcricao": "Responsabilidade objetiva do fornecedor por defeito na prestação de serviço" | |
| }, | |
| { | |
| "tipo": "jurisprudencia", | |
| "citacao_fonte": "STJ Súmula 385", | |
| "resumo_transcricao": "Da responsabilidade civil do farmacêutico" | |
| } | |
| ], | |
| "confianca_llm": 90, | |
| "causalidade_merito": ["defeito_servico", "dano_consumidor"] | |
| } | |
| ] | |
| return teses | |
| def _extrair_temas_omitidos(self, texto: str) -> List[str]: | |
| """Identifica temas jurídicos não abordados""" | |
| return [ | |
| "Análise de prescrição", | |
| "Aplicação do TPRF" | |
| ] | |