|
@@ -430,6 +430,28 @@ class DialogueManager:
|
|
|
|
|
|
return llm_response
|
|
|
|
|
|
+ def generate_multimodal_response(self, content: Dict) -> Optional[Dict]:
|
|
|
+ """
|
|
|
+ 处理LLM的多模态响应,更新对话状态和对话历史。
|
|
|
+ 注意:所有的LLM多模态响应都必须经过这个函数来处理!
|
|
|
+ :param content: 包含多模态内容的字典
|
|
|
+ :return: None
|
|
|
+ """
|
|
|
+ if self.current_state == DialogueState.HUMAN_INTERVENTION:
|
|
|
+ return None
|
|
|
+
|
|
|
+ # 记录响应到对话历史
|
|
|
+ message_ts = int(time.time() * 1000)
|
|
|
+ self.append_dialogue_history({
|
|
|
+ "role": "assistant",
|
|
|
+ "content": content,
|
|
|
+ "timestamp": message_ts,
|
|
|
+ "state": self.current_state.name
|
|
|
+ })
|
|
|
+ self.update_interaction_time(message_ts)
|
|
|
+
|
|
|
+ return content
|
|
|
+
|
|
|
def _get_hours_since_last_interaction(self, precision: int = -1):
|
|
|
time_diff = (time.time() * 1000) - self.last_interaction_time_ms
|
|
|
hours_passed = time_diff / 1000 / 3600
|