Spaces:
Sleeping
Sleeping
fix: gersona choose
Browse files- modules/response_generator.py +17 -12
modules/response_generator.py
CHANGED
|
@@ -53,18 +53,23 @@ class ResponseGenerator:
|
|
| 53 |
|
| 54 |
def _get_current_persona_config(self, session_state: dict) -> dict:
|
| 55 |
"""获取当前persona配置"""
|
| 56 |
-
persona_info = session_state.get("persona"
|
| 57 |
-
if isinstance(persona_info, dict):
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
|
| 69 |
def generate(self, user_message: str, session_state: dict, extracted_info: dict) -> str:
|
| 70 |
"""生成融合知识库的智能回复"""
|
|
|
|
| 53 |
|
| 54 |
def _get_current_persona_config(self, session_state: dict) -> dict:
|
| 55 |
"""获取当前persona配置"""
|
| 56 |
+
persona_info = session_state.get("persona")
|
| 57 |
+
if not isinstance(persona_info, dict) or "key" not in persona_info:
|
| 58 |
+
# 如果 persona 尚未设置或格式不正确,记录日志并抛出异常
|
| 59 |
+
log.error(f"❌ 在会话 {session_state.get('session_id')} 中缺少有效的 persona 配置。当前 persona 状态: {persona_info}")
|
| 60 |
+
raise ValueError("无法在会话状态中找到有效的 'persona' 配置。对话流程可能存在问题。")
|
| 61 |
+
|
| 62 |
+
persona_key = persona_info["key"] # 既然检查过,就可以安全地直接访问
|
| 63 |
+
|
| 64 |
+
persona_config = self.personas.get(persona_key)
|
| 65 |
+
|
| 66 |
+
# 3. 检查获取到的 key 是否真的存在于配置中
|
| 67 |
+
if not persona_config:
|
| 68 |
+
log.error(f"❌ persona key '{persona_key}' 在系统中未定义。")
|
| 69 |
+
raise ValueError(f"提供的 persona key '{persona_key}' 是一个无效的配置项。")
|
| 70 |
+
|
| 71 |
+
log.info(f"✅ 成功加载 Persona: {persona_config.get('name', persona_key)}")
|
| 72 |
+
return persona_config
|
| 73 |
|
| 74 |
def generate(self, user_message: str, session_state: dict, extracted_info: dict) -> str:
|
| 75 |
"""生成融合知识库的智能回复"""
|