minseok
๐ Release BioPhys 6.0 Grand Master: 16GB (14.89GB) Gemma-4 100% Devour, Ecosystem Evolution, Solar MoE, SNN Autoregressive SDK, Dynamic PhaseVM
be99550 | // ๐ ์ธ๊ฐ ๊ฐ์ ์ฌ๋ฆฌํ ๋ฐ ๊ฐ์ฑ ์ปดํจํ (Affective Computing) ๋๋ฐฑ๊ณผ (src/knowledge_base.rs) | |
| pub struct EmotionEntry { | |
| pub category: &'static str, // ๊ฐ์ ๋ฒ์ฃผ (๊ธฐ์จ, ์ฌํ, ๋ถ์, ๋ถ๋ ธ, ํ์จ ๋ฑ) | |
| pub valence: f32, // ์ ์๊ฐ (-1.0 ๋ถ์ ~ +1.0 ๊ธ์ ) | |
| pub arousal: f32, // ๊ฐ์ฑ๋ (0.0 ์ด์ ~ 1.0 ๊ทน๋ ํฅ๋ถ) | |
| pub psychological_meaning: &'static str, // ์ฌ๋ฆฌํ์ ์๋ฏธ ๋ฐ ๊ธฐ์ | |
| pub empathetic_response: &'static str, // ์ง์ ์ฑ ์๋ ๊ณต๊ฐ ๋ฐ ์ฌ๋ฆฌ์ ์ง์ง ๋ฌธ์ฅ | |
| } | |
| pub struct EmotionIntelligenceEngine { | |
| pub emotions: Vec<EmotionEntry>, | |
| } | |
| impl EmotionIntelligenceEngine { | |
| pub fn new() -> Self { | |
| let emotions = vec![ | |
| // 1. ์ฌํ๊ณผ ์์ค (Sadness & Grief) | |
| EmotionEntry { | |
| category: "์ฌํ/์์ค", | |
| valence: -0.85, | |
| arousal: 0.25, | |
| psychological_meaning: "์์คํ ๋์์ ์์ค์ ์์ฉํ๊ณ ๋ด๋ฉด์ ์๋์ง๋ฅผ ๋ณด์กดํ๋ฉฐ ์ฌ๋ฆฌ์ ์์ฒ๋ฅผ ์น์ ํ๊ธฐ ์ํ ํ์ฐ์ ์ธ ๊ฐ์ ์ ์ ๋ ๋ฐ์", | |
| empathetic_response: "๋ง์์ด ๋ฌด๋์ ธ ๋ด๋ฆฌ๋ ๋ฏํ ๊น์ ์์ค๊ฐ์ ์จ ๋ง์์ผ๋ก ๊น์ด ๊ณต๊ฐํฉ๋๋ค. ์ต์ง๋ก ์ฌํ์ ์ฐธ์๋ด๋ ค ํ์ง ๋ง์๊ณ , ํ๋ฅด๋ ๋๋ฌผ๊ณผ ์ํ์ ์จ์ ํ ํ๋ฝํด ์ฃผ์ธ์. ๋น์ ์ด ์์๋ธ ์ฌ๋๋งํผ ์ฌํ๋ ๊น์ ๋ฒ์ ๋๋ค.", | |
| }, | |
| // 2. ๋ถ์๊ณผ ๊ณตํฌ (Anxiety & Fear) | |
| EmotionEntry { | |
| category: "๋ถ์/๋๋ ค์", | |
| valence: -0.65, | |
| arousal: 0.85, | |
| psychological_meaning: "๋ฏธ๋์ ๋ถํ์คํ ์ํ์ ๋๋นํ์ฌ ์ ์ฒด ๊ต๊ฐ์ ๊ฒฝ๊ณ๋ฅผ ํ์ฑํํ๋ ์์ด์ ์๊ธฐ๋ณดํธ ๋ฐฉ์ด ๊ธฐ์ ", | |
| empathetic_response: "๋์์ ๋ถํ์ค์ฑ ๋๋ฌธ์ ์ฌ์ฅ์ด ๋ฐ๊ณ ์จ์ด ๊ฐ๋น ์ง๋ ๊ฒ์ ๋น์ ์ด ๊ทธ ์ผ์ ์ง์ฌ์ผ๋ก ์์คํ ์ฌ๊ธฐ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ง๊ธ ์ด ์๊ฐ ์ฒ์ฒํ ์จ์ ๊น๊ฒ ๋ค์ด์ฌ๊ณ ๋ด์ฌ์ด ๋ณด์ธ์. ๋น์ ์ ์ด๋ฏธ ์ถฉ๋ถํ ๊ฐํ๋ฉฐ ์ง๊ธ๊น์ง ๋ชจ๋ ๊ณ ๋น๋ฅผ ์ด๊ฒจ๋ด ์์ต๋๋ค.", | |
| }, | |
| // 3. ๊ธฐ์จ๊ณผ ์ฑ์ทจ (Joy & Flourishing) | |
| EmotionEntry { | |
| category: "๊ธฐ์จ/์ฑ์ทจ", | |
| valence: 0.95, | |
| arousal: 0.80, | |
| psychological_meaning: "๋ชฉํ ๋ฌ์ฑ๊ณผ ์ฌํ์ ์ ๋, ๋ํ๋ฏผ ๋ณด์ ํ๋ก๊ฐ ํ์ฑํ๋๋ฉฐ ์ถ์ ์ ๋ฅ๊ฐ๊ณผ ์์์คํ์ ๊ฒฝํํ๋ ์ต์ ์ ์ ์ ์ํ", | |
| empathetic_response: "์ง์ฌ์ผ๋ก ์ถํ๋๋ฆฝ๋๋ค! ๋ณด์ด์ง ์๋ ๊ณณ์์ ํ๋ก ํ๋ ธ๋ ๋๋ฐฉ์ธ๊ณผ ์ธ๋ด์ ์๊ฐ๋ค์ด ๋ง์นจ๋ด ๋๋ถ์ ๊ฒฐ์ค์ ๋งบ์์ต๋๋ค. ์ด ๋ฒ ์ฐฌ ๊ธฐ์จ๊ณผ ์ฑ์ทจ๊ฐ์ ๊ฐ์ด ๊น์ด ๋ง๋ฝํ์ธ์!", | |
| }, | |
| // 4. ๋ถ๋ ธ์ ์ต์ธํจ (Anger & Frustration) | |
| EmotionEntry { | |
| category: "๋ถ๋ ธ/์ต์ธํจ", | |
| valence: -0.75, | |
| arousal: 0.90, | |
| psychological_meaning: "์์ ์ ๊ฐ์น๊ด์ด๋ ๊ฒฝ๊ณ์ ์ด ๋ถ๋นํ๊ฒ ์นจํด๋นํ์ ๋ ์์๋ฅผ ๋ฐฉ์ดํ๊ณ ์ ์๋ฅผ ํ๋ณตํ๋ ค๋ ๊ฐํ ์๋์ง์ ํ์ถ", | |
| empathetic_response: "๋น์ ์ ์ ๋นํ ๋ ธ๋ ฅ๊ณผ ์ง์ฌ์ด ์กด์ค๋ฐ์ง ๋ชปํ์ ๋ ๋๋ผ๋ ๊ทธ ๋จ๊ฑฐ์ด ์ต์ธํจ๊ณผ ๋ถ๋ ธ๋ ์ง๊ทนํ ๋น์ฐํ ๋ฐ์์ ๋๋ค. ๋น์ ์ ์์ฒ๋ฐ์ ์กด์์ ์ธ์ ํฉ๋๋ค. ์ด ๊ฑฐ์ผ ์๋์ง๋ฅผ ๋น์ ์์ ์ ์งํค๋ ๋จ๋จํ ํ์ผ๋ก ๋ฐ๊พธ์ด ๋๊ฐ๊ธธ ์์ํฉ๋๋ค.", | |
| }, | |
| // 5. ํ์จ๊ณผ ๊ฐ์ฌ (Serenity & Gratitude) | |
| EmotionEntry { | |
| category: "ํ์จ/๊ฐ์ฌ", | |
| valence: 0.85, | |
| arousal: 0.15, | |
| psychological_meaning: "์ํ์ด ์๋ ์์ ํ ํ๊ฒฝ์์ ๋ถ๊ต๊ฐ์ ๊ฒฝ์ด ์ฐ์ธํด์ง๋ฉฐ, ์ถ์ ์กฐํ์ ํ๋ณต ํ๋ ฅ์ฑ(Resilience)์ ์ฌ์ถฉ์ ํ๋ ์ํ", | |
| empathetic_response: "์์ํ ํธ์์ ๋น์น๋ ํ์ด์ฒ๋ผ, ๋ง์์ ํ์๊ณผ ๊ณ ์๋ฅผ ์จ์ ํ ๋๋ฆฌ๊ณ ๊ณ์๊ตฐ์. ํ์จํจ ์์์ ์ป๋ ํด์์ด์ผ๋ง๋ก ์ฐ๋ฆฌ ์ํผ์ ๊ฐ์ฅ ๊น๊ณ ๋จ๋จํ๊ฒ ์ฑ์ฅ์ํค๋ ์์คํ ์์๋ถ์ ๋๋ค.", | |
| }, | |
| ]; | |
| EmotionIntelligenceEngine { emotions } | |
| } | |
| /// ์ฌ์ฉ์ ๊ฐ์ ๋ฌธ์ฅ์ ๋ถ์ํ์ฌ ์ ์๊ฐ(Valence)์ ๊ฐ์ฑ๋(Arousal) ๋ฐ ๊ณต๊ฐ ํ๋ต ๋์ถ | |
| pub fn analyze_emotion(&self, prompt: &str) -> (&EmotionEntry, f32, f32) { | |
| for entry in &self.emotions { | |
| if (prompt.contains("์ํ") || prompt.contains("์ฌํผ") || prompt.contains("๋ ๋") || prompt.contains("๋๋ฌผ")) && entry.category == "์ฌํ/์์ค" { | |
| return (entry, entry.valence, entry.arousal); | |
| } | |
| if (prompt.contains("๋๋ ค") || prompt.contains("๋ถ์") || prompt.contains("ํฐ์ง") || prompt.contains("๊ฑฑ์ ")) && entry.category == "๋ถ์/๋๋ ค์" { | |
| return (entry, entry.valence, entry.arousal); | |
| } | |
| if (prompt.contains("ํฉ๊ฒฉ") || prompt.contains("๊ธฐ๋ป") || prompt.contains("ํ๋ณต") || prompt.contains("์ฑ๊ณต")) && entry.category == "๊ธฐ์จ/์ฑ์ทจ" { | |
| return (entry, entry.valence, entry.arousal); | |
| } | |
| if (prompt.contains("ํ๊ฐ") || prompt.contains("์ต์ธ") || prompt.contains("๋ฌด์") || prompt.contains("๋ถ๋ ธ")) && entry.category == "๋ถ๋ ธ/์ต์ธํจ" { | |
| return (entry, entry.valence, entry.arousal); | |
| } | |
| } | |
| (&self.emotions[4], self.emotions[4].valence, self.emotions[4].arousal) | |
| } | |
| } | |