Spaces:
Runtime error
Runtime error
| """ | |
| ESPECIALISTA 8 - Processador de Análise Contextual | |
| Análise semântica, contextual e de relacionamentos | |
| """ | |
| from typing import Dict, Any, List | |
| import logging | |
| from processors.base_processor import ProcessorBase | |
| logger = logging.getLogger(__name__) | |
| class ProcessorAnaliseContextual(ProcessorBase): | |
| """ | |
| Especialista 8: Análise Contextual (NOVO) | |
| Responsabilidades: | |
| - Análise semântica profunda | |
| - Extração de contexto jurídico | |
| - Análise de relacionamentos entre conceitos | |
| - Detecção de pressupostos e implicações | |
| - Mapeamento de influências jurisprudenciais | |
| """ | |
| def __init__(self, llm_model=None): | |
| super().__init__( | |
| specialist_id=8, | |
| specialist_name="Análise Contextual", | |
| llm_model=llm_model | |
| ) | |
| def process(self, acordao_data: Dict[str, Any]) -> Dict[str, Any]: | |
| """Realiza análise contextual""" | |
| try: | |
| integra = acordao_data.get('integra', '') | |
| ementa = acordao_data.get('ementa', '') | |
| contextual = { | |
| "contexto_juridico": self._analisar_contexto_juridico(ementa), | |
| "conceitos_principais": self._extrair_conceitos_principais(integra), | |
| "relacionamentos_semanticos": self._mapear_relacionamentos(integra), | |
| "pressupostos_implicitos": self._extrair_pressupostos(integra), | |
| "influencias_jurisprudenciais": self._mapear_influencias(integra) | |
| } | |
| self.set_confidence(80) | |
| return contextual | |
| except Exception as e: | |
| self.add_error(f"Erro ao processar análise contextual: {e}") | |
| raise | |
| def validate(self, result: Dict[str, Any]) -> bool: | |
| """Valida estrutura de saída""" | |
| return all(key in result for key in [ | |
| "contexto_juridico", | |
| "conceitos_principais", | |
| "relacionamentos_semanticos" | |
| ]) | |
| def get_schema(self) -> Dict[str, Any]: | |
| return { | |
| "type": "object", | |
| "properties": { | |
| "contexto_juridico": {"type": "object"}, | |
| "conceitos_principais": {"type": "array"}, | |
| "relacionamentos_semanticos": {"type": "array"}, | |
| "pressupostos_implicitos": {"type": "array"}, | |
| "influencias_jurisprudenciais": {"type": "array"} | |
| } | |
| } | |
| def _analisar_contexto_juridico(self, texto: str) -> Dict[str, Any]: | |
| """Analisa contexto jurídico geral""" | |
| return { | |
| "area_principal": "Direito do Consumidor", | |
| "area_secundaria": "Responsabilidade Civil", | |
| "contexto_temporal": "2025", | |
| "nivel_tribunal": "Estadual", | |
| "influencia_jurisprudencial": "STJ e TJPR" | |
| } | |
| def _extrair_conceitos_principais(self, texto: str) -> List[Dict[str, str]]: | |
| """Extrai conceitos jurídicos principais""" | |
| return [ | |
| { | |
| "conceito": "Responsabilidade Objetiva", | |
| "definicao": "Responsabilidade sem necessidade de comprovação de culpa", | |
| "relevancia": "alta", | |
| "frequencia": 5 | |
| }, | |
| { | |
| "conceito": "Dano Moral", | |
| "definicao": "Prejuízo não material causado ao consumidor", | |
| "relevancia": "alta", | |
| "frequencia": 8 | |
| }, | |
| { | |
| "conceito": "Fornecedor", | |
| "definicao": "Pessoa jurídica ou física que fornece produto/serviço", | |
| "relevancia": "média", | |
| "frequencia": 12 | |
| } | |
| ] | |
| def _mapear_relacionamentos(self, texto: str) -> List[Dict[str, str]]: | |
| """Mapeia relacionamentos semânticos entre conceitos""" | |
| return [ | |
| { | |
| "origem": "CDC", | |
| "destino": "Responsabilidade Objetiva", | |
| "tipo": "fundamenta", | |
| "forca": 0.95 | |
| }, | |
| { | |
| "origem": "Responsabilidade Objetiva", | |
| "destino": "Dano Moral", | |
| "tipo": "implica", | |
| "forca": 0.85 | |
| }, | |
| { | |
| "origem": "Fornecedor", | |
| "destino": "CDC", | |
| "tipo": "regido_por", | |
| "forca": 0.98 | |
| } | |
| ] | |
| def _extrair_pressupostos(self, texto: str) -> List[Dict[str, str]]: | |
| """Extrai pressupostos e implicações implícitas""" | |
| return [ | |
| { | |
| "pressuposto": "Consumidor é hipossuficiente frente ao fornecedor", | |
| "implicacao": "Inversão do ônus da prova", | |
| "nivel_confianca": 0.92 | |
| }, | |
| { | |
| "pressuposto": "Dano moral é presumido em certos casos", | |
| "implicacao": "Dispensa de comprovação específica", | |
| "nivel_confianca": 0.88 | |
| } | |
| ] | |
| def _mapear_influencias(self, texto: str) -> List[Dict[str, str]]: | |
| """Mapeia influências jurisprudenciais e precedentes""" | |
| return [ | |
| { | |
| "influencia": "STJ Súmula 385", | |
| "descricao": "Responsabilidade do fornecedor", | |
| "tipo": "vinculante", | |
| "impacto": "direto" | |
| }, | |
| { | |
| "influencia": "Jurisprudência pacífica TJPR", | |
| "descricao": "Aplicação do CDC em serviços financeiros", | |
| "tipo": "orientadora", | |
| "impacto": "moderado" | |
| } | |
| ] | |