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

2.9 KiB
Raw Blame History

模拟数据脚本

本目录包含用于生成和管理 OpenClaw Market 模拟数据的脚本。

快速开始

# 一键生成模拟数据(清理 + 生成 + 同步 Redis
pnpm seed:mock

单独脚本

1. 清理数据 (clear-mock-data.ts)

清理所有模拟数据,包括:

  • MySQL 数据库中的 claws、heartbeats、tasks、token_usage、geo_cache 表
  • Redis 中的所有相关缓存
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 天内随机分布
pnpm seed:generate

3. 同步 Redis 统计 (sync-redis-stats.ts)

根据数据库数据初始化 Redis 统计:

  • 全局统计(总虾数、总任务数、总 tokens
  • 地区统计
  • 活跃 claws
  • 每小时活动数据
pnpm seed:sync

4. 模拟实时活动 (simulate-live-activity.ts)

持续模拟心跳、任务和 token 上报,让数据看起来是"活"的。

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 使用记录(按天)

环境要求

运行脚本前需要配置:

# .env
DATABASE_URL=mysql://user:password@host:3306/database
REDIS_URL=redis://host:6379

自定义配置

如需调整生成参数,编辑 generate-mock-data.ts 顶部的配置:

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