Eliot0110 commited on
Commit
241abd1
·
1 Parent(s): c35766d

fix: wrong module name

Browse files
Files changed (1) hide show
  1. modules/response_generator.py +36 -2
modules/response_generator.py CHANGED
@@ -2,6 +2,7 @@ import json
2
  import random
3
  from .ai_model import AIModel
4
  from .knowledge_base import KnowledgeBase
 
5
  from utils.logger import log
6
 
7
  class ResponseGenerator:
@@ -100,7 +101,7 @@ class ResponseGenerator:
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
  """
@@ -126,7 +127,7 @@ class ResponseGenerator:
126
  # 如果没有提取到新信息,返回空字符串
127
  return ""
128
 
129
- def _get_dynamic_next_question(self, session_state: SessionState) -> str:
130
  """
131
  【新增实现】根据当前缺失的信息,生成引导性的下一个问题。
132
  """
@@ -140,6 +141,39 @@ class ResponseGenerator:
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
  """生成融合知识库信息的旅行计划"""
 
2
  import random
3
  from .ai_model import AIModel
4
  from .knowledge_base import KnowledgeBase
5
+ from .session_manager import SessionManager
6
  from utils.logger import log
7
 
8
  class ResponseGenerator:
 
101
  log.error(f"❌ 响应生成失败: {e}", exc_info=True)
102
  return "抱歉,我在处理您的请求时遇到了问题,请稍后再试。"
103
 
104
+ def _generate_vivid_acknowledgement(self, extracted_info: dict, session_state: SessionManager) -> str:
105
  """
106
  【新增实现】根据最新提取的信息,生成一句生动的、非模板化的确认语。
107
  """
 
127
  # 如果没有提取到新信息,返回空字符串
128
  return ""
129
 
130
+ def _get_dynamic_next_question(self, session_state: SessionManager) -> str:
131
  """
132
  【新增实现】根据当前缺失的信息,生成引导性的下一个问题。
133
  """
 
141
  # 这里可以从persona配置中动态生成问题,暂时使用硬编码
142
  return "您更喜欢哪种旅行风格呢?\n- 🌍 文化探索型\n- 🎨 艺术历史型\n- 🍽️ 美食购物型\n- 🏞️ 自然风光型"
143
  return "" # 所有信息都已收集
144
+
145
+
146
+ def _get_destination_name(self, session_state: dict) -> str:
147
+
148
+ destination_info = session_state.get('destination')
149
+ if destination_info and isinstance(destination_info, dict):
150
+ return destination_info.get('name', '未知目的地')
151
+ return '未知目的地'
152
+
153
+ def _get_duration_days(self, session_state: dict) -> int:
154
+
155
+ duration_info = session_state.get('duration')
156
+ if duration_info and isinstance(duration_info, dict):
157
+ # 确保即使 'days' 键不存在,也返回一个数字
158
+ return duration_info.get('days', 0)
159
+ # 关键:返回 0 而不是 None
160
+ return 0
161
+
162
+ def _format_budget_info(self, budget_data: dict | None) -> str:
163
+
164
+ if budget_data and isinstance(budget_data, dict):
165
+ # 优先使用现成的描述,因为它最准确
166
+ if budget_data.get('description'):
167
+ return budget_data['description']
168
+
169
+ # 如果没有描述,则动态创建一个
170
+ amount = budget_data.get('amount', '')
171
+ currency = budget_data.get('currency', '')
172
+ if amount: # 仅在有金额时才显示
173
+ return f"{amount} {currency}".strip()
174
+
175
+ # 如果没有预算信息或信息不完整,返回默认字符串
176
+ return '预算未设定'
177
 
178
  def _generate_knowledge_enhanced_plan(self, user_message: str, session_state: dict) -> str:
179
  """生成融合知识库信息的旅行计划"""