File size: 3,750 Bytes
be99550
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
// πŸ’– 인간 감정 닀차원 ν•™μŠ΅ 및 감성 물리 동역학 μœ΅ν•© μ—”μ§„ (src/bin/run_emotion_learning.rs)
#[path="../emotion_engine.rs"] mod emotion_engine;
#[path="../korean_telemetry.rs"] mod korean_telemetry;
#[path="../parallel_engine.rs"] mod parallel_engine;

use std::time::Instant;
use emotion_engine::EmotionIntelligenceEngine;
use parallel_engine::LargeScaleEngine;
use korean_telemetry::TelemetryReporter;

fn main() {
    println!("============================================================");
    println!(" πŸ’– [BioPhys] 인간 감정 닀차원 ν•™μŠ΅ & 감성 μ»΄ν“¨νŒ… μ‹€μΈ‘ μ—”μ§„");
    println!("============================================================\n");

    let emotion_engine = EmotionIntelligenceEngine::new();
    let mut physical_engine = LargeScaleEngine::new(256);

    let emotion_scenarios = [
        ("μŠ¬ν””/상싀", "μ˜€λž«λ™μ•ˆ ν•¨κ»˜ν•œ μ†Œμ€‘ν•œ λ°˜λ €λ™λ¬Όμ„ λ– λ‚˜λ³΄λ‚΄κ³  마음이 λ„ˆλ¬΄ μ°’μ–΄μ§ˆ λ“― μ•„νŒŒ"),
        ("λΆˆμ•ˆ/곡포", "μ€‘μš”ν•œ λ°œν‘œλ₯Ό μ•žλ‘κ³  심μž₯이 ν„°μ§ˆ 것 κ°™κ³  망칠까 봐 λ„ˆλ¬΄ λ‘λ €μ›Œ"),
        ("기쁨/μ„±μ·¨", "μ˜€λž«λ™μ•ˆ λ°€μƒˆλ©° μ€€λΉ„ν–ˆλ˜ μ‹œν—˜μ— λ§ˆμΉ¨λ‚΄ ν•©κ²©ν–ˆμ–΄! λ„ˆλ¬΄ 행볡해!"),
        ("λΆ„λ…Έ/쒌절", "아무리 μ—΄μ‹¬νžˆ λ°€μƒˆμ›Œ 일해도 인정받지 λͺ»ν•˜κ³  λ¬΄μ‹œλ‹Ήν•΄μ„œ λ„ˆλ¬΄ μ–΅μšΈν•˜κ³  ν™”κ°€ λ‚˜"),
    ];

    for (label, user_input) in &emotion_scenarios {
        println!("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
        println!("πŸ’¬ [감정 상황: {}]", label);
        println!("πŸ‘€ [μ‚¬μš©μž λ°œν™”]: \"{}\"", user_input);
        println!("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");

        let t_start = Instant::now();
        let (entry, valence, arousal) = emotion_engine.analyze_emotion(user_input);

        // κ°μ •μ˜ μ •μ„œκ°€(Valence)와 각성도(Arousal)λ₯Ό 256x256 물리 κ²©μžμ— μ£Όμž…
        // Valence > 0 βž” ν₯λΆ„μ„± 상전이, Valence < 0 βž” μ–΅μ œμ„± 수렴, Arousal βž” μ—λ„ˆμ§€ 진폭
        for b in physical_engine.bedrock.iter_mut() {
            *b = (*b * 0.3) + (valence * arousal * 0.7);
        }
        let avg_e = physical_engine.step_parallel();
        let sample: Vec<f32> = physical_engine.topsoil[0..1000].iter().map(|p| p.value()).collect();
        let telemetry = TelemetryReporter::analyze(&sample, avg_e, 3);
        let dur = t_start.elapsed().as_secs_f64() * 1000.0;

        println!("🧠 [μ •μ„œ 닀차원 뢄석]");
        println!("   β”œβ”€ μ •μ„œκ°€ (Valence)  : {:+4.2} ({})", valence, if valence > 0.0 { "긍정 μ •μ„œ" } else { "λΆ€μ • μ •μ„œ" });
        println!("   β”œβ”€ 각성도 (Arousal)  : {:4.2} ({})", arousal, if arousal > 0.6 { "고각성 μƒνƒœ" } else { "저각성 μƒνƒœ" });
        println!("   └─ 심리학적 기제     : {}", entry.psychological_meaning);
        println!();
        println!("πŸ’Œ [μ§„μ •μ„± μžˆλŠ” 감성 곡감 ν™”λ‹΅]");
        println!("   \"{}\"", entry.empathetic_response);
        println!();
        println!("⚑ [감정 μ£Όμž… ν›„ λ³΅μž‘κ³„ 물리 μƒνƒœ]");
        print!("{}", telemetry);
        println!("⏱️ 감정 λ””μ½”λ”© 및 물리 ν…”λ ˆλ©”νŠΈλ¦¬ μ—°μ‚° μ‹œκ°„: {:.3} ms\n", dur);
    }

    println!("============================================================");
    println!(" βœ… 인간 4λŒ€ 핡심 감정 μŠ€νŽ™νŠΈλŸΌ(희·노·애·ꡬ) 닀차원 ν•™μŠ΅ 및 μ‹€μΈ‘ μ™„λ£Œ");
    println!("============================================================\n");
}