feat: AI 模型按场景独立配置(llm_scenes)+ 去重多来源合并
- system.yaml 新增 llm_scenes(translation / daily_report,含用途/方法/模型要求说明) - load_llm_config(scene=...) 场景覆盖;日报摘要 temperature 0.3 硬编码 → 配置 - M3 去重:唯一篇记录 source_ids(跨源重复合并,首个来源为 source_id) - source_ids 经翻译透传至 events,日报事件 source 多来源拼接展示(≤3 个) - 已部署 pi5:merge 实证 10 源合并;日报 report_id=224 正常入库
This commit is contained in:
@@ -463,6 +463,29 @@ class TestLoadLLMConfig:
|
||||
config = load_llm_config(provider="deepseek")
|
||||
assert config.max_attempts == 3
|
||||
|
||||
def test_scene_translation(self, monkeypatch):
|
||||
"""translation 场景覆盖 llm 默认段(模型/温度)。"""
|
||||
monkeypatch.setenv("DEEPSEEK_API_KEY", "sk-deepseek-test-key")
|
||||
config = load_llm_config(provider="deepseek", scene="translation")
|
||||
assert config.model == "deepseek-v4-flash"
|
||||
assert config.temperature == 0.1
|
||||
assert config.max_attempts == 3
|
||||
|
||||
def test_scene_daily_report(self, monkeypatch):
|
||||
"""daily_report 场景独立配置(温度 0.3 / max_tokens 1500)。"""
|
||||
monkeypatch.setenv("DEEPSEEK_API_KEY", "sk-deepseek-test-key")
|
||||
config = load_llm_config(scene="daily_report")
|
||||
assert config.provider == "deepseek"
|
||||
assert config.model == "deepseek-v4-flash"
|
||||
assert config.temperature == 0.3
|
||||
assert config.max_tokens == 1500
|
||||
|
||||
def test_scene_unknown_falls_back_to_default(self, monkeypatch):
|
||||
"""未定义的场景名回退 llm 默认段,不报错。"""
|
||||
monkeypatch.setenv("DEEPSEEK_API_KEY", "sk-deepseek-test-key")
|
||||
config = load_llm_config(provider="deepseek", scene="not_exists")
|
||||
assert config.temperature == 0.1
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------- #
|
||||
# translate_and_extract(mock LLM)
|
||||
|
||||
Reference in New Issue
Block a user