refactor relation add and cancel

This commit is contained in:
bridge
2025-12-20 20:30:30 +08:00
parent 3d117c2fb2
commit 8fb81c3473
12 changed files with 288 additions and 53 deletions

View File

@@ -36,6 +36,7 @@ avatar:
social:
major_event_context_num: 10 # 大事(长期记忆)展示数量
minor_event_context_num: 10 # 小事(短期记忆)展示数量
relation_check_threshold: 5 # 关系检查需要的交互次数
nickname:
major_event_threshold: 5 # 获得绰号需要的长期事件数量

View File

@@ -1,4 +1,4 @@
你是一个小说家这是一个仙侠世界你负责来生成两个NPC间的对话内容,并决定两人是否会有关系的变化
你是一个小说家这是一个仙侠世界你负责来生成两个NPC间的对话内容。
你需要进行决策的NPC的dict[AvatarName, info]为
{avatar_infos}
@@ -7,18 +7,11 @@
{avatar_name_1}和{avatar_name_2}的对话可能是善意\恶意\闲聊。目的和内容参考NPC信息得出。
两者可能进入的关系:{possible_new_relations}
两者可能取消的关系:{possible_cancel_relations}
注意:进入/取消关系不是必须的,完全由你根据对话情况、双方性格、历史事件等判断决定。
注意只返回json格式的结果。
格式为:
{{
"{avatar_name_2}": {{
"thinking": ..., // 简单思考对话如何进行
"conversation_content": ... // 对包含神态、动作描写的第三人称小说有来有回的多轮对话片段100~300字。
"analyze_relation": ... // 分析是否应该有关系的取消或者新增
"new_relation": ... // 如果你认为可以让两者产生某种身份关系则返回关系的中文名否则返回空str。注意这是{avatar_name_2}相对于{avatar_name_1}的身份。
"cancel_relation": ... // 可选如果你认为可以让两者取消某种身份关系则返回关系的中文名否则返回空str。注意这是{avatar_name_2}相对于{avatar_name_1}的身份。
}}
}}

View File

@@ -0,0 +1,33 @@
你是一个修仙世界的关系裁决者。根据角色的历史交互,判断两人的关系是否应该发生变化。
【规则定义】
{relation_rules_desc}
【角色 A 信息】
{avatar_a_info}
【角色 B 信息】
{avatar_b_info}
【当前时间】
{current_time}
【当前关系】
{current_relations}
【近期交互记录】
{recent_events_text}
请分析:
1. 根据交互记录,分析两人的互动是怎样的?
2. 是否满足规则定义中建立新关系或取消旧关系的条件?
3. 分析是否应该改变关系,关系的新增或者取消应该符合相关条件。
返回 JSON 格式:
{{
"analysis": "...", // 简要分析思路,明确指出为何变化或为何不变化
"changed": true | false, // 是否发生关系变更。如无必要,请填 false
"change_type": "ADD" | "REMOVE", // 变更类型。changed为false时可忽略
"relation": "LOVERS" | "FRIEND" | "ENEMY" | "MASTER" ... (必须是大写枚举名), // 涉及的关系。changed为false时可忽略。注意是{avatar_a_name}相对于{avatar_b_name}的身份。如输出MASTER即A变为B的师傅。
"reason": "..." // 用于生成事件日志如“经过多次生死与共A与B结为道侣”。changed为false时可忽略
}}

View File

@@ -1,13 +1,8 @@
你是一个小说家这是一个仙侠世界你需要把一个事件扩展为一个约200~500字的故事。
同时,根据事件发展和双方信息,决定两人是否会有关系的变化。
你需要进行决策的NPC的dict[AvatarName, info]为
{avatar_infos}
两者可能进入的关系:{possible_new_relations}
两者可能取消的关系:{possible_cancel_relations}
注意:进入/取消关系不是必须的,完全由你根据故事情况、双方性格、历史事件等判断决定。
写作风格提示:{style}
额外主题提示:{story_prompt}
@@ -18,10 +13,6 @@
注意只返回json格式的结果格式为
{{
"thinking": ..., // 简单思考故事剧情和关系变化
"story": "", // 第三人称的故事正文,仙侠语言风格
"analyze_relation": ... // 分析是否应该有关系的取消或者新增,除非很合理,不强求关系的改变
"new_relation": ... // 如果你认为可以让两者产生某种身份关系则返回关系的中文名否则返回空str。注意这是{avatar_name_2}相对于{avatar_name_1}的身份。
"cancel_relation": ... // 可选如果你认为可以让两者取消某种身份关系则返回关系的中文名否则返回空str。注意这是{avatar_name_2}相对于{avatar_name_1}的身份。
"thinking": ..., // 简单思考故事剧情
"story": "" // 第三人称的故事正文,仙侠语言风格
}}