01 · MAIN
主列表 · 三栏 + 顶部统计
顶部 4 张统计卡 / 左侧 200px 过滤器(来源/时段/最低送礼额/可 DM)/ 中间表格按 leader_score 倒序 / 右侧 320px 选中观众的 detail panel。底部 actionbar 批量操作。
Pawcast · Leader Cloudv0.1.0
已应用过滤
live_watchlist ×
daily_rank ×
scout ×
7d ×
≥500 ×
仅可 DM ×
→ 876 / 2,184 条
排序:
|
观众 |
送礼总额 |
次数 |
跨房 |
leader_score |
来源 |
最后送礼 |
|
|
陈陈大哥xx @chen_dage_88 · 1.2k 粉 可 DM |
82,400 |
186 |
14 |
99,168 |
watchlistrank |
21:42 · 今天 |
|
|
GGold Tiger @gold_tiger_jp · 482 粉 可 DM |
54,200 |
94 |
8 |
55,912 |
watchlist |
19:08 · 今天 |
|
|
|
38,700 |
142 |
6 |
40,556 |
watchlistscout |
昨天 23:12 |
|
|
DDiamondKing @diamond_king · 3.4k 粉 受限 |
29,840 |
68 |
11 |
31,704 |
rank |
昨天 21:48 |
|
|
|
18,200 |
312 |
3 |
21,056 |
scout |
前天 14:30 |
|
|
SKSilverKnight @silver_knight_77 · 124 粉 可 DM |
12,640 |
42 |
4 |
13,456 |
watchlist |
前天 19:55 |
|
|
老老牌玩家 @laopai_gamer · 1.8k 粉 未知 |
8,920 |
186 |
2 |
10,648 |
watchlist |
3 天前 |
|
|
NNewbieFan @newbie_fan_2024 · 12 粉 可 DM |
5,420 |
28 |
1 |
5,764 |
scout |
3 天前 |
|
|
王王土豪 @wang_tuhao_id · 6.2k 粉 可 DM |
4,780 |
14 |
5 |
5,492 |
rankmanual |
5 天前 |
|
|
LLuckyStar @lucky_star_777 · 248 粉 可 DM |
3,200 |
86 |
2 |
4,128 |
scout |
6 天前 |
|
显示 1-10 / 876 · 加载更多 ↓
陈
陈大哥xx
@chen_dage_88
watchlist
rank
高价值大哥,跨 14 个直播间送礼,平均每周送礼 6.2 次。偏好钻石礼物(占送礼量 78%),活跃时段集中在 21:00-23:00。曾在监控中的「东京时段」和「日榜」两条来源出现,建议优先邀约洽谈。
qwen-vl-max · 5 天前生成
跨房分布 · top 5
@yuki_live_official18,200
+ 还有 9 个直播间 · 共 ¥6,000
①顶部统计4 张卡:总数 / 高价值 / 跨房 / 可 DM。每张带 24h 增量或占比指标。
②三栏布局左 220px filter / 中表格 / 右 320px detail。仿 Apple Mail / Things 经典 3-pane。
③来源过滤4 个来源标签(live_watchlist 红 / daily_rank 紫 / scout 橙 / manual 灰)多选过滤。已选标签反映在「已应用过滤」chip 区。
④leader_score 徽章按数值分 3 档:≥ 50k 紫橙渐变 / 10k-50k 紫色 / < 10k 灰色。让一眼能看出价值梯度。
⑤Detail panel选中观众实时填充:hero + AI 画像 + KPI + 跨房分布 top5 + 4 个操作按钮。点表格行任意位置触发选中。
实现GET /api/leader-cloud?source=...&minGiftAmount=500&giftedSince=7d&canDm=1&sort=leader_score&limit=50&offset=0 · 数据从 tk_fans 聚合 · 过滤变化用 SWR 重新拉。
02 · DETAIL
单大哥详情页 · 送礼时间线 + 跨房可视化
点击列表「→」进入此页。完整 KPI 矩阵 + 全部送礼事件按时间倒序展开 + 跨房环图 + AI 画像编辑 + 完整邀约动作链。
Pawcast · Leader Detail / @chen_dage_88v0.1.0
陈
陈大哥xx 可 DM
@chen_dage_88 · uid 7245892334
live_watchlist
daily_rank
已加 watchlist · 5 天前
leader_score
99,168
▲ + 480 / 24h
送礼时间线
186 条 · 共 ¥82,400
2026-05-02 · 今天 · 共 ¥6,400
21:42
送出 大火箭 ×2
@sakura_dance_jp · room_id=7321...
+ 4,000
21:38
送出 玫瑰 ×60
@sakura_dance_jp
+ 60
21:34
送出 烟花棒 ×8
@sakura_dance_jp
+ 80
19:08
送出 跑车 ×1
@yuki_live_official
+ 2,260
2026-05-01 · 昨天 · 共 ¥3,820
23:12
送出 狮子 ×1
@hana_kpop_cover
+ 1,800
22:48
送出 跳跳虎 ×4
@hana_kpop_cover
+ 1,200
21:14
送出 玫瑰 ×80
@mira_lyrical_dance
+ 80
↓ 还有 178 条 · 加载更多 ·
高价值大哥,跨 14 个直播间送礼,平均每周送礼 6.2 次。偏好钻石礼物(占送礼量 78%),活跃时段集中在 21:00-23:00。曾在监控中的「东京时段」和「日榜」两条来源出现,建议优先邀约洽谈。
高价值
跨房
高频次
夜间活跃
钻石偏好
qwen-vl-max · 5 天前生成 · 触发:跨房数从 12 → 14
跨房分布 · 14 房
@sakura_dance_jp34%
@yuki_live_official22%
@hana_kpop_cover15%
@mira_lyrical_dance12%
@stage_x_studio9%
+ 9 房 · 8%
活跃时段
1214161820220002
峰值时段21:00 - 23:00
①Hero + 巨型 score头像、昵称、来源标签、leader_score 大数字。视觉对比拉到极致——一眼锁定核心信息。
②6 列 KPI 矩阵送礼总额 / 次数 / 跨房 / 客单 / 最后 / 关注。每列带 24h 增量提示。
③送礼时间线按天分组,每条显示时间 + 礼物名称 + 数量 + 房间 + 钻石值。可按房间过滤、按时段过滤。
④跨房环图14 房按金额占比绘环。前 5 高亮配色 + 点开看详情;其余归到 surface-3 灰段。
⑤活跃时段柱图24h 送礼分布。21-23 时段紫橙渐变高亮——告诉运营何时邀约最优。
实现路由 GET /api/leader-cloud/:userId · 时间线从 tk_gift_events 按 user_uid 拉 · AI 画像 trigger:跨房数 +2 / 送礼额 +20% / 30 天未刷新。
03 · ALGORITHM
leader_score 评分算法 · 数据流
和 catclaw 1:1 对齐:每次直播间 gift 事件触发 → 按 user_uid 聚合 → 加权计分 → upsert 到 tk_fans。无机器学习,纯加权——简单、可调、可解释。
leader_score
=
gift_amount
+
8
×
gift_count
+
120
×
gift_rooms_count
权重 1
gift_amount
钻石总额 · 主轴。直接反映「给主播多少钱」。系数 1 = 1 钻石贡献 1 score。
权重 8
gift_count × 8
送礼次数 · 频次维度。送 100 次小礼比送 1 次中礼更有粘性,所以加权 ×8。
权重 120
gift_rooms_count × 120
跨房数 · 价值维度。跨多个直播间送礼 = 真大哥而非粉丝单恋,所以最重要 ×120。
3 个真实样本对比
同等 gift_amount,跨房 vs 单房差距巨大
| 样本 |
gift_amount |
gift_count |
gift_rooms_count |
leader_score |
解读 |
| 陈大哥xx |
82,400 |
186 |
14 |
99,168 |
真大哥 · 跨房权重 +1,680 |
| 花花世界 |
18,200 |
312 |
3 |
21,056 |
高频小礼 · count 权重 +2,496 |
| NewbieFan |
5,420 |
28 |
1 |
5,764 |
单恋粉丝 · 跨房 +120 几乎无加成 |
数据流 · 从 gift 事件到大哥云
① WebCast gift 事件
RoomConnection 监听 GiftMessage event。包含 user_uid / gift_id / repeat_count / diamond_count 等 24 字段。
live-monitor.ts:142
→
② live_events 表
事件入 SQLite live_events 表(type=gift),WAL mode 写入。session_id 关联到 live_sessions。
live-events-repo.ts
→
③ syncGiftRanking
每 60s(或 session 结束)触发。SQL aggregation 按 user_uid GROUP BY,计 amount/count/rooms/last。
leader-cloud.ts:syncGiftRankingToLeaderCloud
→
④ upsertLeader
计算 leader_score = amount + count*8 + rooms*120。INSERT OR UPDATE 到 tk_fans 表。leader_sources 集合并入。
leader-cloud.ts:upsertLeader
→
⑤ AI 画像触发
跨房数 +2 或送礼额 +20% 或 30 天未刷新 → 调 qwen-vl-max 生成 interest_summary。
leader-cloud.ts:generateInterestSummary
→
⑥ /api/leader-cloud
HTTP 路由按 leader_score 倒序拉取。支持 source / canDm / minGiftAmount / giftedSince 多条件过滤 + 分页。
tiktok-routes.ts:leader-cloud
→
⑦ 私信邀约
用户在大哥云勾选 → 批量带入私信中心 → ai-dm-collector 用 leader-prompt.txt 个性化生成 → 发送。
ai-dm-collector.ts
🐾 来自 catclaw 现有代码
catclaw 已实现完整的 Leader Cloud(路径:web/server/tiktok/leader-cloud.ts + tk_fans 表的 10 个新字段)。
Pawcast Phase 3.5 直接迁移这套实现,新增的只是把表名从 tk_fans 改成 leaders + 适配 Pawcast 的 db schema 命名规范。算法、来源标签机制、AI 画像触发逻辑全部保留。
04 · SOURCES
来源标签 · 4 条采集流并行写入
leader_sources 字段是逗号分隔的来源标签集合。一个观众可同时被多个来源标记(如 watchlist + rank)。来源解释了「这个大哥是从哪里发现的」,影响优先级和邀约策略。
live_watchlist
监控直播间持续采集
主源 · 84%
监控功能 24/7 连接的直播间产生的 gift 事件,最丰富的一条来源。
触发时机
RoomConnection 收到 GiftMessage → 事件落 live_events 表 → 60s 周期 sync 到 leader cloud。
当前监控 7 房1,842 大哥
每日定时拉取直播间日榜 / 周榜 top 20 用户。即使该直播间不在监控列表,也能补全。
触发时机
每日 02:00 cron 任务,调 TikTok 直播间 ranking API → 解析 top 用户 → upsert 大哥云。
覆盖 32 房468 大哥
探索主播任务进入直播间 30-60s 时也会同步采集 gift 事件,发现非监控房的大哥。
触发时机
scout-collector connectRoom 后启动 gift listener → 离开房间时 sync 到 leader cloud。
覆盖 138 房217 大哥
运营手动粘贴 @username 或 uid 加入大哥云。用于已知 VIP 用户或合作过的客户。
触发时机
右上角「+ 添加大哥」按钮 → 输入 @username → 调 TikTok user API 拉档案 → 写入。
来自 16 个运营36 大哥
来源叠加 · 来源越多 priority 越高
leader_sources 是 set 集合(逗号分隔)。同一观众被多个来源标记 = 多条独立信号验证 = 优先级更高。
05 · MODALS
关键弹窗 · 批量 DM / 导出 / 加入 watchlist
从大哥云勾选后能做的 3 个动作:批量私信邀约 / 导出 CSV / 加入 watchlist 长期追踪。
批量私信邀约 · 大哥云带过来 14 位
×
模板:leader · 邀约
AI 起草已完成 14/14
总成本 ¥0.07 · 队列预计 1h28m
📌 leader 模板 prompt 上下文
自动注入:观众昵称 / leader_score / 跨房数 / 主活跃房间 / interest_summary(AI 画像)。让 AI 写出针对性邀约话术,不是「亲爱的玩家」这种废话。
陈
陈大哥xx
9.6
99,168
嗨陈大哥!注意到您最近常在 @sakura_dance_jp 和 @yuki_live_official 送礼,跨了 14 个直播间真的厉害!我们 Yokohama Studio 在做亚洲东京时段的团播项目,有几位主播觉得您可能会感兴趣,想邀请您来当 VIP 观众团一员?
G
Gold Tiger
9.1
55,912
Hi Gold Tiger!我们一直关注到您在多个团播直播间送礼很积极,特别是 @yuki_live_official 那场。我们 Yokohama Studio 主打日系团播,有 4 场固定档期,欢迎您过来当首发观众...
小
小金猪
7.4
40,556
嗨小金猪!我们注意到您送礼很积极。我们 Yokohama Studio 在做亚洲团播项目,欢迎来当观众...
⚠ 偏通用 · interest_summary 信号弱
·11 位待审核·
⚠ 当日还可发 4 条 · 余下 10 条会进入明天队列 · 间隔 6 分钟随机
leader 模板区别于普通主播邀约,专门针对大哥的 prompt:注入跨房数、活跃房间、AI 画像,让 LLM 写出有信号的邀约。
个性化分数基于 interest_summary 信号强度打分。<7.5 标橙提示「偏通用」,建议重新起草加更多上下文。
实现调用 ai-dm-collector.ts 的 leader 流。prompt = base_template + leader_context_block。Qwen LLM batch API 并发起草,结果流式回填 modal。
导出 CSV · 选字段
×
导出当前过滤的 876 条大哥到 CSV · 编码 UTF-8 with BOM
预览:leader-cloud-2026-05-02_876.csv · ~84 KB
加入 watchlist · 长期追踪
×
名单名
备注(可选)
追踪策略
当 leader_score 涨 ≥ 20% 时通知
将创建包含 14 位大哥的 watchlist。可在 Settings → Watchlists 管理。
watchlist 是命名 + 持久区别于过滤(临时)。Watchlist 持久存在,可订阅事件、生成周报、可被多个人看到。
4 种事件触发分数大涨 / 新跨房 / 30 天没动静 / 周报。每个独立开关,运营按需启用。
实现watchlist 是独立 SQLite 表(id / name / leader_uids[] / triggers / created_at / created_by)。事件由 leader-cloud.ts 在 upsertLeader 时检查,命中触发本地通知 + 写 events 表。