Files
llm-intelligence/PHASE2_REQUIREMENTS.md

396 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LLM Intelligence Hub — Phase 2 需求文档 v0.1
> 文档版本v0.1
> 日期2026-05-11
> 负责人宰相AI 辅助)
> 状态Phase 2 需求收集中
> 前置依赖Phase 1 已完成并验收通过2026-05-10
---
## 一、Phase 2 目标
在 Phase 1OpenRouter 单数据源 + 基础日报)基础上,扩展为**多源聚合的 LLM 情报中心**
1. **数据源扩展**:从 1 家OpenRouter扩展到 10+ 家平台
2. **国内模型覆盖**:接入国内主流云厂商和官方 API
3. **国际模型精选**:限制 10 个最火爆模型,精准追踪
4. **来源区分**:明确标注模型来源(官方直销 / 中转 / 免费额度)
5. **日报升级**分类视频日报、CNY 统一定价、场景化推荐
---
## 二、Phase 1 已完成优化2026-05-11
### 2.1 日报生成器 v3.1 优化
| 优化项 | 之前 | 之后 |
|--------|------|------|
| **价格单位** | USD | CNY统一按 1 USD = 7.25 CNY 换算) |
| **免费模型展示** | 368 个全部列出 | 前 20 个代表性 + 国家分布统计 |
| **国际 TOP 5** | 无意义低价(全免费) | 国际推荐 TOP 5免费为主 |
| **国内 TOP 10** | 7 个模型 | 7 个模型(带场景标签) |
| **分类板块** | 无 | 代码/推理/视觉 3 大分类 |
| **HTML UI** | 简陋表格 | 现代化信息图(卡片、渐变、响应式) |
| **场景标签** | 无 | 自动识别:代码、推理、视觉、对话 |
**实现文件**`scripts/generate_daily_report.go` v3.1
### 2.2 健康检查优化
| 优化项 | 之前 | 之后 |
|--------|------|------|
| **CPU 告警** | 瞬时高负载即告警 | 持续 60s+ 或 30min 内 3 次 10s+ 才告警 |
| **OpenClaw 检测** | 仅基本状态 | 插件编译、sqlite-vec、数据库、会话堆积、日志扫描 |
| **Hermes 监控** | 无 | 进程检查、PID 校验、日志扫描、模型可用性、数据库状态 |
**实现文件**`scripts/HEALTH_CHECK_PROMPT.md`
---
## 三、Phase 2 数据源需求
### 3.1 国内模型平台(高优先级)
| 平台 | 类型 | 模型示例 | 接入方式 |
|------|------|----------|----------|
| **智谱 AI (Zhipu AI)** | 官方 | GLM-4/5 系列 | 官方 API / 定价页 |
| **百度千帆** | 云厂商中转 | ERNIE 4.0/4.5 | 官方 API / 定价页 |
| **阿里云百炼** | 云厂商中转 | Qwen 全系列 | 官方 API / 定价页 |
| **腾讯云** | 云厂商中转 | 混元、DeepSeek | Coding Plan / Token Plan |
| **华为云** | 云厂商中转 | 盘古系列 | 官方 API / 定价页 |
| **字节火山引擎** | 云厂商中转 | Doubao、Seed | 官方 API / 定价页 |
| **Moonshot AI** | 官方 | Kimi K2 系列 | 官方 API |
| **MiniMax** | 官方 | M2/M2.5 系列 | 官方 API |
| **硅基流动 (SiliconFlow)** | 聚合中转 | 多模型聚合 | API / 定价页 |
| **DeepSeek 官方** | 官方 | DeepSeek V3/R1 | 官方 API |
| **电信/移动/联通云** | 运营商中转 | 政企 Coding Plan | 官网定价页 |
### 3.2 国际模型平台(限制 10 个最火爆)
| 平台 | 类型 | 模型示例 | 优先级 |
|------|------|----------|--------|
| **OpenAI** | 官方 | GPT-5.5, GPT-5.4, o3, o4 | P0 |
| **Anthropic** | 官方 | Claude Opus 4.7, Sonnet 4.6 | P0 |
| **Google** | 官方 | Gemini 2.5 Pro, Lyria 3 | P0 |
| **xAI** | 官方 | Grok 4.1, Grok 4 | P0 |
| **Meta** | 官方 | Llama 4 Maverick, Llama 4 Scout | P1 |
| **Mistral AI** | 官方 | Mistral Large 3, Codestral | P1 |
| **Cohere** | 官方 | Command A, Command R+ | P2 |
| **AI21 Labs** | 官方 | Jamba Large | P2 |
| **Together AI** | 聚合中转 | 多模型聚合 | P2 |
| **Groq** | 聚合中转 | 极速推理 | P2 |
**原则**:国际不超过 10 个平台聚焦最火爆模型商。OpenRouter 作为兜底聚合源保留。
### 3.3 来源区分体系
```
模型来源标识:
├── official官方直销
│ ├── OpenAI API
│ ├── 阿里云百炼
│ ├── 腾讯云
│ └── ...
├── reseller中转/聚合)
│ ├── OpenRouter
│ ├── SiliconFlow
│ ├── Together AI
│ └── ...
└── free_tier免费额度
├── 免费额度说明
├── 限流规则
└── 有效期
```
**数据库字段扩展**
- `region_pricing.source_type`: official / reseller / free_tier
- `region_pricing.free_quota`: 免费额度描述
- `region_pricing.free_limitations`: 免费限制条件JSON 数组)
- `region_pricing.rate_limit`: 限流规则
---
## 四、日报升级需求
### 4.1 视频日报T-Video-1
**目标**:按分类生成短视频日报,每个分类 30 秒
| 分类 | 内容 | 时长 |
|------|------|------|
| 代码模型日报 | 今日代码模型动态、价格变动 | 30s |
| 推理模型日报 | o3/o4/R1 等推理模型更新 | 30s |
| 视觉模型日报 | 多模态模型新上线/降价 | 30s |
| 国内模型日报 | 智谱/百度/阿里等国内动态 | 30s |
| 国际热点日报 | Top 10 国际模型价格变动 | 30s |
**技术方案**
1. 复用日报分类数据
2. 文本转语音TTS生成配音
3. HTML 截图/录屏生成视频帧
4. 拼接为完整视频
### 4.2 日报内容增强
| 增强项 | 说明 |
|--------|------|
| **价格变动追踪** | 对比昨日价格,标注涨跌 |
| **新模型上线** | 今日新入库模型列表 |
| **免费政策变更** | 免费额度调整、新免费模型 |
| **场景推荐** | 按场景(代码/写作/推理/视觉)推荐最优模型 |
| **性价比排行** | 按 $/1M tokens 性价比排序 |
---
## 五、数据采集器规划
### 5.1 采集器清单(已就绪 / 开发中)
| 采集器 | 目标平台 | 优先级 | 状态 | 文件 |
|--------|----------|--------|------|------|
| `fetch_multi_source.go` | OpenRouter + Moonshot + DeepSeek + OpenAI | P0 | ✅ 已完成(支持 `--sources` / `--dry-run` | `scripts/fetch_multi_source.go` |
| `fetch_zhipu.go` | 智谱 AI | P0 | ⏸️ 待开发 | - |
| `fetch_baidu.go` | 百度千帆 | P0 | ⏸️ 待开发 | - |
| `fetch_aliyun.go` | 阿里云百炼 | P0 | ⏸️ 待开发 | - |
| `fetch_tencent_catalog.go` | 腾讯云公开目录 / Token Plan 公共页 | P0 | ✅ 已完成(支持真实 URL / `--fixture` dry-run | `scripts/fetch_tencent_catalog.go` |
| `tencent_pricing_mapping` | 腾讯云 Token Plan / Coding Plan 套餐映射设计 | P0 | ✅ 已完成(`subscription_plan` 方案已确定) | `subscription_plan` |
| `fetch_huawei.go` | 华为云 | P1 | ⏸️ 待开发 | - |
| `fetch_bytedance.go` | 火山引擎 | P1 | ⏸️ 待开发 | - |
| `fetch_siliconflow.go` | 硅基流动 | P1 | ⏸️ 待开发 | - |
| `fetch_anthropic.go` | Anthropic | P0 | ⏸️ 待开发 | - |
### 5.2 统一采集接口
```go
type DataSource interface {
Name() string // 来源名称
FetchModels() ([]ModelInfo, error) // 抓取模型列表
FetchPricing() ([]RegionPricing, error) // 抓取定价
SourceType() string // official / reseller
FreeTier() (*FreeTierInfo, error) // 免费额度信息
}
```
### 5.3 腾讯云拆分策略
腾讯云当前不再适合继续作为一个模糊的“待开发采集器”处理,而要拆成两个独立阶段:
1. **Tencent Public CatalogT-Data-5**
- 目标:采集腾讯云公开可见页面中的套餐名称、公开模型清单、上下文长度、适用产品、页面更新时间和来源 URL
- 边界:只解决“公开目录可自动采到”的问题,不强行把套餐价格折算成每模型输入/输出单价
- 产物:`scripts/fetch_tencent_catalog.go` 或等价入口,支持真实 URL 抓取和 `--fixture` dry-run
- 当前结果:已能解析 `2026-04-27` 公开页快照中的 `8` 个套餐和 `11` 个公开模型目录项,并可将套餐结果落入 `subscription_plan`
2. **Tencent Pricing MappingT-Data-6**
- 目标:明确 `Token Plan` / `Coding Plan` 的价格如何入库、如何展示、如何验收
- 约束:腾讯云公开页以套餐订阅价为主,不是现有 `region_pricing.input_price_per_mtok / output_price_per_mtok` 擅长承载的按量单价模型
- 设计结论:新增 `subscription_plan` 表,单独保存订阅型价格,而不是把套餐信息硬塞进 `region_pricing`
**为什么不能继续复用 `region_pricing`**
- `region_pricing` 的主语是“一个模型在一个区域/运营商下的按量价格”,核心字段是 `model_id + input_price_per_mtok + output_price_per_mtok`
- 腾讯云 `Token Plan` / `Coding Plan` 的主语是“一个可售套餐”,覆盖多个模型,共享月度额度,不存在稳定的一对一 `model_id`
- `request_price` 也不足以表达腾讯云套餐,因为它仍假设“单次请求价格”,而不是“月付 + 共享 token 配额”
- 当前日报和 API 都默认把 `region_pricing` 当作“单模型价格排行”数据源;如果把套餐硬塞进去,会制造虚假的单模型单价,污染排行榜和比价结果
**设计决策:**
- `region_pricing` 继续只承载按模型的按量价格、免费额度和限流信息
- 腾讯云 `Token Plan` / `Coding Plan` 进入新表 `subscription_plan`
- 后续日报/API 若要展示腾讯云套餐,走独立“套餐订阅价”区块,不进入按模型低价排行
### 5.4 `subscription_plan` DDL 草案
```sql
CREATE TABLE subscription_plan (
id BIGSERIAL PRIMARY KEY,
provider_id BIGINT NOT NULL REFERENCES model_provider(id),
operator_id BIGINT REFERENCES operator(id),
plan_family TEXT NOT NULL CHECK (plan_family IN ('token_plan', 'coding_plan')),
plan_code TEXT NOT NULL,
plan_name TEXT NOT NULL,
tier TEXT NOT NULL,
billing_cycle TEXT NOT NULL DEFAULT 'monthly',
currency TEXT NOT NULL DEFAULT 'CNY',
list_price REAL NOT NULL CHECK (list_price >= 0),
price_unit TEXT NOT NULL,
quota_value BIGINT,
quota_unit TEXT,
context_window INTEGER,
plan_scope TEXT,
model_scope TEXT NOT NULL DEFAULT '[]',
source_url TEXT NOT NULL,
published_at TIMESTAMP,
effective_date DATE,
notes TEXT,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
UNIQUE (provider_id, plan_code, effective_date)
);
```
**推荐的 `subscription_plan` 字段草案:**
- `id`
- `provider_id`
- `operator_id`
- `plan_family`
- `plan_code`
- `plan_name`
- `tier`
- `billing_cycle`
- `currency`
- `list_price`
- `price_unit`
- `quota_value`
- `quota_unit`
- `model_scope`
- `context_window`
- `plan_scope`
- `source_url`
- `published_at`
- `notes`
### 5.5 腾讯云套餐映射规则
1. **一行代表一个可售套餐**
- 例如 `通用 Token Plan / Lite`
- 例如 `Hy Token Plan / Max`
2. **不为套餐伪造模型单价**
- 不根据套餐价格反推 `input_price_per_mtok`
- 不把 `月费 / 套餐额度` 近似写成某个模型的输入/输出单价
3. **模型覆盖范围写入 `model_scope`**
- `model_scope` 保存当前套餐公开支持的模型清单
- 建议以 JSON 数组字符串形式保存,例如 `["glm-5","glm-5.1","hunyuan-t1"]`
4. **`context_window` 仅保存套餐页明确声明的上限**
- 如果页面只说明某个模型支持 `256K`,则写在对应套餐行的 `context_window`
- 页面未明确给出时允许为空
5. **公开目录采集与正式落库分离**
- `fetch_tencent_catalog.go` 负责提取公共页信息
- 后续导入脚本或迁移任务负责写入 `subscription_plan`
6. **日报/API 展示边界**
- 日报新增“腾讯云套餐订阅价”区块
- `/api/v1/models` 继续只返回模型级价格
- 套餐信息通过独立接口 `/api/v1/subscription-plans` 暴露
### 5.6 后续实施入口
- `T-Data-7`:新增 `subscription_plan` 迁移与导入链路
- `T-Data-8`:✅ 日报展示腾讯云套餐订阅价摘要
- `T-Data-9`:✅ API 暴露 `subscription_plan` 查询入口
- `T-3.3`:✅ Dashboard 已消费 `/api/v1/subscription-plans`,前端独立展示腾讯云套餐订阅价
---
## 六、验收标准
### Phase 2 完成条件
1. **数据源覆盖**:≥ 10 家平台接入(国内 7+,国际 3+
2. **模型总量**:≥ 500 个模型条目(当前 377
3. **国内模型**:≥ 50 个国内付费模型(当前 7
4. **来源区分**:所有模型标注 official/reseller/free_tier
5. **日报升级**
- CNY 统一定价 ✅
- 分类展示 ✅
- 场景标签 ✅
- 视频日报原型 ✅GIF + WAV 原型)
6. **更新频率**:每日 08:00 自动触发,覆盖所有数据源
---
## 七、任务清单(已导入 TASKS.md
### 数据源主线
- `T-Data-1`:✅ 规划基线完成
- `T-Data-2`:✅ 多源采集器入口落地
- `T-Data-3`:✅ 国内厂商种子与来源字段落库
- `T-Data-4`:✅ Phase 2 多源采集验收
- `T-Data-5`:✅ 腾讯云公开目录采集入口
- `T-Data-6`:✅ 腾讯云 Token Plan 套餐映射设计
- `T-Data-7`:✅ 腾讯云套餐表迁移与导入
- `T-Data-8`:✅ 日报接入腾讯云套餐订阅价
- `T-Data-9`:✅ 套餐订阅价独立 API
### 前端消费主线
- `T-3.3`:✅ Dashboard 接入套餐订阅价
### 视频日报主线
- `T-Video-1`:✅ 规划基线完成
- `T-Video-2`:✅ 视频日报生成 pipeline 落地GIF + WAV 原型)
- `T-Video-3`:✅ 视频日报端到端验收脚本
---
## 附录已抓取价格数据2026-05-11
### 抓取状态汇总
| 平台 | 类型 | 状态 | 已抓取模型数 | 说明 |
|------|------|------|-------------|------|
| **OpenRouter** | 国际聚合 | ✅ 完整 | 365 | 采集器已就绪 `fetch_multi_source.go` |
| **智谱 AI** | 国内 official | ✅ 完整 | 29 | 无头浏览器抓取 + 手动整理入库 |
| **百度千帆** | 国内 official | ✅ 完整 | 44 | 无头浏览器抓取 + 解析入库 |
| **Moonshot (Kimi)** | 国内 official | ✅ 完整 | 3 | 采集器已就绪 |
| **DeepSeek** | 国内 official | ✅ 完整 | 2 | 采集器已就绪 |
| **OpenAI** | 国际 official | ✅ 完整 | 3 | 采集器已就绪 |
| **阿里云百炼** | 国内 reseller | ⚠️ 部分 | 8+ | 模型列表已抓取,定价需登录 |
| **腾讯云** | 国内 reseller | ✅ 目录/套餐/API/前端 已接入 | 11公开目录 + 8套餐落库 | 公共页已可解析;`subscription_plan` 已落 8 条腾讯云套餐记录,已进入日报独立套餐区块,并可通过 `/api/v1/subscription-plans` 查询Dashboard 已独立展示套餐订阅价;模型级价格仍单独走 `region_pricing` |
| **华为云** | 国内 reseller | ❌ 受限 | 0 | 404 未找到定价页 |
| **字节火山引擎** | 国内 reseller | ✅ 完整 | 43 | 无头浏览器抓取 + 解析入库 |
| **硅基流动** | 国内聚合 | ❌ 受限 | 0 | 需要登录 |
| **Anthropic** | 国际 official | ❌ 受限 | 0 | 页面动态渲染 + 区域限制 |
### 已抓取完整数据
#### Moonshot (Kimi) - official
| 模型 | 输入(缓存命中) | 输入(缓存未命中) | 输出 | 上下文 |
|------|---------------|-----------------|------|--------|
| kimi-k2.6 | ¥1.10 | ¥6.50 | ¥27.00 | 262,144 |
| kimi-k2-0905-preview | ¥1.00 | ¥4.00 | ¥16.00 | 262,144 |
| kimi-k2-0711-preview | ¥1.00 | ¥4.00 | ¥16.00 | 131,072 |
| kimi-k2-turbo-preview | ¥1.00 | ¥8.00 | ¥58.00 | 262,144 |
| kimi-k2-thinking | ¥1.00 | ¥4.00 | ¥16.00 | 262,144 |
| moonshot-v1-8k | ¥2.00 | - | ¥10.00 | 8,192 |
| moonshot-v1-32k | ¥5.00 | - | ¥20.00 | 32,768 |
| moonshot-v1-128k | ¥10.00 | - | ¥30.00 | 131,072 |
#### DeepSeek - official
| 模型 | 输入(缓存命中) | 输入(缓存未命中) | 输出 | 上下文 |
|------|---------------|-----------------|------|--------|
| deepseek-v4-flash | $0.0028 | $0.14 | $0.28 | 1M |
| deepseek-v4-pro | $0.003625 | $0.435 | $0.87 | 1M |
**注意**deepseek-v4-pro 当前 75% 折扣(至 2026/05/31
#### OpenAI - official
| 模型 | 输入 | 缓存输入 | 输出 |
|------|------|----------|------|
| GPT-5.5 | $5.00 | $0.50 | $30.00 |
| GPT-5.4 | $2.50 | $0.25 | $15.00 |
| GPT-5.4 mini | $0.75 | $0.075 | $4.50 |
#### 阿里云百炼 - reseller/cloud模型列表价格待抓取
- qwen3.6-max-preview, qwen3.6-plus, qwen3.6-flash
- deepseek-v4-pro, deepseek-v4-flash, kimi-k2.6
- glm-5.1, MiniMax-M2.7
### 受限平台解决策略
| 平台 | 解决方式 | 优先级 |
|------|----------|--------|
| 智谱 AI | 尝试 API 接口 / 模拟浏览器请求 | P0 |
| 百度千帆 | 查找子页面 / 使用 API 文档 | P0 |
| 腾讯云 | 先做公开目录采集,再设计 Token Plan / Coding Plan 套餐映射;必要时单独新增 `subscription_plan` 表 | P0 |
| 华为云 | 查找正确的定价文档 URL | P1 |
| 字节火山引擎 | 使用 headless 浏览器 / API 接口 | P1 |
| 硅基流动 | 登录后抓取 / 使用 API 文档 | P1 |
| Anthropic | 使用 API 端点 / headless 浏览器 | P0 |
---
*本文档随需求变化持续更新。最后更新2026-05-13*