modified: src/plugins/person_info/relationship_manager.py

pull/914/head
Bakadax 2025-04-30 15:24:56 +08:00
parent 3f5f41a58b
commit 561f0c81f8
1 changed files with 7 additions and 43 deletions

View File

@ -20,25 +20,13 @@ class RelationshipManager:
def mood_manager(self):
if self._mood_manager is None:
from ..moods.moods import MoodManager # 延迟导入
self._mood_manager = MoodManager.get_instance()
return self._mood_manager
def positive_feedback_sys(self, label: str, stance: str):
"""正反馈系统,通过正反馈系数增益情绪变化,根据情绪再影响关系变更"""
positive_list = [
"开心",
"惊讶",
"害羞",
]
negative_list = [
"愤怒",
"悲伤",
"恐惧",
"厌恶",
]
positive_list = ["开心", "惊讶", "害羞"]
negative_list = ["愤怒", "悲伤", "恐惧", "厌恶"]
if label in positive_list:
if 7 > self.positive_feedback_value >= 0:
@ -203,7 +191,7 @@ class RelationshipManager:
@staticmethod
async def first_knowing_some_one(platform, user_id, user_nickname, user_cardname, user_avatar):
"""判断是否认识某人"""
"""初次认识某人或更新信息"""
person_id = person_info_manager.get_person_id(platform, user_id)
# 首次认识时,除了更新 nickname也应该设置初始关系值等
initial_data = {
@ -230,35 +218,11 @@ class RelationshipManager:
async def calculate_update_relationship_value(self, chat_stream: ChatStream, label: str, stance: str) -> tuple:
"""计算并变更关系值
新的关系值变更计算方式
将关系值限定在-1000到1000
对于关系值的变更期望
1.向两端逼近时会逐渐减缓
2.关系越差改善越难关系越好恶化越容易
3.人维护关系的精力往往有限所以当高关系值用户越多对于中高关系值用户增长越慢
4.连续正面或负面情感会正反馈
返回
用户昵称变更值变更后关系等级
"""
stancedict = {
"支持": 0,
"中立": 1,
"反对": 2,
}
"""计算并变更关系值"""
stancedict = {"支持": 0, "中立": 1, "反对": 2}
valuedict = {
"开心": 1.5,
"愤怒": -2.0,
"悲伤": -0.5,
"惊讶": 0.6,
"害羞": 2.0,
"平静": 0.3,
"恐惧": -1.5,
"厌恶": -1.0,
"困惑": 0.5,
"开心": 1.5, "愤怒": -2.0, "悲伤": -0.5, "惊讶": 0.6, "害羞": 2.0,
"平静": 0.3, "恐惧": -1.5, "厌恶": -1.0, "困惑": 0.5,
}
person_id = person_info_manager.get_person_id(chat_stream.user_info.platform, chat_stream.user_info.user_id)