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:
@@ -177,3 +177,25 @@ class TestBuildReportData:
|
||||
Counter(), "")
|
||||
# "?" 不写入 DB,留 None
|
||||
assert r.events[0].sentiment is None
|
||||
|
||||
def test_multi_source_label(self) -> None:
|
||||
"""去重合并后的多来源 → source 拼接展示(Reuters, CNBC)。"""
|
||||
now = datetime(2026, 8, 4, 8, 0, 0)
|
||||
ev = _fake_high_event("多来源事件", 5, source_id="reuters",
|
||||
url="https://reuters.com/news/9")
|
||||
# 模拟 M3 去重合并:source_ids 含两个来源
|
||||
ev["article"]["source_ids"] = ["reuters", "cnbc"]
|
||||
r = _build_report_data(now, {}, [ev], Counter(), Counter(), Counter(),
|
||||
Counter(), "")
|
||||
assert r.events[0].source == "Reuters, CNBC"
|
||||
assert r.events[0].url == "https://reuters.com/news/9"
|
||||
|
||||
def test_single_source_falls_back(self) -> None:
|
||||
"""source_ids 为空/单一时回退单源逻辑(不拼接)。"""
|
||||
now = datetime(2026, 8, 4, 8, 0, 0)
|
||||
ev = _fake_high_event("单来源事件", 4, source_id="investinglive",
|
||||
url="https://investinglive.com/news/3")
|
||||
ev["article"]["source_ids"] = ["investinglive"]
|
||||
r = _build_report_data(now, {}, [ev], Counter(), Counter(), Counter(),
|
||||
Counter(), "")
|
||||
assert r.events[0].source == "InvestingLive"
|
||||
|
||||
Reference in New Issue
Block a user