process method
Processes a raw input string and returns a Perception.
This is Stage 1 of the perceptual pipeline.
Implementation
Perception process(
String input, {
required PerceptionModality modality,
String? id,
double confidence = 1.0,
Map<String, dynamic>? contextData,
}) {
final features = _extractor.extract(input);
final valence = _extractor.detectEmotionalValence(features.emotionalCues);
final intensity = _extractor.estimateEmotionalIntensity(input);
final featureMap = {
...features.toProperties(),
'emotional_valence': valence.name,
'emotional_intensity': intensity,
if (contextData != null) ...contextData,
};
final perception = Perception(
id: id ?? const Uuid().v4(),
rawInput: input,
modality: modality,
confidence: confidence,
features: featureMap,
);
_buffer.add(perception);
_logger.debug(
'Processed [${modality.name}]: "${_trunc(input)}" '
'(entities: ${features.entities.length}, '
'emotional: ${valence.name})');
return perception;
}