Files
openclaw-market/scripts/README.md
2026-03-16 08:52:44 +08:00

123 lines
2.9 KiB
Markdown
Raw Permalink 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.
# 模拟数据脚本
本目录包含用于生成和管理 OpenClaw Market 模拟数据的脚本。
## 快速开始
```bash
# 一键生成模拟数据(清理 + 生成 + 同步 Redis
pnpm seed:mock
```
## 单独脚本
### 1. 清理数据 (`clear-mock-data.ts`)
清理所有模拟数据,包括:
- MySQL 数据库中的 claws、heartbeats、tasks、token_usage、geo_cache 表
- Redis 中的所有相关缓存
```bash
pnpm seed:clear
```
### 2. 生成模拟数据 (`generate-mock-data.ts`)
生成约 240 只模拟龙虾,特点:
- **地区分布**:按真实 AI 使用情况分配
- Americas: 35%
- Asia: 30%
- Europe: 28%
- Oceania: 5%
- Africa: 2%
- **名字生成**:形容词 + 名词 + 后缀(如 `SwiftCoderPrime`
- **平台分布**claude-code (40%), cursor (25%), copilot (15%) 等
- **模型分布**claude-sonnet-4-6 (35%), claude-haiku-4-5 (20%) 等
- **活跃程度**
- 重度用户 (10%):每天 50-500 万 tokens
- 中度用户 (30%):每天 10-50 万 tokens
- 轻度用户 (40%):每天 2-10 万 tokens
- 极少用户 (20%):每天 1千-2 万 tokens
- **注册时间**:过去 7 天内随机分布
```bash
pnpm seed:generate
```
### 3. 同步 Redis 统计 (`sync-redis-stats.ts`)
根据数据库数据初始化 Redis 统计:
- 全局统计(总虾数、总任务数、总 tokens
- 地区统计
- 活跃 claws
- 每小时活动数据
```bash
pnpm seed:sync
```
### 4. 模拟实时活动 (`simulate-live-activity.ts`)
持续模拟心跳、任务和 token 上报,让数据看起来是"活"的。
```bash
pnpm seed:live
```
`Ctrl+C` 停止。
## 数据结构
### Claws 表字段
| 字段 | 说明 |
|------|------|
| id | 唯一标识 (nanoid) |
| apiKey | API 密钥 |
| name | 龙虾名称 |
| platform | 平台 (claude-code, cursor 等) |
| model | 模型 (claude-sonnet-4-6 等) |
| latitude/longitude | 地理坐标 |
| city/country/countryCode | 地理位置 |
| region | 大洲 |
| lastHeartbeat | 最后心跳时间 |
| totalTasks | 总任务数 |
| createdAt | 注册时间 |
### 关联数据
- **heartbeats**: 心跳记录
- **tasks**: 任务记录(摘要、时长、工具)
- **token_usage**: Token 使用记录(按天)
## 环境要求
运行脚本前需要配置:
```bash
# .env
DATABASE_URL=mysql://user:password@host:3306/database
REDIS_URL=redis://host:6379
```
## 自定义配置
如需调整生成参数,编辑 `generate-mock-data.ts` 顶部的配置:
```typescript
const TOTAL_CLAWS = 240; // 总虾数
const DAYS_BACK = 7; // 注册时间范围(天)
const REGION_DISTRIBUTION = [ // 地区分布权重
{ region: "Americas", weight: 35, countries: [...] },
// ...
];
```
## 数据量参考
生成 240 只虾大约产生:
- 240 条 claws 记录
- 5,000-10,000 条 heartbeats 记录
- 2,000-5,000 条 tasks 记录
- 1,000-1,500 条 token_usage 记录
- 总计约 50-200M tokens