Files
llm-intelligence/DEPLOYMENT.md

159 lines
3.6 KiB
Markdown
Raw Normal View History

# LLM Intelligence Hub - 部署指南
> 版本: v1.1
> 日期: 2026-05-14
> 适用版本: Phase 3 / Phase 5
相关文档:
- `README.md`:项目入口与常用命令
- `docs/CONFIGURATION.md`:环境变量与运行语义
- `docs/PRODUCTION_CHECKLIST.md`:上线前检查、发布与回滚
---
## 环境要求
### 硬件
- CPU: 1核+
- 内存: 512MB+
- 磁盘: 5GB+
### 软件
- Go 1.22+
- Node.js 20+
- PostgreSQL 16+
- Docker 或 Podman (可选)
---
## 快速开始
### 1. 克隆仓库
```bash
git clone <repo-url> llm-intelligence
cd llm-intelligence
```
### 2. 配置数据库
```bash
# 创建数据库
createdb llm_intelligence
# 运行迁移
psql llm_intelligence < db/migrations/001_phase1_core_tables.sql
```
### 3. 配置环境变量
```bash
export DATABASE_URL="host=/var/run/postgresql dbname=llm_intelligence sslmode=disable"
export OPENROUTER_API_KEY="your-api-key"
export API_AUTH_TOKEN="replace-with-long-random-token"
# 或者export API_BASIC_AUTH_USER="review" && export API_BASIC_AUTH_PASS="replace-with-password"
export FEISHU_WEBHOOK="your-webhook-url" # 可选
```
### 4. 启动后端
```bash
go run cmd/server/main.go
```
### 5. 启动前端 (开发)
```bash
cd frontend
npm install
npm run dev
```
### 6. 配置定时任务
```bash
crontab -e
# 正式日报调度
0 8 * * * cd /path/to/llm-intelligence && bash scripts/run_daily.sh >> /tmp/llm_hub_cron.log 2>&1
# 日内价格追踪(推荐每 4 小时一次)
0 */4 * * * cd /path/to/llm-intelligence && bash scripts/run_intraday_price_watch.sh >> /tmp/llm_hub_intraday.log 2>&1
# 真实采集 + 写库 + 报告生成的手动复跑入口
cd /path/to/llm-intelligence && bash scripts/run_real_pipeline.sh
```
---
## Docker 部署
```bash
# 构建
docker build -t llm-hub .
# 或 docker-compose
docker-compose up -d
```
---
## 配置说明
| 变量 | 必填 | 说明 |
|------|------|------|
| DATABASE_URL | ✅ | PostgreSQL 连接串 |
| OPENROUTER_API_KEY | ✅ | OpenRouter API Key |
| API_AUTH_TOKEN | 条件必填 | 对外访问 `/api/*` 的 Bearer token |
| API_BASIC_AUTH_USER / API_BASIC_AUTH_PASS | 条件必填 | 对外访问 `/api/*` 的 Basic Auth 凭证 |
| API_RATE_LIMIT_PER_WINDOW | ❌ | `/api/*` 每窗口允许的请求数,默认 `60` |
| API_RATE_LIMIT_WINDOW_SEC | ❌ | `/api/*` 限流窗口秒数,默认 `60` |
| FEISHU_WEBHOOK | ❌ | 飞书告警 Webhook |
| REPORT_DATE | ❌ | 手工指定日内追踪/日报日期 |
| PORT | ❌ | API Server 监听端口,默认 8080 |
---
## 验证安装
```bash
# 健康检查(仅本机 / 私网)
curl http://localhost:8080/health
# API 鉴权
curl -H "Authorization: Bearer $API_AUTH_TOKEN" http://localhost:8080/api/v1/models
# 采集器测试
go run scripts/fetch_openrouter.go -strict-real
# 日报生成
go run scripts/generate_daily_report.go
# 运行门禁
bash scripts/verify_phase3.sh
bash scripts/verify_phase5.sh
```
---
## 常见问题
### Q: 数据库迁移失败?
确保 PostgreSQL 已启动,且用户有创建表的权限。
### Q: 前端构建失败?
检查 Node.js 版本 >= 20npm 版本 >= 10。
### Q: 采集器返回模拟数据?
`fetch_openrouter.go` 在非严格模式下会降级到模拟数据;正式调度和真实流水线默认要求 `OPENROUTER_API_KEY`、真实写库成功,并会把 `run_kind / trigger_source / is_official_daily` 写入运行审计。
### Q: 历史重建如何执行?
```bash
bash scripts/rebuild_historical_report.sh 2025-08-07
```
历史重建只会回填审计语义,不会冒充当天正式定时产出。
---
## 升级路径
- Phase 2: 告警订阅 / 用户系统 / 付费分析
- Phase 3: 多数据源 / 自动发现 / ELO评分