Переглянути джерело

Update user profile: add interaction frequency option "stopped"

StrayWarrior 1 тиждень тому
батько
коміт
ec0d3a94c4
3 змінених файлів з 10 додано та 2 видалено
  1. 2 0
      dialogue_manager.py
  2. 1 0
      prompt_templates.py
  3. 7 2
      user_profile_extractor.py

+ 2 - 0
dialogue_manager.py

@@ -372,6 +372,8 @@ class DialogueManager:
 
         # 根据用户交互频率偏好设置不同的阈值
         interaction_frequency = self.user_profile.get("interaction_frequency", "medium")
+        if interaction_frequency == 'stopped':
+            return False
 
         # 设置不同偏好的交互时间阈值(小时)
         thresholds = {

+ 1 - 0
prompt_templates.py

@@ -182,6 +182,7 @@ USER_PROFILE_EXTRACT_PROMPT = """
 - 地区:{region}
 - 健康状况:{health_conditions}
 - 兴趣爱好:{interests}
+- 联系频率:{interaction_frequency}
 
 对话历史:
 {dialogue_history}

+ 7 - 2
user_profile_extractor.py

@@ -63,6 +63,10 @@ class UserProfileExtractor:
                             "type": "array",
                             "items": {"type": "string"},
                             "description": "用户提及的健康状况"
+                        },
+                        "interaction_frequency": {
+                            "type": "string",
+                            "description": "用户期望的交互频率。每2天联系小于1次为low,每天联系1次为medium,不再联系为stopped"
                         }
                     },
                     "required": []
@@ -132,9 +136,10 @@ if __name__ == '__main__':
         'region': '北京',
         'health_conditions': [],
         'medications': [],
-        'interests': []
+        'interests': [],
+        'interaction_frequency': 'medium'
     }
-    message = "我回天津老家了"
+    message = "没有任何问题放心,不会骚扰你了,再见"
     resp = extractor.extract_profile_info(current_profile, message)
     print(resp)
     message = "好的,孩子,我是老李头,今年68啦,住在北京海淀区。平时喜欢在微信上跟老伙伴们聊聊养生、下下象棋,偶尔也跟年轻人学学新鲜事儿。\n" \