| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import importlib.util
- import sys
- import types
- from pathlib import Path
- PROJECT_ROOT = Path(__file__).resolve().parents[1]
- MODULE_PATH = PROJECT_ROOT / "utils" / "thinking_summary.py"
- utils_module = types.ModuleType("utils")
- config_module = types.ModuleType("utils.config")
- prompt_loader_module = types.ModuleType("utils.prompt_loader")
- config_module.settings = types.SimpleNamespace(thinking_summary=types.SimpleNamespace(enabled=True))
- prompt_loader_module.load_prompt = lambda *args, **kwargs: ""
- sys.modules.setdefault("utils", utils_module)
- sys.modules["utils.config"] = config_module
- sys.modules["utils.prompt_loader"] = prompt_loader_module
- spec = importlib.util.spec_from_file_location("thinking_summary_under_test", MODULE_PATH)
- thinking_summary = importlib.util.module_from_spec(spec)
- spec.loader.exec_module(thinking_summary)
- def test_normalize_thinking_summary_uses_user_question_prefix():
- text = (
- "用户问的是“蜀道矿业集团出台过哪些有关于汛期安全管理的制度和办法”。"
- "这个问题属于集团或子公司内部制度查询。"
- )
- normalized = thinking_summary.normalize_thinking_summary(text)
- assert normalized.startswith("用户问的是")
- assert "我们需要理解问题:" not in normalized
- assert "识别用户明确查询" not in normalized
- assert "问题核心主题" not in normalized
- assert "需结合公司主体" not in normalized
- def test_fallback_thinking_summary_uses_user_question_prefix():
- summary = thinking_summary._build_fallback_summary(
- "蜀道矿业集团出台过哪些有关于汛期安全管理的制度和办法",
- max_points=3,
- max_output_chars=600,
- )
- assert summary.startswith("用户问的是")
- assert "我们需要理解问题:" not in summary
|