docs: 期次一条龙录入子项目立项——PRD v1.0 + 寄存条 + CLAUDE.md 登记
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,15 +13,15 @@
|
|||||||
|
|
||||||
## 🔖 状态栏(每次结束 session 前必须更新这三行)
|
## 🔖 状态栏(每次结束 session 前必须更新这三行)
|
||||||
|
|
||||||
- **最后更新**:Claude Opus(顾问+动手)| 2026-07-06
|
- **最后更新**:Claude Fable(顾问)| 2026-07-07
|
||||||
- **当前状态一句话**:Bug 修复轮完成——AI 诊断摘要块正则提取、仪表盘柱状图排序、全局页面宽度参数定位并调优(1190px)。收视分析看板 L1-L4 + 仪表盘均已就绪。
|
- **当前状态一句话**:**期次一条龙录入子项目立项**(收视分析持续运行入口,落点责编录入页)——PRD v1.0 完成、制片人三项拍板已定、寄存条已建,**暂不开发**。看板 L1-L4 + 仪表盘均已就绪。
|
||||||
- **下一个动手的人从这里开始**:见下方「⏩ 交接备注」
|
- **下一个动手的人从这里开始**:见下方「⏩ 交接备注」
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🤖 给 AI 的工作约定(READ FIRST)
|
## 🤖 给 AI 的工作约定(READ FIRST)
|
||||||
|
|
||||||
- 开工前先读完:本文件「状态栏 / 交接备注 / 关键决策」三节 + 四份宪法 + 两份外迁寄存条(`寄存条_看板升级已外迁.md`、`寄存条_doco子项目已外迁.md`)。
|
- 开工前先读完:本文件「状态栏 / 交接备注 / 关键决策」三节 + 四份宪法 + `note/` 下全部外迁寄存条(看板升级 / doco / CCA / 期次一条龙录入,共四份)。
|
||||||
- **角色定位**:Claude Code 默认是**顾问**——出方案、审 Plan、卡壳兜底、写交接文档。**写代码(Plan + Act)交给 Cline,不要架空 Cline**。顾问位是为**省 token**:日常 CRUD、常规实现不该 Claude Code 亲自写。**仅两种情况下场动手**:① Cline 连续几次改都过不去的坎;② 制片人明确点名让 Claude Code 操刀。
|
- **角色定位**:Claude Code 默认是**顾问**——出方案、审 Plan、卡壳兜底、写交接文档。**写代码(Plan + Act)交给 Cline,不要架空 Cline**。顾问位是为**省 token**:日常 CRUD、常规实现不该 Claude Code 亲自写。**仅两种情况下场动手**:① Cline 连续几次改都过不去的坎;② 制片人明确点名让 Claude Code 操刀。
|
||||||
- 给 Cline 的指令一律用**代码块**封装,方便复制;不要让制片人手动粘贴整份文件内容。
|
- 给 Cline 的指令一律用**代码块**封装,方便复制;不要让制片人手动粘贴整份文件内容。
|
||||||
- 完成一段工作 → **增量更新**:在「已完成」追加一条、「待办」勾掉/新增、必要时补「关键决策」,最后改「状态栏」三行。只追加/勾选,不重写、不删历史。
|
- 完成一段工作 → **增量更新**:在「已完成」追加一条、「待办」勾掉/新增、必要时补「关键决策」,最后改「状态栏」三行。只追加/勾选,不重写、不删历史。
|
||||||
@@ -38,6 +38,7 @@
|
|||||||
- **看板分析升级**(`寄存条_看板升级已外迁.md`):关键词——看板升级 / 双引擎象限图 / 题材热度 / AI 打标 / Prompt 1·2·3 / ground-truth / episodes 加字段 / 23 期回填 / 能力地图 / 置信度三档 / 本期诊断小结。
|
- **看板分析升级**(`寄存条_看板升级已外迁.md`):关键词——看板升级 / 双引擎象限图 / 题材热度 / AI 打标 / Prompt 1·2·3 / ground-truth / episodes 加字段 / 23 期回填 / 能力地图 / 置信度三档 / 本期诊断小结。
|
||||||
- **Doco 文稿整理**(`寄存条_doco子项目已外迁.md`):关键词——doco / 文稿整理 / 三方融合 / 视频双路拆分 / A·B 稿 / ASR / 讯飞 / DeepSeek Vision / 终版文稿 / 差异报告 / 段落对齐。**⚡ 2026-06-26 已交付:22 期融合A稿成品在 `doco/deliverables/`(按播出顺序命名),缺第01期(无A稿)。下一步:批量导入知识库(走 Phase 3 上传/embedding 链路)。**
|
- **Doco 文稿整理**(`寄存条_doco子项目已外迁.md`):关键词——doco / 文稿整理 / 三方融合 / 视频双路拆分 / A·B 稿 / ASR / 讯飞 / DeepSeek Vision / 终版文稿 / 差异报告 / 段落对齐。**⚡ 2026-06-26 已交付:22 期融合A稿成品在 `doco/deliverables/`(按播出顺序命名),缺第01期(无A稿)。下一步:批量导入知识库(走 Phase 3 上传/embedding 链路)。**
|
||||||
- **CCA 唱词助手**(`寄存条CCA唱词助手子项目已外迁.md`):关键词——cca / 唱词助手 / changci / SRT 字幕 / 拍词规则 / 编导审稿台 / 唱词校对 / ASR 转字幕 / 大洋字幕格式 / 折行规则。**⚡ 2026-07-04 立项:编导 A 稿+人声音频 → ASR+AI 校对+编导审稿 → 大洋格式 SRT。先部署 lanhao 配音 2.0 测试,成熟后并入 TPS。**
|
- **CCA 唱词助手**(`寄存条CCA唱词助手子项目已外迁.md`):关键词——cca / 唱词助手 / changci / SRT 字幕 / 拍词规则 / 编导审稿台 / 唱词校对 / ASR 转字幕 / 大洋字幕格式 / 折行规则。**⚡ 2026-07-04 立项:编导 A 稿+人声音频 → ASR+AI 校对+编导审稿 → 大洋格式 SRT。先部署 lanhao 配音 2.0 测试,成熟后并入 TPS。**
|
||||||
|
- **期次一条龙录入**(`寄存条期次一条龙录入子项目已外迁.md`,目录 `episode-intake/`):关键词——一条龙 / 期次录入流水线 / 流水线状态点 / 文稿回联期次 / transcript_item_id / 005 迁移 / AI 处理按钮 / 标签审核台 / draft-reviewed 流转 / 责编录入抽屉。**⚡ 2026-07-07 立项:责编录入页升级为每期任务清单(收视→文稿入库→AI打标+摘要卡→制片人审核→进看板),让收视分析持续生长。PRD v1.0 就绪,暂不开发;实施时落主干、走主干纪律。已拍板:文稿口径=doco 融合A稿(doco 转常态运行)、22 期导入时回联期次、责编可触发 AI 处理。**
|
||||||
|
|
||||||
**主干仍管**:Phase 0–3 主干代码、全部 backend schema/API/迁移、全部前端 React 实施、主干 bug/性能/新需求、Cline 的全部 Plan+Act。
|
**主干仍管**:Phase 0–3 主干代码、全部 backend schema/API/迁移、全部前端 React 实施、主干 bug/性能/新需求、Cline 的全部 Plan+Act。
|
||||||
|
|
||||||
@@ -84,6 +85,7 @@
|
|||||||
|
|
||||||
## 4. 已完成(只追加,最新在上)
|
## 4. 已完成(只追加,最新在上)
|
||||||
|
|
||||||
|
- [2026-07-07] **期次一条龙录入子项目立项(只立项不开发)**:① PRD v1.0 写入 `episode-intake/PRD_期次一条龙录入_v1.md`(每期任务清单模式、4 状态点、抽屉四区块、6 个新 API、005 迁移只加 transcript_item_id 一列、看板只用 reviewed 期次、四刀分期+七条验收);② 制片人三项拍板:文稿口径=doco 融合A稿(CCA 是播出前工具不算终稿,doco 转常态运行)、22 期批量导入时回联期次、责编可触发 AI 处理;③ 子项目 CLAUDE.md + 寄存条建立,CCA 寄存条清单表同步更新。
|
||||||
- [2026-07-06] **三处 Bug 修复 + 全局宽度调优**:① AI 诊断摘要块 `extractSection` 从硬编码 `indexOf` 改为正则模糊匹配,解决 DeepSeek 返回标题格式不一致导致干条不显示的问题;② 仪表盘近 12 期柱状图加 `.reverse()` 改为从左到右按播出时间升序;③ 全局内容区宽度:定位到 `.app-content`(`AppLayout.css`)的 `max-width` 是唯一有效参数(必须搭配 `width: 100%`,否则 Ant Design flex 布局下 `margin: 0 auto` 会触发 shrink-to-fit),最终定为 **1190px**。
|
- [2026-07-06] **三处 Bug 修复 + 全局宽度调优**:① AI 诊断摘要块 `extractSection` 从硬编码 `indexOf` 改为正则模糊匹配,解决 DeepSeek 返回标题格式不一致导致干条不显示的问题;② 仪表盘近 12 期柱状图加 `.reverse()` 改为从左到右按播出时间升序;③ 全局内容区宽度:定位到 `.app-content`(`AppLayout.css`)的 `max-width` 是唯一有效参数(必须搭配 `width: 100%`,否则 Ant Design flex 布局下 `margin: 0 auto` 会触发 shrink-to-fit),最终定为 **1190px**。
|
||||||
- [2026-07-03] **L4 AI 诊断报告**:① Prompt 4(内容摘要卡,MiMo 生成)+ Prompt 5(诊断报告,DeepSeek V4 Pro)撰写完成;② 22 期文稿摘要卡批量生成并导入 episodes.content_digest(004 迁移);③ 后端 POST /api/analytics/diagnosis-report 端点(组装数据+调 DeepSeek+内存缓存);④ 前端摘要块 DiagnosisSummary(左右两块、三档自适应色调、可滚动、粗体渲染)+ 详情页 DiagnosisReport(react-markdown 渲染+重新生成+免责声明);⑤ 话题性(社交货币)三维框架设计(大众认知度/降维切口/惊奇密度)。模型选型:DeepSeek V4 Pro 胜出(vs Qwen-Max 对比测试)。
|
- [2026-07-03] **L4 AI 诊断报告**:① Prompt 4(内容摘要卡,MiMo 生成)+ Prompt 5(诊断报告,DeepSeek V4 Pro)撰写完成;② 22 期文稿摘要卡批量生成并导入 episodes.content_digest(004 迁移);③ 后端 POST /api/analytics/diagnosis-report 端点(组装数据+调 DeepSeek+内存缓存);④ 前端摘要块 DiagnosisSummary(左右两块、三档自适应色调、可滚动、粗体渲染)+ 详情页 DiagnosisReport(react-markdown 渲染+重新生成+免责声明);⑤ 话题性(社交货币)三维框架设计(大众认知度/降维切口/惊奇密度)。模型选型:DeepSeek V4 Pro 胜出(vs Qwen-Max 对比测试)。
|
||||||
- [2026-07-03] **收视分析看板 React 前端实现(L1–L3)**:① 指标卡 5 列(均值/基础达标率/摸高完成率含四档动画/期次数/年度目标);② 走势折线图(dataZoom 滑块+确认按钮范围过滤,下游模块联动);③ 双列对比区(左列季度+编导、右列题材饼图+条形图);④ 双引擎象限图(题材热度×叙事结构散点,气泡编码份额/三色/钩子强度)。附带:25 期真实收视+AI 标签数据导入、侧边栏 fixed 定位、滑块滚轮冲突修复。后端 analytics API 增返 4 个 AI 标签字段。
|
- [2026-07-03] **收视分析看板 React 前端实现(L1–L3)**:① 指标卡 5 列(均值/基础达标率/摸高完成率含四档动画/期次数/年度目标);② 走势折线图(dataZoom 滑块+确认按钮范围过滤,下游模块联动);③ 双列对比区(左列季度+编导、右列题材饼图+条形图);④ 双引擎象限图(题材热度×叙事结构散点,气泡编码份额/三色/钩子强度)。附带:25 期真实收视+AI 标签数据导入、侧边栏 fixed 定位、滑块滚轮冲突修复。后端 analytics API 增返 4 个 AI 标签字段。
|
||||||
@@ -101,6 +103,7 @@
|
|||||||
|
|
||||||
- [x] ~~L4 AI 诊断报告~~ → 已完成(2026-07-03)
|
- [x] ~~L4 AI 诊断报告~~ → 已完成(2026-07-03)
|
||||||
- [ ] **下一刀三选一**:① 语义搜索界面(不依赖任何材料,随时能开,是 Phase 4a 硬门槛);② PDF 原文关联 + 大文件存储架构(需 Opus 审方案,优先级较高);③ 界面像素级打磨+视觉规范统一。
|
- [ ] **下一刀三选一**:① 语义搜索界面(不依赖任何材料,随时能开,是 Phase 4a 硬门槛);② PDF 原文关联 + 大文件存储架构(需 Opus 审方案,优先级较高);③ 界面像素级打磨+视觉规范统一。
|
||||||
|
- [ ] **期次一条龙录入开发**(子项目已立项 2026-07-07,PRD 就绪在 `episode-intake/`,等制片人排期;四刀分期,第二刀含 doco 22 期导入回联,与既有待办「200+ md 批量录入」相互独立)。
|
||||||
- [ ] PDF 大文件存储:**大文件不入库,单独文件仓库,DB 只存地址指针**(md 正文+向量留库参与检索;pdf 仅按需调阅)。地基一次定对,避免上云返工。
|
- [ ] PDF 大文件存储:**大文件不入库,单独文件仓库,DB 只存地址指针**(md 正文+向量留库参与检索;pdf 仅按需调阅)。地基一次定对,避免上云返工。
|
||||||
- [ ] 200+ Obsidian md 批量录入(**建议在 PDF 存储方案定后做**;先试 10 篇验证解析/落位再全量,每篇都真调 MiniMax 耗额度)。
|
- [ ] 200+ Obsidian md 批量录入(**建议在 PDF 存储方案定后做**;先试 10 篇验证解析/落位再全量,每篇都真调 MiniMax 耗额度)。
|
||||||
- [ ] 「按编导看稿」独立筛选视图(路线 A 重构时一并处理,从来源树里迁出来)。
|
- [ ] 「按编导看稿」独立筛选视图(路线 A 重构时一并处理,从来源树里迁出来)。
|
||||||
|
|||||||
@@ -0,0 +1,70 @@
|
|||||||
|
# 项目协作主控文件 (episode-intake/CLAUDE.md)
|
||||||
|
|
||||||
|
<!--
|
||||||
|
期次一条龙录入子项目主控文件。
|
||||||
|
通用协作原则、主项目技术栈、角色定位、Git 红线等
|
||||||
|
已在上一级 tps-dashboard/CLAUDE.md 中覆盖,不重复。
|
||||||
|
维护原则:增量更新,不整篇重写。
|
||||||
|
-->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔖 状态栏(每次结束 session 前必须更新这三行)
|
||||||
|
|
||||||
|
- **最后更新**:Claude Fable(顾问)| 2026-07-07
|
||||||
|
- **当前状态一句话**:**已立项,PRD v1.0 完成(含制片人三项拍板),未开发。** 等制片人排期后按 PRD §8 四刀实施。
|
||||||
|
- **下一个动手的人从这里开始**:读本文件 + `PRD_期次一条龙录入_v1.md` 全文。开发时严格按 PRD §8 分四刀,第一刀 Cline 指令已备好(见下方「⏩ 交接备注」)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 子项目概览
|
||||||
|
|
||||||
|
- **项目名**:期次一条龙录入(episode-intake)— 收视分析看板的"持续运行入口"
|
||||||
|
- **目标**:把每期节目的五件事(收视录入 → 文稿入库 → AI 打标+摘要卡 → 制片人审核 → 进看板)收进责编录入页面,做成每期一张任务清单,让看板从"一次性导入的静态报告"变成"每周自动生长的持续诊断"。
|
||||||
|
- **落点页面**:责编录入(`frontend/src/pages/EditorDesk/EditorDesk.jsx`)
|
||||||
|
- **完整方案**:见同目录 `PRD_期次一条龙录入_v1.md`(页面设计/API 设计/schema 变更/验收标准/分刀计划齐全)。
|
||||||
|
|
||||||
|
### 与主干的关系(特殊说明)
|
||||||
|
|
||||||
|
本子项目**实施时全部落在主干**(EditorDesk 前端 + backend API/服务 + 005 迁移),不是独立部署的应用。外迁的是**方案讨论和 PRD 迭代**;动代码时走主干纪律:Cline Plan + Opus 审 + 制片人批准 Act,005 迁移前必须 pg_dump 备份。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 关键决策(制片人已拍板,2026-07-07)
|
||||||
|
|
||||||
|
1. **文稿口径 = doco 融合A稿**。doco 以播出后唱词字幕 OCR 为最标准依据;CCA 是播出前生产工具,审片/播出后还会改,不算最终文稿。**doco 由此转入常态运行**:每期播出后跑一遍 doco 产融合A稿,作为文稿环节的固定上游。
|
||||||
|
2. **doco 22 期旧稿导入知识库时回联期次**(期次号/播出日期在文件名上,可解析匹配),挂 PRD 第二刀。
|
||||||
|
3. **责编可触发「开始 AI 处理」**(系统日常维护以责编为主)。
|
||||||
|
|
||||||
|
### 设计要点(PRD 核心结论,防跨 session 丢失)
|
||||||
|
|
||||||
|
- **任务清单模式,不是强制向导**:五环节各自独立完成,期次表格加 4 个状态点(收视/文稿/AI处理/已审核),全绿 = 进看板全部模块。
|
||||||
|
- **状态不单独存列,全部从现有字段推导**(audience_share / transcript_item_id / program_format+content_digest / ai_label_confidence)。
|
||||||
|
- **审核权仅制片人**:AI 打标落库为 draft;看板象限图等标签类模块**只用 reviewed 期次**——设计哲学红线(编导绝不见 AI 草稿值)的代码落地。
|
||||||
|
- **只加一列 schema**:005 迁移 `episodes.transcript_item_id`(软引用知识库条目,ON DELETE SET NULL,禁级联删)。存量 25 期 `ai_label_confidence` 回填 'reviewed'(源自制片人审定的 GT v0.6.0)。
|
||||||
|
- **全面复用**:Prompt 1-4 留在 `ai-labeling/prompts/` 后端只读;打标调用逻辑移植自 `ai-labeling/scripts/`;文稿入库复用 Phase 3 知识库链路;后台任务用 BackgroundTasks+内存表(不引 celery)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 待办(按 PRD §8 四刀)
|
||||||
|
|
||||||
|
- [ ] **第一刀(纯前端)**:流水线状态列 + 抽屉骨架 + 区块一(复用现有表单)
|
||||||
|
- [ ] **第二刀(后端)**:005 迁移(先 pg_dump)+ 文稿上传入库关联 + doco 22 期批量导入回联
|
||||||
|
- [ ] **第三刀**:AI 处理服务 + 后台任务 + 进度轮询
|
||||||
|
- [ ] **第四刀**:审核表单 + 权限 + 看板 reviewed 过滤
|
||||||
|
- 每刀独立验收(PRD §7 七条验收标准,制片人真实点页面逐条验)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 已完成(只追加,最新在上)
|
||||||
|
|
||||||
|
- [2026-07-07 | Claude Fable] 立项:PRD v1.0 完成(含制片人三项拍板写入 §9)、子项目文件夹建立、主项目寄存条与 CLAUDE.md 登记。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. ⏩ 交接备注
|
||||||
|
|
||||||
|
- **开发未启动**,等制片人排期。启动时从 PRD §8 第一刀开始。
|
||||||
|
- **第一刀 Cline 指令**已在 2026-07-07 主项目对话中封装好(Plan 模式:状态列+抽屉骨架+区块一+Response schema 补字段,不动 Model/不迁移)。若找不到原文,按 PRD §8 第一刀范围重新封装即可。
|
||||||
|
- **依赖提醒**:第三刀需 `backend/.env` 加 `MIMO_API_KEY`;后端确认 python-docx 依赖。
|
||||||
|
- **关联子项目**:doco(融合A稿上游,常态运行)、ai-labeling(Prompt 1-4 资产所在地,继续在那边迭代)。
|
||||||
@@ -0,0 +1,142 @@
|
|||||||
|
# PRD:期次一条龙录入(收视分析可持续化)v1.0
|
||||||
|
|
||||||
|
> 立项:2026-07-07 | 需求方:制片人 | 起草:Claude(顾问)
|
||||||
|
> 目标页面:责编录入(`frontend/src/pages/EditorDesk/EditorDesk.jsx`)
|
||||||
|
> 实施方式:Cline Plan + Opus 审 + 制片人批准 Act(含一次 schema 迁移,走既定纪律:迁移前 pg_dump 备份)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 背景与目标
|
||||||
|
|
||||||
|
看板升级的终极目标是"每做完一期节目,系统自动消化文稿和收视成绩,持续输出诊断"。但现在 25 期数据是一次性脚本导入的,往后每周新一期没有入口——收视数据、文稿入库、AI 打标、制片人审核、摘要卡生成五件事散在各处。
|
||||||
|
|
||||||
|
**本功能把这五件事收进责编录入页面,做成一条龙:责编录数据传文稿 → 系统自动 AI 处理 → 制片人审核标签 → 该期自动进入收视分析看板全部模块。**
|
||||||
|
|
||||||
|
不做成强制向导(收视数据播出次日才有、文稿可能更早就有),做成**每期一张任务清单**:五个环节各自独立完成、随时可补,页面上一眼看出"这期还差什么"。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 每期五个环节(流水线定义)
|
||||||
|
|
||||||
|
| # | 环节 | 谁操作 | 做什么 | 完成判定(从现有字段推导,不加状态列) |
|
||||||
|
|---|------|--------|--------|--------------------------------------|
|
||||||
|
| ① | 基础信息+收视 | 责编 | 现有新增/编辑期次表单,收视份额可后补 | `audience_share` 非空 |
|
||||||
|
| ② | 文稿上传 | 责编 | 上传该期 **doco 融合A稿**(docx/md)→ 自动入知识库+算向量+关联期次 | `transcript_item_id` 非空(新列,见 §5) |
|
||||||
|
| ③ | AI 处理 | 责编或制片人 | 一键触发:打标(Prompt 1/2/3 → 6 个标签字段)+ 摘要卡(Prompt 4 → content_digest),后台串行跑 | `program_format` 非空 且 `content_digest` 非空 |
|
||||||
|
| ④ | 制片人审核 | **仅制片人** | 看 AI 草稿标签,逐项可改(下拉枚举),点「审核通过」 | `ai_label_confidence == 'reviewed'` |
|
||||||
|
| ⑤ | 完成 | — | 无操作,①-④全勾即完成,该期在看板全模块生效 | 前四项全满足 |
|
||||||
|
|
||||||
|
**环节依赖**:③ 依赖 ②(没文稿没法打标);④ 依赖 ③;①与②③无顺序要求。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 页面设计(责编录入页改造)
|
||||||
|
|
||||||
|
### 3.1 「节目期次」Tab 升级为流水线视图
|
||||||
|
|
||||||
|
现有表格增加一列「流水线」,每行显示 4 个状态点(收视 / 文稿 / AI处理 / 已审核),完成=实心绿点,未完成=空心灰点。鼠标悬停显示环节名。
|
||||||
|
|
||||||
|
表格行新增「处理」按钮 → 打开该期的**流水线抽屉(Drawer)**。
|
||||||
|
|
||||||
|
### 3.2 流水线抽屉(核心新界面)
|
||||||
|
|
||||||
|
抽屉从右侧滑出(宽约 560px),从上到下四个区块,对应环节 ①-④:
|
||||||
|
|
||||||
|
**区块一:基础信息+收视**
|
||||||
|
- 只读展示期次号/节目名/播出日期/编导/收视份额,带「编辑」按钮打开现有编辑弹窗。收视份额为空时黄色提示"收视数据待补录"。
|
||||||
|
|
||||||
|
**区块二:文稿**
|
||||||
|
- 未上传:拖拽上传框(接受 .docx / .md,单文件,≤10MB)。上传后后端自动:解析文本 → 写入知识库(source_type=manuscript,author=该期编导快照)→ 调 MiniMax 算 1536 维向量 → 回写 `episodes.transcript_item_id`。
|
||||||
|
- 已上传:显示文件名+入库时间+「重新上传」按钮(重传=删旧知识库条目+走一遍新流程,需二次确认弹窗)。
|
||||||
|
|
||||||
|
**区块三:AI 处理**
|
||||||
|
- 前提未满足(无文稿):按钮置灰,提示"请先上传文稿"。
|
||||||
|
- 就绪:「开始 AI 处理」按钮。点击后后台任务串行跑 4 个 Prompt(分类/叙事/钩子/摘要卡),前端每 3 秒轮询进度,显示"打标中 2/4…"。全程预计 1-3 分钟,期间可关抽屉,不阻塞。
|
||||||
|
- 完成:展示 6 个标签结果 + 摘要卡生成时间;标签区显著标注 **「AI 草稿·待制片人审核」**(黄色 Tag)。
|
||||||
|
- 失败:显示错误信息 + 「重试」按钮(按 Prompt 粒度断点续跑,已成功的不重跑)。
|
||||||
|
|
||||||
|
**区块四:制片人审核**
|
||||||
|
- 仅制片人可见可操作(责编看到的是"待制片人审核"或"已审核"状态文字)。
|
||||||
|
- 6 个标签渲染为可编辑表单:program_format(单选下拉 6 值)、equipment_domain(多选 9 值)、scene_tags(多选 4 值)、tech_tags(多选 3 值)、narrative_structure(单选 2 值)、opening_hook(单选 3 值)。枚举值以 `ai-labeling/CLAUDE.md` §1.4 为准,前后端各存一份常量并对齐。
|
||||||
|
- 「审核通过」按钮:保存表单值 + 置 `ai_label_confidence='reviewed'`。
|
||||||
|
- 已审核后再次打开可继续修改并重新保存(保持 reviewed)。
|
||||||
|
- 已审核的期次若重跑 AI 处理,需二次确认:"该期标签已审核,重跑将覆盖为草稿状态,确定?"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 后端设计
|
||||||
|
|
||||||
|
### 4.1 新增 API(`backend/app/api/pipeline.py`,前缀 `/api/pipeline`)
|
||||||
|
|
||||||
|
| 方法 | 路径 | 权限 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| GET | `/episodes/{id}/status` | 三角色可读 | 返回该期四环节完成状态(从字段推导) |
|
||||||
|
| POST | `/episodes/{id}/transcript` | 责编+制片人 | 上传文稿:解析→知识库入库→embedding→回写关联 |
|
||||||
|
| DELETE | `/episodes/{id}/transcript` | 责编+制片人 | 删除关联文稿(重传前置步骤) |
|
||||||
|
| POST | `/episodes/{id}/ai-process` | 责编+制片人 | 启动后台 AI 处理任务,返回 task_id |
|
||||||
|
| GET | `/episodes/{id}/ai-process/status` | 三角色可读 | 轮询任务进度(pending/running 2/4/done/failed+错误信息) |
|
||||||
|
| POST | `/episodes/{id}/labels/review` | **仅制片人** | 保存审核后标签 + 置 reviewed |
|
||||||
|
|
||||||
|
### 4.2 AI 处理服务(`backend/app/services/labeling_service.py`,新建)
|
||||||
|
|
||||||
|
- 把 `ai-labeling/scripts/run_labeling.py` 和 `gen_content_digest.py` 的调用逻辑移植为后端服务函数(脚本本身保留不动,作为批量工具)。
|
||||||
|
- Prompt 文件继续从 `ai-labeling/prompts/` 读取(与 analytics.py 读 prompt5 的做法一致)——**Prompt 是活资产,继续在子项目里迭代,后端只读不复制**。
|
||||||
|
- 模型:打标+摘要卡用 **mimo-v2.5-pro**(生产模型,与子项目选型一致);`MIMO_API_KEY` 加入 `backend/.env`。
|
||||||
|
- 沿用子项目已验证的技术约束:剥 `<think>` 前缀正则、不用 `response_format=json_object`、打标关 thinking。
|
||||||
|
- 后台任务用 FastAPI `BackgroundTasks` + 内存任务表(与诊断报告内存缓存同款做法,1.0 不引入 celery/redis)。
|
||||||
|
- 打标结果落库时 `ai_label_confidence='draft'`。
|
||||||
|
|
||||||
|
### 4.3 文稿入库复用
|
||||||
|
|
||||||
|
- 复用 Phase 3 知识库上传/embedding 链路(`knowledge.py` 的入库+向量逻辑抽成可复用函数供 pipeline 调用)。
|
||||||
|
- docx→文本解析参考 `ai-labeling/scripts/import_transcripts.py`(python-docx,后端需确认依赖已装)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Schema 变更(005 迁移,需 Opus 审 + 制片人批准 + 迁移前 pg_dump)
|
||||||
|
|
||||||
|
```
|
||||||
|
005_add_transcript_link.sql
|
||||||
|
episodes 表 + 1 列:
|
||||||
|
transcript_item_id INTEGER NULL REFERENCES 知识库条目表(id) ON DELETE SET NULL
|
||||||
|
```
|
||||||
|
|
||||||
|
- 可空软引用:文稿被从知识库删除时自动断开关联(SET NULL),期次不受影响——与"软引用+快照"既有哲学一致,**禁止级联删期次**。
|
||||||
|
- 同步更新 `backend/app/models/episode.py` 和 `schemas/episode.py`。
|
||||||
|
- **不加流水线状态列**——四环节状态全部从现有字段推导(见 §2 表),避免状态与事实不同步。
|
||||||
|
- 迁移同时做一次**存量数据回填**:现有 25 期中已导入 AI 标签的,`ai_label_confidence` 统一置 `'reviewed'`(这批标签源自制片人逐期审定的 ground-truth v0.6.0,视为已审)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 与看板的联动规则(设计哲学红线落地)
|
||||||
|
|
||||||
|
- **看板象限图/题材对比等依赖 AI 标签的模块,只使用 `ai_label_confidence='reviewed'` 的期次**。草稿标签绝不进入编导可见的任何图表(红线:"未审核内容对编导显示待审核,绝不展示 AI 草稿值")。
|
||||||
|
- 走势图、指标卡等不依赖标签的模块照常显示全部期次(不受审核状态影响)。
|
||||||
|
- L4 诊断报告的数据组装同样只取 reviewed 期次的标签 + 摘要卡。
|
||||||
|
- v1 简化处理:未审核期次直接不出现在标签类图表中(不做按角色区分渲染),审核通过后自然出现。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. 验收标准(制片人真实点页面逐条验,不信自检)
|
||||||
|
|
||||||
|
1. 责编新增一期 + 填收视 → 流水线列显示 1/4 完成。
|
||||||
|
2. 上传一份真实融合A稿 docx → 知识库管理页能看到该文稿、语义可检索(向量已算)、流水线 2/4。
|
||||||
|
3. 点「开始 AI 处理」→ 3 分钟内 6 个标签+摘要卡就位,标签带"AI 草稿"黄标,流水线 3/4。
|
||||||
|
4. 用责编账号看抽屉 → 审核区不可操作;用制片人账号 → 可改标签、点审核通过 → 流水线 4/4。
|
||||||
|
5. 审核通过后刷新收视分析看板 → 该期出现在双引擎象限图和题材对比中;审核前不出现。
|
||||||
|
6. AI 处理中途断网/API 失败 → 状态显示失败+可重试,已成功的 Prompt 不重跑。
|
||||||
|
7. 重跑已审核期次 → 有二次确认,确认后标签回到草稿态、看板中该期从标签类图表消失。
|
||||||
|
|
||||||
|
## 8. 分期实施建议(给 Cline 排刀)
|
||||||
|
|
||||||
|
- **第一刀(纯前端+已有API)**:流水线状态列 + 抽屉骨架 + 区块一(复用现有表单)。
|
||||||
|
- **第二刀(后端)**:005 迁移 + 文稿上传入库关联(区块二)。**doco 22 期成品批量导入知识库+回联期次(§9.2)也挂这一刀**——迁移落地后立即有真实数据可验。
|
||||||
|
- **第三刀(后端+前端)**:AI 处理服务 + 后台任务 + 进度轮询(区块三)。
|
||||||
|
- **第四刀**:审核表单 + 权限 + 看板 reviewed 过滤(区块四 + §6)。
|
||||||
|
- 每刀独立可验收,任何一刀卡住不影响已上线部分。
|
||||||
|
|
||||||
|
## 9. 已拍板决定(制片人 2026-07-07)
|
||||||
|
|
||||||
|
1. **文稿口径 = doco 融合A稿**。理由(制片人):doco 以播出后唱词字幕 OCR 为最标准依据;CCA 是播出前生产唱词的工具,审片和播出后编导/责编还可能改,不是最终文稿。**由此确认 doco 转入常态运行:每期播出后跑一遍 doco 全流程产出融合A稿,作为环节②的固定上游。**
|
||||||
|
2. **旧期次文稿要回联期次**。doco 22 期批量导入知识库时,导入脚本一并回写 `transcript_item_id`。期次号与播出日期已在融合A稿文件名中注明(格式 `第XX期_YYYYMMDD_节目名_编导_融合A稿.docx`),可直接解析匹配。
|
||||||
|
3. **责编可触发「开始 AI 处理」**。系统日常维护以责编为主,权限按"责编+制片人"实施(即 §4.1 现设计,不改)。
|
||||||
@@ -75,4 +75,5 @@ CCA 最终要并入 TPS 主项目作为子功能。接口约定:
|
|||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| TPS 看板分析升级 | 2026-06-12 | `寄存条_看板升级已外迁.md` | 原型阶段收工(2026-07-03) |
|
| TPS 看板分析升级 | 2026-06-12 | `寄存条_看板升级已外迁.md` | 原型阶段收工(2026-07-03) |
|
||||||
| Doco 文稿整理 | 2026-06-12 | `寄存条Doco文稿整理子项目已外迁.md` | 开发收尾(2026-07-03) |
|
| Doco 文稿整理 | 2026-06-12 | `寄存条Doco文稿整理子项目已外迁.md` | 开发收尾(2026-07-03) |
|
||||||
| CCA 唱词助手 | 2026-07-04 | 本文件 | **立项,待开发** |
|
| CCA 唱词助手 | 2026-07-04 | 本文件 | 已部署腾讯云,内测中(2026-07-05) |
|
||||||
|
| 期次一条龙录入 | 2026-07-07 | `寄存条期次一条龙录入子项目已外迁.md` | 立项,PRD 就绪,待开发 |
|
||||||
|
|||||||
@@ -0,0 +1,70 @@
|
|||||||
|
# 寄存条:期次一条龙录入子项目已外迁
|
||||||
|
|
||||||
|
> 留在主 project,让未来的 Claude 一眼知道:期次一条龙录入(收视分析持续运行入口)已单独立项。
|
||||||
|
> 外迁时间:2026-07-07
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 外迁了什么
|
||||||
|
|
||||||
|
**期次一条龙录入**(episode-intake)作为子项目,目录 `episode-intake/`。
|
||||||
|
|
||||||
|
聚焦:责编录入页升级为每期流水线任务清单——收视录入 → doco 融合A稿入库(知识库+向量+回联期次)→ AI 打标+摘要卡(一键后台跑)→ 制片人审核标签 → 该期自动进收视分析看板全部模块。
|
||||||
|
|
||||||
|
目的:让看板升级的收视分析从"一次性导入"变成"每周持续生长",补上 L1 数据沉淀层的入口。
|
||||||
|
|
||||||
|
**状态:已立项,PRD v1.0 完成(含制片人三项拍板),未开发。** 方案全文见 `episode-intake/PRD_期次一条龙录入_v1.md`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 主 project 不再讨论的话题
|
||||||
|
|
||||||
|
聊到下面这些词,**先问一句"这是期次一条龙子项目的事还是主 project 的事?"**——是子项目的事,提醒制片人切到对应 chat。
|
||||||
|
|
||||||
|
关键词:一条龙 / 期次录入流水线 / 流水线状态点 / 期次任务清单 / 文稿回联期次 / transcript_item_id / 005 迁移 / AI 处理按钮 / 标签审核台 / draft-reviewed 置信度流转 / 责编录入抽屉
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 主 project 仍在管什么
|
||||||
|
|
||||||
|
- Phase 0-3 已落地的主干代码、全部 backend schema/API/迁移、全部前端 React 实施
|
||||||
|
- 责编录入页**现有功能**的 bug/维护(期次增删改、年度目标、Excel 批量导入)
|
||||||
|
- 收视分析看板 L1-L4 已上线功能的维护
|
||||||
|
- 其他子项目(看板升级 / doco / CCA)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 特殊说明:本子项目实施时落在主干
|
||||||
|
|
||||||
|
与 doco/CCA 不同,本子项目**没有独立部署物**——外迁的是方案讨论和 PRD 迭代,实施时直接改主干(EditorDesk 前端 + backend + 005 迁移)。因此实施阶段纪律:
|
||||||
|
|
||||||
|
- 走主干规矩:Cline Plan + Opus 审 + 制片人批准 Act
|
||||||
|
- **005 迁移前必须 pg_dump 备份**
|
||||||
|
- 分四刀实施(见 PRD §8),每刀独立验收,制片人真实点页面
|
||||||
|
|
||||||
|
## 已拍板决定(2026-07-07,别翻案)
|
||||||
|
|
||||||
|
1. **文稿口径 = doco 融合A稿**(CCA 是播出前工具,之后还会改,不是最终文稿)。doco 转入常态运行,每期播出后跑一遍。
|
||||||
|
2. **doco 22 期批量导入知识库时回联期次**(文件名含期次号/播出日期,解析匹配),挂第二刀。
|
||||||
|
3. **责编可触发 AI 处理**(日常维护以责编为主)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 开局口径
|
||||||
|
|
||||||
|
进主 project 新 chat:
|
||||||
|
> "续接 TPS 主项目。读 `寄存条期次一条龙录入子项目已外迁.md` 和其他寄存条。当前要做 [具体任务]。"
|
||||||
|
|
||||||
|
启动本子项目开发:
|
||||||
|
> "续接期次一条龙录入子项目。读 `episode-intake/CLAUDE.md` 和 PRD。从第 N 刀开始。"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 当前外迁的子项目清单(随更新)
|
||||||
|
|
||||||
|
| 子项目 | 外迁日期 | 寄存条文件 | 状态 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| TPS 看板分析升级 | 2026-06-12 | `寄存条看板升级已外迁.md` | 原型收工,L1-L4 已在主干实现(2026-07-06) |
|
||||||
|
| Doco 文稿整理 | 2026-06-12 | `寄存条Doco文稿整理子项目已外迁.md` | 开发收尾(2026-07-03),转常态运行(每期播出后跑) |
|
||||||
|
| CCA 唱词助手 | 2026-07-04 | `寄存条CCA唱词助手子项目已外迁.md` | 已部署腾讯云,内测中(2026-07-05) |
|
||||||
|
| 期次一条龙录入 | 2026-07-07 | 本文件 | **立项,PRD 就绪,待开发** |
|
||||||
Reference in New Issue
Block a user