Files
dsh_mcn_agent/profiles/web/node_modules/dsh-plugin-mcn/docs/外部账号导入处理规范.md
T
admin 856e632807 baseline: dsh 工作区基线快照(2026-09-10,全新历史起点)
本提交为 dsh_mcn_workshop 仓库的首个提交(旧仓 dsh_MCNProject 已停用),
完整固化 C:/Users/Administrator/.dsh 当前磁盘状态。

1) 临时数据清理:移出 sessions/(81M)、logs/、skill-backup-20260906/(14M)、
   scripts/__pycache__、storages/workspace.json.bak —— 合计 94M(.dsh 162M → 68M)
2) 凭据脱敏:.credentials.yaml(含明文 DEEPSEEK_API_KEY)移出 git 跟踪并加入
   .gitignore;mcn-data-insight/scripts/setup_redfox_key.py 中真实 key 示例改为占位符
3) .gitignore 增补 logs/、skill-backup-*/ 规则
4) 技能结构以当前磁盘状态为准:skills/ = mcn-short-video / impeccable / taste-skill /
   dsh-multi-user-migration;旧技能目录(mcn-dou-analysis、storyboard-prompt、
   short-video-script、browser-harness、mcn-data-insight)与
   profiles/web/node_modules/dsh-vision-router 本地已不存在,本提交记为删除
2026-09-10 22:31:45 +08:00

4.2 KiB
Raw Blame History

外部账号数据导入处理规范

适用范围:/mcn/api/external/stage → preview → import(data 模式)链路中,AI 对 …/账号对标/<账号名>/ 文件夹的归一化处理。首次沉淀:2026-08-16 王微斯账号导入(1 账号 / 54 视频 / 14 分析)。


一、目录结构识别

文件 用途
账号信息.json 账号资料 → accounts
短视频表格.xlsx 13 列视频表 → videos(54 条)
*账号设定.md → analyses[persona];同时是「定位/内容」的提取来源
*账号数据分析.md → analyses[account]
视频对标/<视频标题>/ 下:*_拆解分析.md + 原视频解析.json(或 content.json+analysis.json) → analyses[video];json 的 title 用于匹配 xlsx 视频

注:原视频解析.json 与 analysis.json+content.json 是同一批解析数据的两种导出变体, 均含 title,匹配时先读 原视频解析.json、没有再读 content.json。


二、定位/内容(hot_accounts.content)提取规则 ★核心

  1. 来源:*账号设定.md 的「一、账号核心定位」章节(键:赛道 / 账号类型 / 核心受众 / 核心标签 / 内容路线 / 情绪锚点 …)。
  2. 必须转纯文本段落:去掉 markdown 表格样式(|、---、** 加粗标记),格式为 键名:值 逐行段落。
  3. 不得与简介(bio)相同:content 与 bio 是两个字段。
    • 账号信息.json 里只有 bio,没有定位 → 定位一律从账号设定.md 提取;
    • 提取不到时才允许用 bio 兜底(代码层已实现 content: info.content || info.bio,data 模式传 content 优先)。
  4. 赛道(hot_accounts.track):从「账号核心定位」的「赛道」键提取,取第一个主赛道(" / " 分隔取首段),如 生活vlog赛道;代码层已支持 track: info.track。
  5. 示例(王微斯,已入库):
赛道:生活vlog赛道 / 甜宠情感剧情 / 乙女向沉浸体验
账号类型:固定主角+轮换搭档——女主王微斯固定不变,每期搭讪不同类型高颜值男主,但风格统一、情绪底色一致
核心受众:18-35岁女性、磕糖爱好者、颜控党、乙女向代入感爱好者,对浪漫邂逅有情感投射的年轻群体
核心标签:第一视角沉浸撩汉 + 直球拽姐拿捏 + 纯情帅哥反差萌破防
内容路线:街头搭讪破冰 → 极限推拉互撩 → 肢体接触升温 → 深夜交心破防 → 浪漫收尾升华
情绪锚点:王微斯 = 替所有女生完成"主动追帅哥"的爽文体验,每期换一个帅哥被她拿捏

三、其余归一化规则(沿用)

accounts

  • nickname → account_name;douyin_id / sec_uid 保持字符串;
  • followers / total_likes 保留展示格式(如 409.2万);works_count / age 转 int;
  • 丢弃非标准字段(如 video_count_collected);可附 source_dir 溯源。

videos(xlsx 13 列)

  • 列名别名匹配:视频ID / 视频标题 / 视频地址 / 点赞数 / 点赞(显示) / 评论数 / 分享数 / 收藏数 / 播放量 / 视频时长 / 发布时间 / 标签;
  • tags 按逗号拆分数组(保留 # 前缀);
  • 数字列转 int;duration / publish_time 保留源格式字符串;
  • 播放量为 0 属源数据缺失,照实入库。

analyses

  • persona:*账号设定.md 全文;
  • account:*账号数据分析.md 全文;
  • video:*_拆解分析.md 全文;video_aweme_id 必须匹配到 xlsx 视频: 匹配优先级 = json title 精确 → 归一化包含(去空白/标点)→ 相似度 >0.8 → md 头部「视频标题」→ 文件夹名首段;
  • summary:优先取 md 内「结论/核心定位/核心结论」章节,取不到用开头 200 字。

其他

  • 去重由脚本层处理(content 字节精确比对);
  • ⚠️ Python 读文件默认 CRLF→LF 归一,需按源文件字节精确回写(open(p,'rb').read().decode('utf-8')),否则 dir 模式去重比对失败;
  • 大体积 data 请求需服务端 readBody 已修复(Buffer 拼接解码),否则多字节字符可能损坏为 U+FFFD。