caarleexx commited on
Commit
124d299
·
verified ·
1 Parent(s): 8b10e33

Create api/services/processing_service.py

Browse files
Files changed (1) hide show
  1. api/services/processing_service.py +74 -0
api/services/processing_service.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Router de testes de processadores"""
2
+ from fastapi import APIRouter, HTTPException
3
+ from api.models.requests import ProcessorTestRequest
4
+ from api.models.responses import ProcessorTestResponse
5
+ from api.utils.logger import setup_logger
6
+ import time
7
+
8
+ router = APIRouter()
9
+ logger = setup_logger(__name__)
10
+
11
+ @router.post("/run", response_model=ProcessorTestResponse)
12
+ async def test_processor(request: ProcessorTestRequest):
13
+ """Testa um processador específico."""
14
+ start_time = time.time()
15
+
16
+ try:
17
+ # Importar processador
18
+ processor_map = {
19
+ "1": "processor_metadados",
20
+ "2": "processor_relatorio",
21
+ "metadados": "processor_metadados",
22
+ "relatorio": "processor_relatorio"
23
+ }
24
+
25
+ processor_name = processor_map.get(request.processor_name, request.processor_name)
26
+
27
+ from processors import base_processor
28
+ processor = base_processor.get_processor(processor_name)
29
+
30
+ # Processar
31
+ result = await processor.process(
32
+ ementa=request.ementa,
33
+ integra=request.integra,
34
+ tribunal=request.tribunal
35
+ )
36
+
37
+ duration_ms = (time.time() - start_time) * 1000
38
+
39
+ return ProcessorTestResponse(
40
+ processor_name=processor_name,
41
+ success=True,
42
+ result=result,
43
+ duration_ms=duration_ms
44
+ )
45
+
46
+ except Exception as e:
47
+ duration_ms = (time.time() - start_time) * 1000
48
+ logger.error(f"Processor test error: {e}")
49
+
50
+ return ProcessorTestResponse(
51
+ processor_name=request.processor_name,
52
+ success=False,
53
+ duration_ms=duration_ms,
54
+ error=str(e)
55
+ )
56
+
57
+ @router.get("/list")
58
+ async def list_processors():
59
+ """Lista processadores disponíveis."""
60
+ return {
61
+ "processors": [
62
+ {"id": 1, "name": "Metadados"},
63
+ {"id": 2, "name": "Relatório"},
64
+ {"id": 3, "name": "Fundamentação"},
65
+ {"id": 4, "name": "Decisão"},
66
+ {"id": 5, "name": "Auditoria"},
67
+ {"id": 6, "name": "Arquivo Relacional"},
68
+ {"id": 7, "name": "Segmentação Sintática"},
69
+ {"id": 8, "name": "Análise Contextual"},
70
+ {"id": 9, "name": "Transcrição 3-Partite"}
71
+ ],
72
+ "total": 9
73
+ }
74
+