# 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.translation` ```yaml llm_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_report` ```yaml llm_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` 段 ```yaml 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 / 模型时须知 1. **翻译 / 摘要可选 DeepSeek 或 Qwen**:`llm_scenes.<场景>.provider` 设为 `deepseek` 或 `qwen`,同时确认对应 `.env` 里有对应 `*_API_KEY`/`*_BASE_URL`。`llm/client.py::load_llm_config` 支持 provider 覆盖。 2. **Embedding 不能随便切**:Qdrant `en_finance_news` 入库向量与检索向量必须同模型。切换模型必须 `recreate` collection 并全量回灌(`ingest_all_embeddings(recreate=True)`),否则跨模型向量无法比较。 3. **改配置后建议**:改 `provider/model` 后重跑一次管道确认 `data/events/*/` 的 `provider/model` 字段一致,避免两套模型混用。 ## 五、参考 - `configs/system.yaml`(`llm` / `llm_scenes` / `embedding`) - [docs/llm-cost-analysis.md](llm-cost-analysis.md)(成本构成与降本建议) - [docs/configuration.md](configuration.md) 第 3.5/3.6 节(配置说明) - [DeepSeek 官方模型与价格](https://api-docs.deepseek.com/zh-cn/quick_start/pricing/)