Spaces:
Sleeping
Sleeping
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')
)
|