File size: 1,625 Bytes
f1e8dc8
 
a7f77a7
f1e8dc8
 
 
 
2b9d72c
f1e8dc8
 
 
2b9d72c
f1e8dc8
 
 
2b9d72c
 
 
 
 
 
 
f1e8dc8
 
 
 
 
 
 
2b9d72c
f1e8dc8
 
 
 
 
 
 
 
 
 
 
a7f77a7
f1e8dc8
 
 
2b9d72c
f1e8dc8
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
##PARA.AI/core/context_builder.py
"""
Context Builder - Constr贸i contexto para context injection V13.6
"""
import logging
from typing import Dict, Any, Optional

logger = logging.getLogger(__name__)


class ContextBuilder:
    """Constr贸i contexto para cada especialista"""

    def __init__(self):
        self.context_rules = {
            1: [],
            2: ['secoes_originais'],
            3: ['metadados'],
            4: ['metadados', 'classificacao_tematica', 'secoes_originais'],
            5: ['metadados', 'classificacao_tematica', 'secoes_originais'],
            6: ['metadados', 'secoes_originais'],
            7: ['metadados', 'classificacao_tematica', 'RELATORIO', 'FUNDAMENTACAO', 'DECISAO']
        }

    def build_context(
        self, 
        current_result: Dict[str, Any],
        specialist_id: int
    ) -> Optional[Dict[str, Any]]:
        """Constr贸i contexto para um especialista espec铆fico"""
        if specialist_id not in self.context_rules:
            return None

        fields_needed = self.context_rules[specialist_id]
        if not fields_needed:
            return None

        context = {}
        for field in fields_needed:
            if field in current_result:
                context[field] = current_result[field]

        return context if context else None

    def add_context_rule(self, specialist_id: int, fields: list):
        """Adiciona/modifica regra de contexto"""
        self.context_rules[specialist_id] = fields

    def get_context_rules(self) -> Dict[int, list]:
        """Retorna todas as regras de contexto"""
        return self.context_rules