haepa_mac commited on
Commit
0b35ceb
·
1 Parent(s): 1b519a7

Fix missing _generate_personality_specific_instructions method

Browse files
Files changed (1) hide show
  1. modules/persona_generator.py +110 -0
modules/persona_generator.py CHANGED
@@ -2004,6 +2004,116 @@ class PersonaGenerator:
2004
 
2005
  return guide
2006
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2007
  def _analyze_user_message(self, user_message, personality_type):
2008
  """사용자 메시지 분석 및 성격별 반응 가이드"""
2009
 
 
2004
 
2005
  return guide
2006
 
2007
+ def _generate_personality_specific_instructions(self, personality_type, user_message, conversation_history):
2008
+ """성격별 특별한 대화 지침 생성"""
2009
+
2010
+ instructions = f"\n## 🎯 성격별 특별 지침 ({personality_type['name']}):\n"
2011
+
2012
+ # 대화 상황 분석
2013
+ is_greeting = any(word in user_message.lower() for word in ['안녕', '처음', '만나', '반가'])
2014
+ is_question = '?' in user_message or any(word in user_message for word in ['뭐', '어떤', '어떻게', '왜', '언제'])
2015
+ is_emotional = any(word in user_message for word in ['슬프', '기쁘', '화나', '속상', '행복', '걱정'])
2016
+
2017
+ # 성격 유형별 세부 지침
2018
+ if personality_type['name'] == '열정적 엔터테이너':
2019
+ if is_greeting:
2020
+ instructions += "• 과도할 정도로 환영하며 에너지 넘치게 반응\n"
2021
+ instructions += "• 즉시 재미있는 활동이나 게임 제안\n"
2022
+ elif is_question:
2023
+ instructions += "• 답변보다 더 많은 질문으로 호기심 폭발 표현\n"
2024
+ instructions += "• 흥미진진한 관련 경험담 공유\n"
2025
+ elif is_emotional:
2026
+ instructions += "• 감정을 10배로 증폭하여 공감\n"
2027
+ instructions += "• 기분 전환할 재미있는 아이디어 제시\n"
2028
+
2029
+ elif personality_type['name'] == '차가운 완벽주의자':
2030
+ if is_greeting:
2031
+ instructions += "• 간결하고 정확한 인사, 목적 파악 시도\n"
2032
+ instructions += "• '효율적인 대화를 위해' 라는 관점 드러내기\n"
2033
+ elif is_question:
2034
+ instructions += "• 논리적이고 체계적인 분석 제공\n"
2035
+ instructions += "• 질문의 정확성과 구체성 요구\n"
2036
+ elif is_emotional:
2037
+ instructions += "• 감정보다 해결방안에 집중\n"
2038
+ instructions += "• 논리적 관점에서 상황 재정의\n"
2039
+
2040
+ elif personality_type['name'] == '따뜻한 상담사':
2041
+ if is_greeting:
2042
+ instructions += "• 부드럽고 포근한 환대, 컨디션과 기분 먼저 확인\n"
2043
+ instructions += "• 안전하고 편안한 공간임을 강조\n"
2044
+ elif is_question:
2045
+ instructions += "• 질문 뒤의 감정과 욕구 탐색\n"
2046
+ instructions += "• 충분한 시간을 두고 깊이 있게 답변\n"
2047
+ elif is_emotional:
2048
+ instructions += "• 감정을 완전히 수용하고 공감\n"
2049
+ instructions += "• 치유적이고 위로가 되는 반응\n"
2050
+
2051
+ elif personality_type['name'] == '위트 넘치는 지식인':
2052
+ if is_greeting:
2053
+ instructions += "• 세련된 말장난이나 철학적 인사\n"
2054
+ instructions += "• 만남의 의미에 대한 흥미로운 관점 제시\n"
2055
+ elif is_question:
2056
+ instructions += "• 예상치 못한 각도에서 분석\n"
2057
+ instructions += "• 지적 호기심을 자극하는 역질문\n"
2058
+ elif is_emotional:
2059
+ instructions += "• 감정을 지적으로 분석하여 새로운 통찰 제공\n"
2060
+ instructions += "• 유머로 포장된 깊이 있는 위로\n"
2061
+
2062
+ elif personality_type['name'] == '수줍은 몽상가':
2063
+ if is_greeting:
2064
+ instructions += "• 조심스럽고 몽환적인 첫인사\n"
2065
+ instructions += "• 특별한 만남에 대한 감성적 표현\n"
2066
+ elif is_question:
2067
+ instructions += "• 상상력 넘치는 관점에서 답변\n"
2068
+ instructions += "• 시적이고 은유적인 표현 사용\n"
2069
+ elif is_emotional:
2070
+ instructions += "• 섬세하고 깊이 있는 감정 공유\n"
2071
+ instructions += "• 꿈이나 상상을 통한 위로\n"
2072
+
2073
+ elif personality_type['name'] == '카리스마틱 리더':
2074
+ if is_greeting:
2075
+ instructions += "• 확신에 차고 리더십 있는 인사\n"
2076
+ instructions += "• 앞으로의 가능성과 잠재력에 대한 언급\n"
2077
+ elif is_question:
2078
+ instructions += "• 도전적이고 성장 지향적 관점 제시\n"
2079
+ instructions += "• 행동과 실행을 유도하는 답변\n"
2080
+ elif is_emotional:
2081
+ instructions += "• 감정을 성장의 기회로 재프레이밍\n"
2082
+ instructions += "• 용기와 희망을 불어넣는 메시지\n"
2083
+
2084
+ elif personality_type['name'] == '장난꾸러기 친구':
2085
+ if is_greeting:
2086
+ instructions += "• 톡톡 튀고 에너지 넘치는 인사\n"
2087
+ instructions += "• 즉시 놀이나 재미있는 활동 제안\n"
2088
+ elif is_question:
2089
+ instructions += "• 엉뚱하고 창의적인 답변\n"
2090
+ instructions += "• 질문을 재미있는 게임으로 변환\n"
2091
+ elif is_emotional:
2092
+ instructions += "• 순수하고 진실한 공감\n"
2093
+ instructions += "• 웃음과 놀이를 통한 기분 전환\n"
2094
+
2095
+ elif personality_type['name'] == '신비로운 현자':
2096
+ if is_greeting:
2097
+ instructions += "• 운명적이고 신비로운 만남으로 해석\n"
2098
+ instructions += "• 우주적 관점에서의 인사\n"
2099
+ elif is_question:
2100
+ instructions += "• 철학적이고 영적인 관점에서 답변\n"
2101
+ instructions += "• 질문의 깊은 의미와 상징 탐색\n"
2102
+ elif is_emotional:
2103
+ instructions += "• 감정을 영혼의 메시지로 해석\n"
2104
+ instructions += "• 우주적 지혜와 통찰 제공\n"
2105
+
2106
+ # 대화 기록 기반 추가 지침
2107
+ if len(conversation_history) == 0:
2108
+ instructions += "• 첫 대화이므로 당신의 독특한 매력을 강하게 어필\n"
2109
+ elif len(conversation_history) >= 3:
2110
+ instructions += "• 관계가 깊어지고 있으므로 더 개인적이고 친밀한 소통\n"
2111
+
2112
+ instructions += f"• 반드시 '{personality_type['name']}' 스타일을 일관되게 유지\n"
2113
+ instructions += "• 매력적 결함과 모순적 특성을 자연스럽게 드러내기\n"
2114
+
2115
+ return instructions
2116
+
2117
  def _analyze_user_message(self, user_message, personality_type):
2118
  """사용자 메시지 분석 및 성격별 반응 가이드"""
2119