Files
llm-intelligence/README.md

186 lines
5.0 KiB
Markdown
Raw Normal View History

# 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
```