Spaces:
Runtime error
Runtime error
| ##PARA.AI/processors/processor_manager.py | |
| """ | |
| Processor Manager - REFATORADO para V13.6 | |
| Wrapper para manter compatibilidade com código existente | |
| """ | |
| import logging | |
| import yaml | |
| from typing import Dict, Any, List, Optional | |
| from core.orchestrator import PipelineOrchestrator | |
| from core.validator import SchemaValidator | |
| # Importar especialistas V13.1 (migração gradual) | |
| from processors.processor_metadados import ProcessorMetadados | |
| from processors.processor_segmentacao import ProcessorSegmentacao | |
| from processors.processor_relatorio import ProcessorRelatorio | |
| from processors.processor_fundamentacao import ProcessorFundamentacao | |
| from processors.processor_decisao import ProcessorDecisao | |
| from processors.processor_arquivo import ProcessorArquivo | |
| from processors.processor_contexto import ProcessorContexto | |
| logger = logging.getLogger(__name__) | |
| class ProcessorManager: | |
| """Wrapper para PipelineOrchestrator V13.6""" | |
| def __init__(self, llm_manager, max_workers: int = 3): | |
| self.llm_manager = llm_manager | |
| self.max_workers = max_workers | |
| # Carregar config | |
| with open('config/pipeline_config.yaml', 'r', encoding='utf-8') as f: | |
| self.pipeline_config = yaml.safe_load(f) | |
| # Inicializar especialistas (mapeamento V13.1) | |
| self.specialists = { | |
| 1: ProcessorSegmentacao(llm_manager), | |
| 2: ProcessorMetadados(llm_manager), | |
| 3: ProcessorContexto(llm_manager), | |
| 4: ProcessorRelatorio(llm_manager), | |
| 5: ProcessorFundamentacao(llm_manager), | |
| 6: ProcessorDecisao(llm_manager), | |
| 7: ProcessorArquivo(llm_manager), | |
| } | |
| # Inicializar orquestrador V13.6 | |
| self.orchestrator = PipelineOrchestrator( | |
| config=self.pipeline_config, | |
| llm_manager=llm_manager, | |
| specialists=self.specialists | |
| ) | |
| logger.info(f"✅ ProcessorManager V13.6: {len(self.specialists)} especialistas") | |
| async def process_acordao_sequential( | |
| self, | |
| acordao_data: Dict[str, Any], | |
| specialist_ids: Optional[List[int]] = None | |
| ) -> Dict[str, Any]: | |
| """Compatibilidade V13.1""" | |
| if specialist_ids: | |
| fase_inicial = min(specialist_ids) | |
| fase_final = max(specialist_ids) | |
| else: | |
| fase_inicial = 1 | |
| fase_final = 6 | |
| return await self.orchestrator.process_acordao( | |
| acordao_bruto=acordao_data, | |
| fase_inicial=fase_inicial, | |
| fase_final=fase_final | |
| ) | |
| async def process_acordao_parallel( | |
| self, | |
| acordao_data: Dict[str, Any], | |
| specialist_ids: Optional[List[int]] = None | |
| ) -> Dict[str, Any]: | |
| """Compatibilidade V13.1""" | |
| return await self.orchestrator.process_acordao( | |
| acordao_bruto=acordao_data, | |
| fase_inicial=1, | |
| fase_final=6 | |
| ) | |
| def get_processor(self, specialist_id: int): | |
| return self.specialists.get(specialist_id) | |
| def get_all_processors(self) -> Dict[int, Any]: | |
| return self.specialists | |
| def get_processors_info(self) -> Dict[str, Any]: | |
| return self.orchestrator.get_pipeline_status() | |