chore: 知识库冷启动收尾 + CCA 大洋时间戳规则 + 依赖/文档同步
- CLAUDE.md 状态更新:知识库冷启动完成,下一步语义搜索 - backend/requirements.txt 增加 python-docx(doco 导入脚本依赖) - CCA srt_writer 增加大洋"单下单上"40ms 间隔后处理 - Doco 寄存条状态更新为"已交付" Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,8 +13,8 @@
|
||||
|
||||
## 🔖 状态栏(每次结束 session 前必须更新这三行)
|
||||
|
||||
- **最后更新**:Claude Fable(顾问)| 2026-07-07
|
||||
- **当前状态一句话**:**期次一条龙录入子项目立项**(收视分析持续运行入口,落点责编录入页)——PRD v1.0 完成、制片人三项拍板已定、寄存条已建,**暂不开发**。看板 L1-L4 + 仪表盘均已就绪。
|
||||
- **最后更新**:Claude Opus(顾问)| 2026-07-07
|
||||
- **当前状态一句话**:**知识库冷启动完成**——doco 22 期融合A稿已全部导入知识库(含 embedding),下一步做语义搜索界面(Phase 4a)。
|
||||
- **下一个动手的人从这里开始**:见下方「⏩ 交接备注」
|
||||
|
||||
---
|
||||
@@ -76,15 +76,16 @@
|
||||
|
||||
## 3. 当前进度(动态,核心交接区 — 以最新快照为准)
|
||||
|
||||
- **已完成至**:收视分析看板 L1-L4 全部完成,含 L4 AI 诊断报告(DeepSeek V4 Pro 生成、摘要块三档自适应+详情页 Markdown 渲染、22期内容摘要卡入库)。
|
||||
- **正在做**:无。
|
||||
- **卡点/待解**:无硬卡点。下一刀候选见待办。
|
||||
- **已完成至**:收视分析看板 L1-L4 + 知识库冷启动(doco 22 期融合A稿批量导入,含 embedding)。
|
||||
- **正在做**:语义搜索界面(Phase 4a)。
|
||||
- **卡点/待解**:无硬卡点。
|
||||
- **Schema 状态**:episodes 表已通过 003(+7 AI 标签列)和 004(+content_digest JSONB)迁移。知识库两表不再改。
|
||||
|
||||
---
|
||||
|
||||
## 4. 已完成(只追加,最新在上)
|
||||
|
||||
- [2026-07-07] **知识库冷启动:doco 22 期融合A稿批量导入**:脚本 `backend/scripts/import_doco_transcripts.py`,docx → 提取纯文本 → 包 YAML frontmatter → 调 `store_md_file()` 入库(自动算 MiniMax embo-01 embedding)。22 篇全部成功(第02期~第23期,缺第01期无A稿),source_type=manuscript,知识库从 0 → 22 条节目文稿。
|
||||
- [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-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 对比测试)。
|
||||
|
||||
@@ -13,3 +13,4 @@ python-frontmatter==1.1.0
|
||||
pandas>=2.0.0
|
||||
openpyxl>=3.1.0
|
||||
openai>=1.0.0,<1.55.0
|
||||
python-docx>=1.1.0
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
- [2026-07-04] **编导审稿台是必要环节**:AI 拿不准的差异必须过编导确认,不能全自动。尊重编导创作主权(继承主项目设计哲学)。
|
||||
- [2026-07-04] **先独立部署再吸收**:先在 lanhao 配音 2.0 上跑通测试,成熟后并入 TPS 主项目。不等主项目进度。
|
||||
- [2026-07-04] **SRT 格式有样本**:data/ 下 3 个 SRT 是人工拍词导出的真实样本,作为格式参照。
|
||||
- [2026-07-07] **大洋"单下单上"时间戳规则**:每条字幕的结束时间 = 下一条开始时间 - 40ms(如第一条结束 08,840、第二条开始 08,880)。不论有无空白行,所有相邻字幕条目都遵守此规则。实现在 `srt_writer.py` 的 `_apply_dayang_timing()` 后处理函数。
|
||||
- [2026-07-04] **折行(拍词)规则**:
|
||||
- A. 每行 ≤ 14 字
|
||||
- B. ASR 中 >2 秒空白 → 插入空白行(屏幕清字幕)
|
||||
|
||||
@@ -24,6 +24,27 @@ def ms_to_srt_time(ms: int) -> str:
|
||||
return f"{hours:02d}:{minutes:02d}:{seconds:02d},{millis:03d}"
|
||||
|
||||
|
||||
def _apply_dayang_timing(
|
||||
subtitle_lines: List[Tuple[int, int, str]],
|
||||
) -> List[Tuple[int, int, str]]:
|
||||
"""
|
||||
大洋"单下单上":每条字幕的结束时间 = 下一条开始时间 - 40ms。
|
||||
"""
|
||||
if len(subtitle_lines) <= 1:
|
||||
return subtitle_lines
|
||||
|
||||
GAP_MS = 40
|
||||
adjusted = []
|
||||
for i, (start_ms, end_ms, text) in enumerate(subtitle_lines):
|
||||
if i < len(subtitle_lines) - 1:
|
||||
next_start = subtitle_lines[i + 1][0]
|
||||
end_ms = next_start - GAP_MS
|
||||
if end_ms < start_ms:
|
||||
end_ms = start_ms
|
||||
adjusted.append((start_ms, end_ms, text))
|
||||
return adjusted
|
||||
|
||||
|
||||
def write_srt(
|
||||
subtitle_lines: List[Tuple[int, int, str]],
|
||||
output_path: str,
|
||||
@@ -36,6 +57,8 @@ def write_srt(
|
||||
output_path: 输出文件路径
|
||||
time_offset: 时间偏移(用于正片拆分后各段从0开始计时的情况,这里不用,保持绝对时间)
|
||||
"""
|
||||
subtitle_lines = _apply_dayang_timing(subtitle_lines)
|
||||
|
||||
with open(output_path, "w", encoding="utf-8") as f:
|
||||
for idx, (start_ms, end_ms, text) in enumerate(subtitle_lines, 1):
|
||||
start = ms_to_srt_time(start_ms - time_offset)
|
||||
|
||||
@@ -103,5 +103,5 @@ Doco 子项目交付物的接口约定,见**子项目主 Brief §六**(交付什
|
||||
| 子项目 | 外迁日期 | 寄存条文件 | 状态 |
|
||||
| ---------------- | ---------- | -------------------------- | ------------------------- |
|
||||
| TPS 看板分析升级 | 2026-06-12 | `寄存条_看板升级已外迁.md` | 原型阶段收工(2026-07-03) |
|
||||
| Doco 文稿整理 | 2026-06-12 | 本文件 | **开发收尾(2026-07-03)**:22 期融合A稿已产出,成品在 `doco/deliverables/`,待批量导入主项目知识库 |
|
||||
| Doco 文稿整理 | 2026-06-12 | 本文件 | **已交付(2026-07-07)**:22 期融合A稿已批量导入主项目知识库(含 embedding),转常态运行 |
|
||||
| CCA 唱词助手 | 2026-07-04 | `寄存条CCA唱词助手子项目已外迁.md` | **立项,待开发** |
|
||||
Reference in New Issue
Block a user