Spaces:
Sleeping
Sleeping
fix missing defination
Browse files
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 |
"""生成融合知识库信息的旅行计划"""
|