"""Router de testes de processadores""" from fastapi import APIRouter, HTTPException from api.models.requests import ProcessorTestRequest from api.models.responses import ProcessorTestResponse from api.utils.logger import setup_logger import time router = APIRouter() logger = setup_logger(__name__) @router.post("/run", response_model=ProcessorTestResponse) async def test_processor(request: ProcessorTestRequest): """Testa um processador específico.""" start_time = time.time() try: # Importar processador processor_map = { "1": "processor_metadados", "2": "processor_relatorio", "metadados": "processor_metadados", "relatorio": "processor_relatorio" } processor_name = processor_map.get(request.processor_name, request.processor_name) from processors import processor_base processor = processor_base.get_processor(processor_name) # Processar result = await processor.process( ementa=request.ementa, integra=request.integra, tribunal=request.tribunal ) duration_ms = (time.time() - start_time) * 1000 return ProcessorTestResponse( processor_name=processor_name, success=True, result=result, duration_ms=duration_ms ) except Exception as e: duration_ms = (time.time() - start_time) * 1000 logger.error(f"Processor test error: {e}") return ProcessorTestResponse( processor_name=request.processor_name, success=False, duration_ms=duration_ms, error=str(e) ) @router.get("/list") async def list_processors(): """Lista processadores disponíveis.""" return { "processors": [ {"id": 1, "name": "Metadados"}, {"id": 2, "name": "Relatório"}, {"id": 3, "name": "Fundamentação"}, {"id": 4, "name": "Decisão"}, {"id": 5, "name": "Auditoria"}, {"id": 6, "name": "Arquivo Relacional"}, {"id": 7, "name": "Segmentação Sintática"}, {"id": 8, "name": "Análise Contextual"}, {"id": 9, "name": "Transcrição 3-Partite"} ], "total": 9 }