# LLM Intelligence Hub 面向 LLM 模型、定价与日报产出的情报采集项目,当前仓库提供: - Go 采集脚本:采集 OpenRouter、多源补充数据与官方补录数据 - PostgreSQL 数据层:保存模型、区域定价、订阅套餐、日报与运行审计 - Go HTTP API:提供模型列表、套餐列表、最新正式日报入口 - Vite + React 前端:提供 Dashboard / Explorer 两个只读页面 - Shell 运维脚本:迁移、调度、备份、恢复、验收与性能门禁 ## 两大模块 项目现在按运行职责拆成两大模块: 1. `情报采集与信号沉淀模块` 负责真实采集、官方补录、套餐导入、目录核验,以及把“新模型 / 价格变化 / 官方发布 / 活动窗口”等关键信号物化到 `daily_signal_snapshot`。 2. `日报与下游表达模块` 负责消费 `models`、`region_pricing`、`subscription_plan`、`daily_signal_snapshot` 等结构化事实,生成 HTML / Markdown 日报;后续视频、卡片流、推送等形态也应挂在这一层。 ## 当前能力边界 - 真实生产主链路是“采集/导入脚本 + PostgreSQL + 日报生成器 + API Server + Nginx” - 最新正式日报由 `scripts/run_daily.sh` 生成,并写入 `daily_report` / `report_runs` - 手工复跑使用 `scripts/run_real_pipeline.sh`,不会把产物标记成正式日报 - 历史补跑使用 `scripts/rebuild_historical_report.sh YYYY-MM-DD` - HTTP API 当前未内建认证、授权和限流;公网暴露前必须在网关层补齐 ## 目录概览 ```text cmd/server/ Go API Server internal/ 通用内部库(collector、retry) scripts/ 采集、导入、日报、验收、运维脚本 db/migrations/ PostgreSQL 迁移 frontend/ Vite + React 前端 reports/daily/ 日报产物与归档 ops/ 运维配置(如 logrotate) docs/ 补充说明与上线文档 ``` ## 本地启动 ### 1. 准备环境 ```bash cp .env.example .env ``` 至少需要配置: - `DATABASE_URL` - `OPENROUTER_API_KEY`(仅真实采集需要) 详细变量说明见 [docs/CONFIGURATION.md](docs/CONFIGURATION.md)。 ### 2. 应用数据库迁移 ```bash bash scripts/apply_migration.sh ``` ### 3. 启动 API Server ```bash go run ./cmd/server ``` 默认端口为 `8080`,可通过 `PORT` 覆盖。 ### 4. 启动前端开发环境 ```bash cd frontend npm install npm run dev ``` ## 生产运行主链路 ### 第一模块独立运行 ```bash bash scripts/run_intel_pipeline.sh ``` 该入口只执行第一模块: 1. 真实采集与多源补充 2. 官方模型价格与套餐导入 3. 平台目录核验 4. 每日关键信号物化到 `daily_signal_snapshot` 它不会生成日报,适合先把“数据与信号层”单独跑通。 ### 正式日报调度 ```bash bash scripts/run_daily.sh ``` 该脚本负责: 1. OpenRouter 真实采集 2. 多源补充同步 3. 官方导入脚本执行 4. 每日关键信号物化 5. 数据质量检查 6. Markdown / HTML 日报生成 7. 日报归档 8. `daily_report` / `report_runs` 审计写入 9. 失败时降级复制昨日报告并可选飞书告警 ### 手工真实复跑 ```bash bash scripts/run_real_pipeline.sh ``` 适用于联调、排障、上线后人工验证。该入口写入: - `run_kind=manual` - `trigger_source=pipeline` - `is_official_daily=false` ### 历史补跑 ```bash bash scripts/rebuild_historical_report.sh 2026-05-13 ``` 该入口写入: - `run_kind=historical_rebuild` - `trigger_source=rebuild_script` - `is_official_daily=false` ## 常用命令 ```bash go test ./... bash scripts/test.sh bash scripts/verify_pre_phase6.sh bash scripts/verify_phase6.sh bash healthcheck.sh cd frontend && npm run test -- --run cd frontend && npm run build ``` ## API 概览 - `GET /health` - `GET /api/v1/models` - `GET /api/v1/subscription-plans` - `GET /api/v1/reports/latest` - `GET /api/v1/reports/latest/markdown` - `GET /api/v1/reports/latest/html` 完整字段与示例见 [docs/API_REFERENCE.md](docs/API_REFERENCE.md)。 ## 文档索引 - [docs/CONFIGURATION.md](docs/CONFIGURATION.md):环境变量、运行语义、配置约束 - [docs/API_REFERENCE.md](docs/API_REFERENCE.md):API 入口、返回体与排障说明 - [docs/PRODUCTION_CHECKLIST.md](docs/PRODUCTION_CHECKLIST.md):生产上线前检查、发布与回滚流程 - [DEPLOYMENT.md](DEPLOYMENT.md):部署步骤与快速启动 - [RUNBOOK.md](RUNBOOK.md):运维巡检、故障排查、备份恢复 - [TECHNICAL_DESIGN.md](TECHNICAL_DESIGN.md):详细技术设计与数据模型演进背景 - [docs/PERFORMANCE_TEST.md](docs/PERFORMANCE_TEST.md):性能基线 ## 生产上线最低门禁 建议把以下检查作为发布前硬门禁: ```bash bash scripts/verify_pre_phase6.sh bash scripts/verify_phase6.sh ``` 上线后首轮冒烟建议至少覆盖: ```bash curl -fsS http://127.0.0.1:8080/health curl -fsS http://127.0.0.1:8080/api/v1/models curl -fsS http://127.0.0.1:8080/api/v1/reports/latest ```