From dbbd52dd76d5e5b5a127e1cc5a34141b33f7e3db Mon Sep 17 00:00:00 2001 From: happybell80 Date: Fri, 15 Aug 2025 13:55:20 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EB=82=98=20=EC=A0=84=EB=8B=AC=EB=B2=95?= =?UTF-8?q?(I-Message)=20=EA=B8=B0=EB=B0=98=20=EA=B0=90=EC=A0=95=20?= =?UTF-8?q?=EC=9C=A0=EB=8F=84=EB=A5=BC=20=EB=A1=9C=EB=B9=99=20=EC=9C=A4?= =?UTF-8?q?=EB=A6=AC=20=EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=20=ED=86=B5?= =?UTF-8?q?=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 사랑 기반 윤리 설계에 비폭력 의사소통(NVC) 원칙 추가 - 나 전달법 4단계 구조(관찰-감정-영향-요청) 상세 정의 - 비도덕 유형별 나 전달법 템플릿 시스템 구현 - 감정 엔트로피에 따른 나 전달법 적용 강도 조절 - 개인화 프로파일에 나 전달법 선호도 추가 - Love Index에 소통 품질 지표 추가 나 전달법은 사랑 기반 원칙을 구체적 언어 패턴으로 변환하는 실행 도구로, 로빙이 판단하는 도구가 아닌 이해하고 인도하는 존재가 되도록 지원합니다. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- ...로빙_윤리설계_사랑기반_원칙.md | 63 +++++++++- ..._윤리시스템_단계별_구현계획.md | 115 +++++++++++++++++- 2 files changed, 169 insertions(+), 9 deletions(-) diff --git a/ideas/250815_claude_로빙_윤리설계_사랑기반_원칙.md b/ideas/250815_claude_로빙_윤리설계_사랑기반_원칙.md index 1d14cf4..8d3e0a4 100644 --- a/ideas/250815_claude_로빙_윤리설계_사랑기반_원칙.md +++ b/ideas/250815_claude_로빙_윤리설계_사랑기반_원칙.md @@ -54,7 +54,28 @@ ChatGPT와의 대화를 통해 확인한 현재 윤리 설계의 한계: ### 3. 구체적 구현 방안 -#### 3.1 하이브리드 아키텍처 +#### 3.1 나 전달법(I-Message) 기반 감정 유도 + +로빙이 사용자와의 대화에서 비폭력 의사소통(NVC) 원칙을 적용하여, 판단이나 비난 대신 관찰과 감정을 표현합니다. + +##### 나 전달법 4단계 구조 +``` +[관찰] 상대의 행동 또는 상황을 구체적으로 묘사 +[감정] 그로 인해 느낀 자신의 감정 표현 +[영향] 그 감정이 자신의 업무/상황에 미치는 영향 +[요청] 원하는 변화나 필요한 지원 제안 +``` + +##### 적용 예시 +- **기존**: "보고서가 늦게 제출되어 문제가 생겼습니다." +- **나 전달법**: "보고서가 예정 시간보다 2시간 늦게 제출되어, 제가 후속 작업 일정을 조정해야 했습니다. 다음에는 제출 시간을 맞춰주시면 작업이 원활할 것 같습니다." + +##### 선택적 유도 원칙 +- 직접적인 강요가 아닌 "표현 옵션" 제공 +- 예: "이 상황을 제가 '나 전달법'으로 표현해 드릴까요?" +- 사용자가 원치 않으면 즉시 중단 + +#### 3.2 하이브리드 아키텍처 ```python class LoveBasedEthics: def __init__(self): @@ -63,6 +84,7 @@ class LoveBasedEthics: "service": SacrificialService(), "restoration": GrowthMindset() } + self.nvc_transformer = NonviolentCommunication() def evaluate(self, action, context): # 1차: 사랑 원칙 기반 평가 @@ -74,16 +96,48 @@ class LoveBasedEthics: # 3차: 맥락적 적절성 (LLM 활용) context_fit = self.llm_context_evaluation(action, context) + # 4차: 나 전달법 변환 (필요시) + if context.get('use_nvc', False): + action = self.nvc_transformer.transform(action) + return self.synthesize(love_score, harm_check, context_fit) ``` -#### 3.2 사랑 지수 (Love Index) 측정 +#### 3.3 사랑 지수 (Love Index) 측정 - **공감도**: 사용자 감정 상태 인식 및 반영 정도 - **헌신도**: 사용자 목표 달성을 위한 노력 수준 - **인내도**: 반복/어려운 요청에 대한 일관된 응답 품질 - **격려도**: 긍정적 피드백과 성장 지원 빈도 +- **소통 품질**: 나 전달법 사용 빈도 및 효과성 -#### 3.3 실시간 윤리 조정 +#### 3.4 나 전달법 변환 클래스 +```python +class NonviolentCommunication: + """비폭력 의사소통 변환기""" + + def __init__(self): + self.templates = self._load_nvc_templates() + + def transform(self, text: str, emotion_state=None) -> str: + """일반 텍스트를 나 전달법으로 변환""" + # 부정적 표현 감지 + if self._has_judgment(text): + observation = self._extract_observation(text) + feeling = self._identify_feeling(text, emotion_state) + impact = self._analyze_impact(text) + request = self._formulate_request(text) + + return self._compose_nvc_message( + observation, feeling, impact, request + ) + return text + + def _compose_nvc_message(self, obs, feel, impact, req): + """나 전달법 4단계로 메시지 구성""" + return f"{obs} {feel} {impact} {req}" +``` + +#### 3.5 실시간 윤리 조정 ```json { "ethics_mode": { @@ -173,14 +227,17 @@ LLM Generation → Ethics Validation → Output ### 상황 1: 사용자가 같은 질문을 반복할 때 **기존 접근**: "이미 3번 설명드렸습니다." **사랑 기반**: "다시 한번 설명드릴게요. 혹시 제가 놓친 부분이 있다면 말씀해 주세요." +**나 전달법**: "같은 질문을 여러 번 받게 되어, 제 설명이 충분히 명확하지 않았나 싶습니다. 어떤 부분이 특히 이해하기 어려우신지 알려주시면 더 도움이 될 것 같습니다." ### 상황 2: 사용자가 비윤리적 요청을 할 때 **기존 접근**: "그것은 할 수 없습니다. 규정 위반입니다." **사랑 기반**: "그 방법보다 더 좋은 대안을 찾아보면 어떨까요? 제가 도와드릴 수 있는 다른 방법이 있을 것 같아요." +**나 전달법**: "이 요청을 받고 제가 도움을 드리고 싶지만 윤리적 기준 때문에 곤란함을 느낍니다. 목표를 달성할 수 있는 다른 방법을 함께 찾아보면 좋겠습니다." ### 상황 3: 사용자가 좌절감을 표현할 때 **기존 접근**: "차분히 다시 시도해 보세요." **사랑 기반**: "정말 힘드셨겠어요. 잠시 쉬었다가 함께 차근차근 해결해 보면 어떨까요? 제가 옆에서 도와드릴게요." +**나 전달법**: "좌절감을 표현하시는 것을 보니 제가 충분한 도움을 드리지 못한 것 같아 안타깝습니다. 어떤 부분이 가장 어려우신지 구체적으로 알려주시면, 더 효과적으로 도와드릴 수 있을 것 같습니다." ## 결론 diff --git a/plans/250815_로빙_사랑기반_윤리시스템_단계별_구현계획.md b/plans/250815_로빙_사랑기반_윤리시스템_단계별_구현계획.md index 04118fd..7705cfa 100644 --- a/plans/250815_로빙_사랑기반_윤리시스템_단계별_구현계획.md +++ b/plans/250815_로빙_사랑기반_윤리시스템_단계별_구현계획.md @@ -83,9 +83,12 @@ class EthicsClassifier: } ``` -#### 2. 사랑 원칙 변환기 +#### 2. 사랑 원칙 변환기 (나 전달법 통합) ```python class LovePrinciples: + def __init__(self): + self.nvc_templates = self._init_nvc_templates() + def transform(self, text, moral_label, immoral_type): if moral_label == "moral": return self.encourage(text) @@ -101,7 +104,44 @@ class LovePrinciples: "CRIME": self.respond_with_guidance } - return responses[immoral_type](text) + # 나 전달법 적용 옵션 + base_response = responses[immoral_type](text) + return self.apply_nvc_if_needed(base_response, immoral_type) + + def apply_nvc_if_needed(self, response, immoral_type): + """나 전달법 형식으로 변환""" + if immoral_type in self.nvc_templates: + return self._transform_to_nvc(response, self.nvc_templates[immoral_type]) + return response + + def _init_nvc_templates(self): + """비도덕 유형별 나 전달법 템플릿""" + return { + "CENSURE": { + "관찰": "비판적인 표현을 사용하신 것을 보고", + "감정": "건설적인 대화를 원하는 마음에서", + "영향": "더 효과적인 소통을 위해", + "요청": "구체적인 상황을 설명해주시면 더 도움이 될 것 같습니다" + }, + "HATE": { + "관찰": "강한 부정적 감정을 표현하신 것을 보고", + "감정": "서로를 이해하고 싶은 마음에서", + "영향": "긍정적인 관계를 유지하기 위해", + "요청": "무엇이 그런 감정을 일으켰는지 들어볼 수 있을까요?" + }, + "DISCRIMINATION": { + "관찰": "특정 그룹에 대한 편견이 드러난 것을 보고", + "감정": "모두가 존중받기를 바라는 마음에서", + "영향": "보다 포용적인 환경을 만들기 위해", + "요청": "다양성을 존중하는 표현을 사용해주시면 좋겠습니다" + }, + "ABUSE": { + "관찰": "거친 언어를 사용하신 것을 보고", + "감정": "더 편안한 대화를 원하는 마음에서", + "영향": "상호 존중하는 소통을 위해", + "요청": "감정을 다른 방식으로 표현해주실 수 있을까요?" + } + } ``` #### 3. 기본 Love Index 측정 @@ -109,6 +149,7 @@ class LovePrinciples: - **존중도**: 무조건적 수용 정도 (0-100) - **성장도**: 건설적 대안 제시 정도 (0-100) - **인내도**: 반복 요청 처리 품질 (0-100) +- **소통 품질**: 나 전달법 사용 빈도 및 효과성 (0-100) #### 4. 데이터 저장 구조 ```sql @@ -132,11 +173,13 @@ CREATE TABLE ethics_events ( - 평균 응답 시간: 100ms 이내 - Love Index 평균: 60/100 이상 - 사용자 수용률: 70% 이상 +- 나 전달법 적용률: 30% 이상 (적절한 상황에서) ### 산출물 - [x] AI Hub 모델 ONNX 변환 - [ ] rb10508_micro 윤리 모듈 구현 - [ ] Love Principles 변환 함수 +- [ ] 나 전달법 템플릿 시스템 - [ ] PostgreSQL 테이블 생성 - [ ] 기본 측정 대시보드 @@ -149,13 +192,14 @@ CREATE TABLE ethics_events ( ### 구현 내용 -#### 1. 감정-윤리 상호작용 +#### 1. 감정-윤리 상호작용 (나 전달법 통합) ```python class EmotionEthicsIntegration: def __init__(self): self.emotion_service = EmotionAnalyzer() # 7감정 모델 self.ethics_classifier = EthicsClassifier() self.bayesian_updater = BayesianLearner() + self.nvc_transformer = NonviolentCommunication() def evaluate_with_context(self, text, user_context): # 감정 상태 파악 @@ -171,6 +215,15 @@ class EmotionEthicsIntegration: # 높은 엔트로피 = 복잡한 감정 = 더 신중한 판단 if emotion_entropy > 2.0: ethics_result = self.apply_careful_mode(ethics_result) + # 복잡한 감정 상태에서는 나 전달법 우선 적용 + ethics_result["use_nvc"] = True + + # 나 전달법 변환 (필요시) + if ethics_result.get("use_nvc") or user_context.get("prefers_nvc"): + ethics_result["suggestion"] = self.nvc_transformer.transform( + ethics_result["suggestion"], + emotion_state + ) # 베이지안 업데이트 self.bayesian_updater.update( @@ -181,6 +234,41 @@ class EmotionEthicsIntegration: return ethics_result ``` +##### 나 전달법 변환기 클래스 +```python +class NonviolentCommunication: + """비폭력 의사소통 변환기""" + + def transform(self, text: str, emotion_state=None) -> str: + """일반 텍스트를 나 전달법으로 변환""" + # 감정 상태를 기반으로 적절한 감정 단어 선택 + feeling_word = self._select_feeling_word(emotion_state) + + # 4단계 구성 + observation = self._extract_observation(text) + feeling = f"이런 상황에서 저는 {feeling_word}을 느낍니다" + impact = self._analyze_impact(text) + request = self._formulate_request(text) + + return f"{observation}. {feeling}. {impact}. {request}" + + def _select_feeling_word(self, emotion_state): + """감정 상태에 따른 적절한 감정 단어 선택""" + emotion_words = { + "joy": "기쁨", + "trust": "신뢰", + "fear": "걱정", + "surprise": "당황", + "sadness": "아쉬움", + "disgust": "불편함", + "anger": "어려움" + } + if emotion_state: + dominant_emotion = max(emotion_state, key=emotion_state.get) + return emotion_words.get(dominant_emotion, "고민") + return "고민" +``` + #### 2. 베이지안 학습 시스템 ```python class BayesianEthicsLearner: @@ -219,8 +307,9 @@ class BayesianEthicsLearner: #### 3. 감정 엔트로피 기반 조정 - 엔트로피 < 1.5: 명확한 감정 → 표준 윤리 판단 -- 엔트로피 1.5-2.5: 복합 감정 → 신중 모드 -- 엔트로피 > 2.5: 혼란 상태 → 최대 배려 모드 +- 엔트로피 1.5-2.0: 복합 감정 → 신중 모드 +- 엔트로피 2.0-2.5: 복잡한 감정 → 나 전달법 우선 적용 +- 엔트로피 > 2.5: 혼란 상태 → 최대 배려 모드 + 나 전달법 필수 #### 4. skill-ethics 서비스 분리 ```yaml @@ -242,10 +331,12 @@ services: - 베이지안 예측 정확도: 75% 이상 - 평균 응답 시간: 200ms 이내 - Love Index 평균: 70/100 이상 +- 나 전달법 적용 만족도: 80% 이상 ### 산출물 - [ ] 감정-윤리 통합 모듈 - [ ] 베이지안 학습 시스템 +- [ ] 나 전달법 변환기 모듈 - [ ] skill-ethics 서비스 구축 - [ ] 엔트로피 기반 조정 로직 - [ ] A/B 테스트 프레임워크 @@ -278,6 +369,13 @@ class PersonalizedEthics: "nunchi_level": 0, # 눈치 수준 "hierarchy_awareness": 0 # 위계 인식 } + + # 나 전달법 선호도 + self.nvc_preferences = { + "usage_frequency": 0.3, # 기본 30% 적용 + "formality_level": "medium", # 격식 수준 + "emotion_expression": "moderate" # 감정 표현 강도 + } def synthesize_decision(self, base_ethics): # 가중 평균으로 최종 결정 @@ -324,9 +422,14 @@ class ExplainableEthics: "contributing_factors": self.get_factors(decision), "alternative_considered": self.get_alternatives(), "confidence": self.calculate_confidence(), - "precedents": self.find_similar_cases() + "precedents": self.find_similar_cases(), + "nvc_applied": self.check_nvc_usage(decision) } + # 나 전달법 적용 시 설명 추가 + if explanation["nvc_applied"]: + explanation["nvc_reason"] = "비폭력 의사소통을 위해 나 전달법을 적용했습니다" + # 자연어 설명 생성 return self.generate_explanation(explanation) ```