File size: 2,399 Bytes
f898d34
 
87f22e8
f898d34
 
 
 
 
 
 
 
 
 
 
87f22e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f898d34
 
87f22e8
 
 
f898d34
 
 
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
53
54
55
56
57
58
59
60
61
62
63
from typing import Dict, Any
from .integration_manager import AwarenessState, AwarenessLevel
import numpy as np

def create_awareness_state_from_dict(awareness_dict: Dict[str, Any]) -> AwarenessState:
    """
    Create an AwarenessState object from a dictionary.

    Args:
        awareness_dict: Dictionary containing awareness state attributes

    Returns:
        AwarenessState object
    """
    # Na integration_manager.py, os níveis disponíveis são:
    # UNCONSCIOUS, SUBCONSCIOUS, CONSCIOUS, SELF_AWARE, TRANSCENDENT

    # Extract level - lidando com diferentes formatos possíveis
    level_value = None
    if 'level' in awareness_dict:
        level = awareness_dict['level']
        if isinstance(level, AwarenessLevel):
            level_value = level
        elif hasattr(level, 'value') and isinstance(level.value, int):
            # Para casos onde level é um enum de states.py
            # Mapeando baseado no valor ordinal
            ordinal = level.value
            if ordinal <= 1:
                level_value = AwarenessLevel.UNCONSCIOUS
            elif ordinal == 2:
                level_value = AwarenessLevel.SUBCONSCIOUS
            elif ordinal == 3:
                level_value = AwarenessLevel.CONSCIOUS
            elif ordinal == 4:
                level_value = AwarenessLevel.SELF_AWARE
            else:
                level_value = AwarenessLevel.TRANSCENDENT

    # Se não conseguimos determinar o nível, use o padrão
    if level_value is None:
        level_value = AwarenessLevel.UNCONSCIOUS

    # Mapeie cognitive_state para cognition_state se necessário
    cognition_state = awareness_dict.get('cognition_state', {})
    if not cognition_state and 'cognitive_state' in awareness_dict:
        cognition_state = awareness_dict['cognitive_state']

    # Mapeie perception_data se estiver faltando
    perception_data = awareness_dict.get('perception_data', {})

    # Garanta que emotional_valence esteja presente
    emotional_valence = awareness_dict.get('emotional_valence', 0.0)

    # Crie o objeto AwarenessState
    return AwarenessState(
        level=level_value,
        perception_data=perception_data,
        cognition_state=cognition_state,
        emotional_valence=emotional_valence,
        semantic_context=awareness_dict.get('semantic_context'),
        temporal_awareness=awareness_dict.get('temporal_awareness')
    )