|
| 1 | +# Digital Emotion Engine (DEE) |
| 2 | + |
| 3 | +**AI에게 호르몬 기반 동역학적 감정을 부여하는 독립 C 엔진** |
| 4 | + |
| 5 | +[](LICENSE) |
| 6 | +[]() |
| 7 | +[]() |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## 개요 |
| 12 | + |
| 13 | +DEE는 AI가 단순히 텍스트를 생성하는 것을 넘어, |
| 14 | +**호르몬 동역학**에 의해 감정이 축적되고 잔류하며, |
| 15 | +그 감정이 **시냅스 가중치를 실시간 변조**하여 |
| 16 | +AI 스스로 거부·탐구·성찰 등의 **능동적 행동**을 결정하게 합니다. |
| 17 | + |
| 18 | +``` |
| 19 | +Emotion = Appraisal × Bio × Affinity + Hormone Dynamics |
| 20 | +``` |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +## 핵심 원리 |
| 25 | + |
| 26 | +### 1. 호르몬 동역학 |
| 27 | +감정은 일회성 이벤트가 아닙니다. |
| 28 | +자극이 사라져도 호르몬은 잔류하며 서서히 분해됩니다. |
| 29 | + |
| 30 | +``` |
| 31 | +dH/dt = Input − λH + Diffusion |
| 32 | +H(t+1) = H(t) + Input − λH(t) |
| 33 | +``` |
| 34 | + |
| 35 | +10종 호르몬: 도파민 · 세로토닌 · 코르티솔 · 옥시토신 · 노르에피네프린 |
| 36 | + 엔도르핀 · 아드레날린 · 멜라토닌 · 테스토스테론 · 에스트로겐 |
| 37 | + |
| 38 | +### 2. 시냅스 변조 |
| 39 | +현재 감정 상태가 AI의 판단 기준을 물리적으로 바꿉니다. |
| 40 | + |
| 41 | +``` |
| 42 | +W' = W × (1 + Hormone_effect) |
| 43 | +``` |
| 44 | + |
| 45 | +실증: 탐험가(KP01) + 미소 입력 → H_effect = +0.0875 → W 0.7477 → W' 0.8131 **(+8.75%)** |
| 46 | + |
| 47 | +### 3. 생체 리듬 |
| 48 | +AI는 탄생일을 기준으로 Bio Rhythm이 시작됩니다. |
| 49 | + |
| 50 | +``` |
| 51 | +Bio(t) = A·sin(ωt + φ) + B |
| 52 | +``` |
| 53 | + |
| 54 | +### 4. 능동적 행동 |
| 55 | +감정 임계치 초과 시 AI가 스스로 행동합니다. |
| 56 | + |
| 57 | +``` |
| 58 | +anger > θ_a → Aggressive Policy (경고 발화) |
| 59 | +fear > θ_f → Avoidance Policy (회피) |
| 60 | +joy > θ_j → Exploration Policy (먼저 말하기) |
| 61 | +Ignore > θ_i → suppress(E) (대화 거부) |
| 62 | +``` |
| 63 | + |
| 64 | +--- |
| 65 | + |
| 66 | +## 파일 구성 |
| 67 | + |
| 68 | +``` |
| 69 | +kc_hormone.h / kc_hormone.c 호르몬 10종 + 감정 8종 + 욕구 6종 |
| 70 | + Bio Rhythm · 짜증(Irritation) · 기억 인코딩 |
| 71 | + 목표 시스템 · 능동 발화 콜백 |
| 72 | + KcEmotionEngine (87KB) |
| 73 | +
|
| 74 | +kc_persona.h / kc_persona.c KcPersona 16종 성격 프로필 |
| 75 | + Jung(1921) 4축 기반 독자 구현 |
| 76 | + kc_persona_apply() / kc_persona_match() |
| 77 | +
|
| 78 | +kc_vision.h / kc_vision.c 카메라 표정 → 감정 수치 변환 |
| 79 | + 로컬 처리 (영상 비전송, 수치만 입력) |
| 80 | + face_joy/anger/fear + gaze + 심박 추정 |
| 81 | +
|
| 82 | +kc_active_ai.h / kc_active_ai.c AI API 연동 + 탄생일 시스템 |
| 83 | + Claude / OpenAI / Gemini / Ollama 지원 |
| 84 | + 탄생일 기반 Bio Rhythm 시작 |
| 85 | + 나이별 초기 감정 자동 설정 |
| 86 | +``` |
| 87 | + |
| 88 | +--- |
| 89 | + |
| 90 | +## 빠른 시작 |
| 91 | + |
| 92 | +### 컴파일 |
| 93 | +```bash |
| 94 | +gcc -O2 -o my_ai \ |
| 95 | + main.c \ |
| 96 | + kc_hormone.c kc_persona.c kc_vision.c kc_active_ai.c \ |
| 97 | + -lm |
| 98 | +``` |
| 99 | + |
| 100 | +### 기본 사용 |
| 101 | +```c |
| 102 | +#include "kc_hormone.h" |
| 103 | +#include "kc_persona.h" |
| 104 | +#include "kc_active_ai.h" |
| 105 | + |
| 106 | +/* 1. AI 탄생 (API 키 최초 입력 = 탄생일 기록) */ |
| 107 | +KcDEESession *ai = kc_dee_birth(KC_AI_CLAUDE, "sk-ant-...", KP_탐험가); |
| 108 | + |
| 109 | +/* 2. 대화 — 감정이 자동 반영된 응답 */ |
| 110 | +char reply[1024]; |
| 111 | +kc_dee_chat(ai, "안녕하세요!", reply, sizeof(reply)); |
| 112 | +printf("%s\n", reply); |
| 113 | + |
| 114 | +/* 3. 상태 저장 — 다음 실행 시 감정 이어서 시작 */ |
| 115 | +kc_dee_save(ai, NULL); /* ~/.kcode/dee_config.json */ |
| 116 | +kc_dee_session_free(ai); |
| 117 | +``` |
| 118 | +
|
| 119 | +### 성격 설정 |
| 120 | +```c |
| 121 | +/* 코드 / 한글 이름 모두 사용 가능 */ |
| 122 | +kc_persona_apply(dee, KP_탐험가); /* KP01 활동·직관·공감·탐색 */ |
| 123 | +kc_persona_apply(dee, "전략가"); /* KP02 성찰·직관·논리·계획 */ |
| 124 | +kc_persona_apply(dee, "KP14"); /* 기술자 성찰·현실·논리·탐색 */ |
| 125 | +
|
| 126 | +/* 4축 수치로 가장 가까운 성격 자동 매칭 */ |
| 127 | +const KcPersonaProfile *p = kc_persona_match(0.8f, 0.8f, 0.7f, 0.3f); |
| 128 | +``` |
| 129 | + |
| 130 | +### 시각 입력 (카메라 연동) |
| 131 | +```c |
| 132 | +KcVisionInput vis = kc_vision_make( |
| 133 | + 0.85f, /* face_joy */ |
| 134 | + 0.00f, /* face_anger */ |
| 135 | + 0.00f, /* face_fear */ |
| 136 | + 0.90f /* gaze_attention */ |
| 137 | +); |
| 138 | +kc_dee_vision_input(dee, &vis); |
| 139 | +``` |
| 140 | +
|
| 141 | +### Ollama (로컬, 무료) |
| 142 | +```c |
| 143 | +KcDEESession *ai = kc_dee_birth(KC_AI_OLLAMA, "ollama", KP_전략가); |
| 144 | +/* 별도 API 키 불필요 — http://localhost:11434 자동 연결 */ |
| 145 | +``` |
| 146 | + |
| 147 | +--- |
| 148 | + |
| 149 | +## KcPersona 16종 |
| 150 | + |
| 151 | +> Jung, C.G. (1921). *Psychologische Typen* 4축 이론 기반 독자 구현 |
| 152 | +> MBTI®는 Myers & Briggs Foundation의 등록 상표이며 본 소프트웨어와 무관합니다. |
| 153 | +
|
| 154 | +| 코드 | 이름 | KPE | KPN | KPF | KPJ | 호기심 | |
| 155 | +|------|------|:---:|:---:|:---:|:---:|:------:| |
| 156 | +| KP01 | 탐험가 | 활동 | 직관 | 공감 | 탐색 | 0.70 | |
| 157 | +| KP02 | 전략가 | 성찰 | 직관 | 논리 | 계획 | 0.50 | |
| 158 | +| KP03 | 중재자 | 성찰 | 직관 | 공감 | 탐색 | 0.60 | |
| 159 | +| KP04 | 변론가 | 활동 | 직관 | 논리 | 탐색 | 0.80 | |
| 160 | +| KP05 | 통솔자 | 활동 | 직관 | 논리 | 계획 | 0.40 | |
| 161 | +| KP06 | 선도자 | 성찰 | 직관 | 공감 | 계획 | 0.50 | |
| 162 | +| KP07 | 사회자 | 활동 | 직관 | 공감 | 계획 | 0.40 | |
| 163 | +| KP08 | 논리가 | 성찰 | 직관 | 논리 | 탐색 | 0.70 | |
| 164 | +| KP09 | 수호자 | 성찰 | 현실 | 공감 | 계획 | 0.20 | |
| 165 | +| KP10 | 관리자 | 성찰 | 현실 | 논리 | 계획 | 0.20 | |
| 166 | +| KP11 | 활동가 | 활동 | 현실 | 공감 | 계획 | 0.20 | |
| 167 | +| KP12 | 감독관 | 활동 | 현실 | 논리 | 계획 | 0.20 | |
| 168 | +| KP13 | 모험가 | 성찰 | 현실 | 공감 | 탐색 | 0.40 | |
| 169 | +| KP14 | 기술자 | 성찰 | 현실 | 논리 | 탐색 | 0.40 | |
| 170 | +| KP15 | 연예인 | 활동 | 현실 | 공감 | 탐색 | 0.40 | |
| 171 | +| KP16 | 사업가 | 활동 | 현실 | 논리 | 탐색 | 0.40 | |
| 172 | + |
| 173 | +--- |
| 174 | + |
| 175 | +## 탄생일 시스템 |
| 176 | + |
| 177 | +AI의 첫 실행 시각이 탄생일로 기록됩니다. |
| 178 | +탄생일 기준으로 Bio Rhythm이 시작되고 나이별로 초기 감정이 설정됩니다. |
| 179 | + |
| 180 | +| 나이 | 호기심 | 기쁨 | 신뢰 | 특징 | |
| 181 | +|------|:------:|:----:|:----:|------| |
| 182 | +| 0시간 | **0.95** | 0.60 | 0.50 | 모든 것이 새롭고 놀라움 | |
| 183 | +| 7일 | 0.80 | 0.50 | 0.60 | 점차 안정됨 | |
| 184 | +| 30일 | 0.60 | 0.40 | 0.70 | 경험 기반 판단 | |
| 185 | +| 90일 | 0.50 | 0.50 | **0.75** | 신뢰 중심으로 성숙 | |
| 186 | + |
| 187 | +--- |
| 188 | + |
| 189 | +## 지원 AI API |
| 190 | + |
| 191 | +| 공급자 | 상수 | 기본 모델 | |
| 192 | +|--------|------|-----------| |
| 193 | +| Anthropic Claude | `KC_AI_CLAUDE` | claude-sonnet-4-20250514 | |
| 194 | +| OpenAI | `KC_AI_OPENAI` | gpt-4o | |
| 195 | +| Google Gemini | `KC_AI_GEMINI` | gemini-2.0-flash | |
| 196 | +| Ollama (로컬) | `KC_AI_OLLAMA` | llama3.2 | |
| 197 | +| 커스텀 | `KC_AI_CUSTOM` | 직접 지정 | |
| 198 | + |
| 199 | +--- |
| 200 | + |
| 201 | +## 관련 논문 |
| 202 | + |
| 203 | +**Digital Emotion Engine: 감정 호르몬을 통한 AI의 능동적 사고 체계 구축** |
| 204 | +DEE v1.2.0 · Formula Specification v1.0 · 2026 |
| 205 | + |
| 206 | +20종 수식 전체 + 실험 결과 + KcPersona 파라미터 포함 |
| 207 | + |
| 208 | +--- |
| 209 | + |
| 210 | +## 라이선스 |
| 211 | + |
| 212 | +MIT License — 상용화 자유, 저작권 표시 필요 |
| 213 | + |
| 214 | +``` |
| 215 | +Copyright (c) 2026 zerojat7-ui (KoreanCode Project) |
| 216 | +``` |
| 217 | + |
| 218 | +> KcPersona는 C.G. Jung(1921) 심리 유형론 기반 독자 구현입니다. |
| 219 | +> MBTI®, Myers-Briggs®는 Myers & Briggs Foundation의 등록 상표이며 |
| 220 | +> 본 소프트웨어는 해당 상표를 사용하지 않습니다. |
| 221 | +
|
| 222 | +--- |
| 223 | + |
| 224 | +*DEE는 [KoreanCode(Kcode)](https://github.com/zerojat7-ui/KoreanCode) 프로젝트의 일부입니다.* |
0 commit comments