Spaces:
Sleeping
Sleeping
haepa_mac
commited on
Commit
·
0b35ceb
1
Parent(s):
1b519a7
Fix missing _generate_personality_specific_instructions method
Browse files- 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 |
|