本提交为 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 本地已不存在,本提交记为删除
4.2 KiB
4.2 KiB
外部账号数据导入处理规范
适用范围:
/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)提取规则 ★核心
- 来源:
*账号设定.md的「一、账号核心定位」章节(键:赛道 / 账号类型 / 核心受众 / 核心标签 / 内容路线 / 情绪锚点 …)。 - 必须转纯文本段落:去掉 markdown 表格样式(
|、---、**加粗标记),格式为键名:值逐行段落。 - 不得与简介(bio)相同:
content与bio是两个字段。- 账号信息.json 里只有 bio,没有定位 → 定位一律从账号设定.md 提取;
- 提取不到时才允许用
bio兜底(代码层已实现content: info.content || info.bio,data 模式传content优先)。
- 赛道(hot_accounts.track):从「账号核心定位」的「赛道」键提取,取第一个主赛道(
" / "分隔取首段),如生活vlog赛道;代码层已支持track: info.track。 - 示例(王微斯,已入库):
赛道:生活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。