Eliot0110 commited on
Commit
c35766d
·
1 Parent(s): 8c24a9d

fix missing defination

Browse files
Files changed (1) hide show
  1. modules/response_generator.py +41 -0
modules/response_generator.py CHANGED
@@ -99,6 +99,47 @@ class ResponseGenerator:
99
  except Exception as e:
100
  log.error(f"❌ 响应生成失败: {e}", exc_info=True)
101
  return "抱歉,我在处理您的请求时遇到了问题,请稍后再试。"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
  def _generate_knowledge_enhanced_plan(self, user_message: str, session_state: dict) -> str:
104
  """生成融合知识库信息的旅行计划"""
 
99
  except Exception as e:
100
  log.error(f"❌ 响应生成失败: {e}", exc_info=True)
101
  return "抱歉,我在处理您的请求时遇到了问题,请稍后再试。"
102
+
103
+ def _generate_vivid_acknowledgement(self, extracted_info: dict, session_state: SessionState) -> str:
104
+ """
105
+ 【新增实现】根据最新提取的信息,生成一句生动的、非模板化的确认语。
106
+ """
107
+ if "destination" in extracted_info and extracted_info["destination"]:
108
+ dest_name = extracted_info["destination"][0]['name']
109
+
110
+ # 尝试使用您定义的城市特色描述,让回复更精彩
111
+ if dest_name in self.city_descriptions:
112
+ feature = random.choice(self.city_descriptions[dest_name])
113
+ return f"{dest_name}!一个绝佳的选择,那可是著名的'{feature}'。目的地已为您记录。"
114
+ else:
115
+ dest_country = extracted_info["destination"][0]['country']
116
+ return f"好的,目的地已确认为 {dest_country} 的 {dest_name}!一个充满魅力的地方。"
117
+
118
+ if "duration" in extracted_info and extracted_info["duration"]:
119
+ days = extracted_info["duration"]
120
+ return f"了解,{days} 天的行程,时间很充裕,可以深度体验了!"
121
+
122
+ if "budget" in extracted_info and extracted_info["budget"]:
123
+ amount = extracted_info["budget"]
124
+ return f"预算 {amount} 已记录,我会为您规划性价比最高的方案。"
125
+
126
+ # 如果没有提取到新信息,返回空字符串
127
+ return ""
128
+
129
+ def _get_dynamic_next_question(self, session_state: SessionState) -> str:
130
+ """
131
+ 【新增实现】根据当前缺失的信息,生成引导性的下一个问题。
132
+ """
133
+ if not session_state.destination:
134
+ return "请问您想去哪个或哪些城市呢?"
135
+ if not session_state.duration:
136
+ return "计划玩几天呢?"
137
+ if not session_state.budget:
138
+ return "您的旅行预算大概是多少?"
139
+ if not session_state.travel_style:
140
+ # 这里可以从persona配置中动态生成问题,暂时使用硬编码
141
+ return "您更喜欢哪种旅行风格呢?\n- 🌍 文化探索型\n- 🎨 艺术历史型\n- 🍽️ 美食购物型\n- 🏞️ 自然风光型"
142
+ return "" # 所有信息都已收集
143
 
144
  def _generate_knowledge_enhanced_plan(self, user_message: str, session_state: dict) -> str:
145
  """生成融合知识库信息的旅行计划"""