- domestic_full.sh / pipeline.sh 新增 --no-report 参数:跳过日报生成, 保持 M1 抓取 + M2→M6 管道不变,用于 12:00/18:00 只抓不生成日报 - crontab: 07:00 全量含日报,12:00/18:00 --no-report(日报每日一次,降低 LLM 费用) - docs/llm-models.md: 各 LLM 调用点分别用的 provider/model 事实清单 - docs/llm-cost-analysis.md: 真实 token 消耗与费用构成、降本建议 - docs/llm-cache-optimization.md: DeepSeek 上下文缓存机制与命中率提升设计 - docs/README.md 增加上述三个文档索引
4.5 KiB
4.5 KiB
LLM 使用点与模型对照清单
本文档是「各使用大模型(LLM)的地方分别用哪个 provider / 哪个模型」的唯一事实源。 数据来源:当前
configs/system.yaml+ 已生成data/events/*/的实际调用记录(provider/model 字段)。
一、结论速览(当前生效)
| 场景 | 使用位置 | Provider | 模型 | 计费账户 |
|---|---|---|---|---|
| M4 翻译 + 事件抽取 | llm/pipeline.py → llm/extractor.py |
DeepSeek | deepseek-v4-flash |
DeepSeek |
| M7 日报 AI 摘要 | scheduler/reporter.py::_call_llm_simple |
DeepSeek | deepseek-v4-flash |
DeepSeek |
| M5 向量生成 | embedding/pipeline.py |
DashScope | text-embedding-v3 |
阿里云百炼 |
| M6 入库向量/MCP 检索查询向量化 | vectorstore/pipeline.py、mcp_server/server.py |
DashScope | text-embedding-v3 |
阿里云百炼 |
⚠️ 常见误区:M4 翻译用的就是 DeepSeek(不是 Qwen/DashScope)。有人会误记成「翻译用的是别的模型」,很可能是因为 M5/M6 的向量化走的是 DashScope(阿里云百炼),而翻译走的是 DeepSeek——两者账户 / 账单是分开的。已在 2026-08-21 / 08-22 / 08-30 生成的
data/events/*/xxx.json中核实 87 条记录的provider=deepseek、model=deepseek-v4-flash。
二、各调用点详情
1. M4 翻译 + 事件抽取(DeepSeek)
- 入口:
llm/pipeline.py::translate_all_deduped→llm/extractor.py::translate_and_extract - 配置来源:
configs/system.yaml→llm_scenes.translationllm_scenes: translation: provider: "deepseek" model: "deepseek-v4-flash" temperature: 0.1 max_tokens: 8192 - API 密钥:
DEEPSEEK_API_KEY、DEEPSEEK_BASE_URL=https://api.deepseek.com(.env) - 说明:单篇独立调用,全文英译中 + 投资事件抽取合并一次输出(JSON)。是全项目 token 消耗与费用的绝对主力。
2. M7 日报 AI 摘要(DeepSeek)
- 入口:
scheduler/reporter.py::_call_llm_simple(_generate_ai_summary) - 配置来源:
configs/system.yaml→llm_scenes.daily_reportllm_scenes: daily_report: provider: "deepseek" model: "deepseek-v4-flash" temperature: 0.3 max_tokens: 1500 - 说明:高重要度事件分批(≤10 条/批)生成各批摘要后合并;截断时以更高 max_tokens 重试;全部失败走规则兜底。
3. M5 向量生成(DashScope)
- 入口:
embedding/pipeline.py::embed_all_events - 配置来源:
configs/system.yaml→embedding段embedding: provider: "dashscope" dashscope_model: "text-embedding-v3" dimension: 1024 batch_size: 10 max_attempts: 3 timeout_sec: 30 - API 密钥:
QWEN_API_KEY/DASHSCOPE_API_KEY、QWEN_BASE_URL(.env) - 说明:批量向量化,输出 dim=1024。费用极低,不计入 DeepSeek 账单。
4. M6 入库 / MCP 检索查询向量化(DashScope)
- 入口:
vectorstore/pipeline.py::search_news(入库 payload 由 M5 结果构建)、mcp_server/server.py::search_news - 配置来源:同上
embedding段(入库向量与查询向量必须同模型,故共用一份配置)。
三、不使用大模型的环节
- M1 抓取(Playwright/Crawl4AI)、M2 正文提取(trafilatura)、M3 去重(SimHash/指纹库)、M6 Qdrant upsert、M9 MySQL 写入 —— 均不调用 LLM / embedding。
四、切换 provider / 模型时须知
- 翻译 / 摘要可选 DeepSeek 或 Qwen:
llm_scenes.<场景>.provider设为deepseek或qwen,同时确认对应.env里有对应*_API_KEY/*_BASE_URL。llm/client.py::load_llm_config支持 provider 覆盖。 - Embedding 不能随便切:Qdrant
en_finance_news入库向量与检索向量必须同模型。切换模型必须recreatecollection 并全量回灌(ingest_all_embeddings(recreate=True)),否则跨模型向量无法比较。 - 改配置后建议:改
provider/model后重跑一次管道确认data/events/*/的provider/model字段一致,避免两套模型混用。
五、参考
configs/system.yaml(llm/llm_scenes/embedding)- docs/llm-cost-analysis.md(成本构成与降本建议)
- docs/configuration.md 第 3.5/3.6 节(配置说明)
- DeepSeek 官方模型与价格