Spaces:
Sleeping
Sleeping
자잘한 오류 수정
Browse files
npc_social_network/npc/npc_base.py
CHANGED
@@ -132,8 +132,8 @@ class NPC:
|
|
132 |
# Personality baseline 저장 (초기값 복사)
|
133 |
self.personality_baseline = copy.deepcopy(self.personality.traits)
|
134 |
|
135 |
-
# 나이 추가 (
|
136 |
-
self.age = random.randint(
|
137 |
|
138 |
# 초기 personality_stage는 update_personality_stage()에서 자동 설정
|
139 |
self.personality_stage = None
|
@@ -350,7 +350,7 @@ class NPC:
|
|
350 |
decay_rate = max(0.0005, min(decay_rate, 0.005))
|
351 |
self.personality[trait] += (self.personality_baseline[trait] - self.personality[trait]) * decay_rate
|
352 |
|
353 |
-
print(f"[Personality Update] {self.
|
354 |
f"stoic: {self.personality['stoic']:.3f}, cognitive_bias: {self.personality['cognitive_bias']:.3f}", flush=True)
|
355 |
|
356 |
def decay_memories(self):
|
|
|
132 |
# Personality baseline 저장 (초기값 복사)
|
133 |
self.personality_baseline = copy.deepcopy(self.personality.traits)
|
134 |
|
135 |
+
# 나이 추가 (18 ~ 50세 기본 랜덤 초기화 → 나중에 생성 시 age 지정 가능)
|
136 |
+
self.age = random.randint(18, 50)
|
137 |
|
138 |
# 초기 personality_stage는 update_personality_stage()에서 자동 설정
|
139 |
self.personality_stage = None
|
|
|
350 |
decay_rate = max(0.0005, min(decay_rate, 0.005))
|
351 |
self.personality[trait] += (self.personality_baseline[trait] - self.personality[trait]) * decay_rate
|
352 |
|
353 |
+
print(f"[Personality Update] {self.korean_name} → sensitive: {self.personality['sensitive']:.3f}, "
|
354 |
f"stoic: {self.personality['stoic']:.3f}, cognitive_bias: {self.personality['cognitive_bias']:.3f}", flush=True)
|
355 |
|
356 |
def decay_memories(self):
|
npc_social_network/npc/npc_manager.py
CHANGED
@@ -77,11 +77,11 @@ class NPCManager:
|
|
77 |
# 1. Initiator가 Target에 대해 무슨 말을 할지 LLM으로 생성
|
78 |
prompt = f"""
|
79 |
# 지시사항
|
80 |
-
|
81 |
'{target.korean_name}'에 대한 당신의 현재 생각과 감정을 바탕으로, 먼저 건넬 자연스러운 첫 마디를 생성하세요.
|
82 |
(예: "앨리스, 어제 시장에서 파는 그 옷 정말 예쁘더라.", "밥, 요즘 허리가 아프다던데 괜찮아?")
|
83 |
|
84 |
-
#
|
85 |
- '{target.korean_name}'와의 관계: {initiator.relationships.get_relationship_summary(target.name)}
|
86 |
|
87 |
→ 첫 마디:
|
|
|
77 |
# 1. Initiator가 Target에 대해 무슨 말을 할지 LLM으로 생성
|
78 |
prompt = f"""
|
79 |
# 지시사항
|
80 |
+
나는 '{initiator.korean_name}'입니다. 지금 나는 '{target.korean_name}'와 마주쳤습니다.
|
81 |
'{target.korean_name}'에 대한 당신의 현재 생각과 감정을 바탕으로, 먼저 건넬 자연스러운 첫 마디를 생성하세요.
|
82 |
(예: "앨리스, 어제 시장에서 파는 그 옷 정말 예쁘더라.", "밥, 요즘 허리가 아프다던데 괜찮아?")
|
83 |
|
84 |
+
# 나의 정보
|
85 |
- '{target.korean_name}'와의 관계: {initiator.relationships.get_relationship_summary(target.name)}
|
86 |
|
87 |
→ 첫 마디:
|
npc_social_network/npc/npc_relationship.py
CHANGED
@@ -96,7 +96,7 @@ class RelationshipManager:
|
|
96 |
memory_details = "\n".join([f"- {mem.content} (감정: {mem.emotion})" for mem in profile.key_memories])
|
97 |
prompt = f"""
|
98 |
# 지시사항
|
99 |
-
|
100 |
|
101 |
# '{target_korean_name}'와(과)의 핵심 기억들
|
102 |
{memory_details}
|
|
|
96 |
memory_details = "\n".join([f"- {mem.content} (감정: {mem.emotion})" for mem in profile.key_memories])
|
97 |
prompt = f"""
|
98 |
# 지시사항
|
99 |
+
나은 '{self.owner_npc.korean_name}'입니다. 나의 기억을 바탕으로 '{target_korean_name}'에 대한 나의 생각과 감정을 한두 문장으로 솔직하게 요약해주세요.
|
100 |
|
101 |
# '{target_korean_name}'와(과)의 핵심 기억들
|
102 |
{memory_details}
|
npc_social_network/simulation_core.py
CHANGED
@@ -58,7 +58,7 @@ def tick_simulation():
|
|
58 |
witness = random.choice(potential_witnesses)
|
59 |
|
60 |
# 3. 목격한 내용을 바탕으로 '소문' 기억 생성 (대화 내용 요약, 관계에 따른 거짓말 등 고도화 가능)
|
61 |
-
gossip_content = f"'{initiator.
|
62 |
|
63 |
# 4. 목격자가 '소문'을 기억하도록 함
|
64 |
witness.remember(
|
@@ -67,7 +67,7 @@ def tick_simulation():
|
|
67 |
emotion="curiosity",
|
68 |
memory_type="Gossip",
|
69 |
)
|
70 |
-
add_log(f"[목격] {witness.
|
71 |
|
72 |
except Exception as e:
|
73 |
add_log(f"상호작용/목격 중 오류 발생: {e}")
|
|
|
58 |
witness = random.choice(potential_witnesses)
|
59 |
|
60 |
# 3. 목격한 내용을 바탕으로 '소문' 기억 생성 (대화 내용 요약, 관계에 따른 거짓말 등 고도화 가능)
|
61 |
+
gossip_content = f"'{initiator.korean_name}'이(가) '{target.korean_name}'에게 '{initial_utterance[:100]}...'라고 말하는 것을 봤다."
|
62 |
|
63 |
# 4. 목격자가 '소문'을 기억하도록 함
|
64 |
witness.remember(
|
|
|
67 |
emotion="curiosity",
|
68 |
memory_type="Gossip",
|
69 |
)
|
70 |
+
add_log(f"[목격] {witness.korean_name}이(가) {initiator.korean_name}와 {target.korean_name}의 대화를 목격함.")
|
71 |
|
72 |
except Exception as e:
|
73 |
add_log(f"상호작용/목격 중 오류 발생: {e}")
|