PARA.AI / api /routers /processors.py
Carlex22's picture
Revert "ParaAIV3.1"
1f24745
"""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
}