From cd4dcd06f86bc7de9f65852286f1391444bb9df8 Mon Sep 17 00:00:00 2001 From: simonkoson <28867558@qq.com> Date: Wed, 27 May 2026 19:51:23 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=AE=AA=E6=B3=95=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E8=87=B3=20v5,TPS=20=E5=AE=9A=E4=BD=8D=E4=B8=BA=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E5=BC=8F=E7=AD=96=E5=88=92=E5=8A=A9=E6=89=8B=20+=20RE?= =?UTF-8?q?ADME=20=E8=BF=9B=E5=BA=A6=E6=A0=A1=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 ++-- dev_plan.md | 25 +++++---- project_plan.md | 135 +++++++++++++++++++++++++++++++++++++----------- 3 files changed, 126 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 3581f96..47a5cf2 100644 --- a/README.md +++ b/README.md @@ -47,10 +47,11 @@ | Phase | 状态 | |---|---| -| Phase 0 环境 + Git | 单位机进行中 | -| Phase 1 后端骨架 | 家用机已完成,单位机走"路径 B 迁移" | -| Phase 1 前端骨架 | 未开始 | -| Phase 2-5 | 未开始 | +| Phase 0 环境 + Git | ✅ 已完成 | +| Phase 1 后端骨架 + 前端骨架 | ✅ 已完成 | +| Phase 2 仪表盘 + 批量导入 + 写权限收紧 | ✅ 已完成 | +| Phase 3 知识库基础设施 | 进行中 — 已完成至 Task 3(知识库树形视图按来源分组),语义搜索尚未做 | +| Phase 4–5 | 未开始 | --- @@ -187,6 +188,7 @@ uvicorn app.main:app --reload |---|---|---| | v1 | 2026-05-06 | 初版,作为单位机仓库门牌 | | **v2** | **2026-05-14** | **家用机退役,唯一开发环境为单位 4090D;Phase 2 起 MiniMax M2.7 正式日常使用;更新版本演进记录** | +| **v3** | **2026-05-27** | **进度校准:Phase 1/2 标为完成;Phase 3 Task 3 知识库树形视图已完成;清理"家用机/路径B"历史表述,不再保留迁移叙事** | --- diff --git a/dev_plan.md b/dev_plan.md index 2f28682..00c0ee3 100644 --- a/dev_plan.md +++ b/dev_plan.md @@ -2,7 +2,7 @@ > 项目:TPS(Topic Planning System)中台 > 仓库:`tps-dashboard`(Gitea) -> 修订版本:v4 · 2026-05-14 +> 修订版本:v5 · 2026-05-27 > 配套文档:`project_plan.md`(产品宪法)+ `.clinerules`(协作规则)+ `docs/git_workflow.md`(Git 操作手册) --- @@ -249,19 +249,23 @@ git push origin phase0-env-ready --- -### Phase 4a:核心 MVP(Week 5-6) +### Phase 4a:核心 MVP — 对话式 TPS(Week 5-6) -**模块 G**:报题单生成与下载(docxtpl 模板) -- 模板严格遵守"双段结构"(`.clinerules` 5.4) +> v5 升级:模块 A/C/G 合成"对话式策划助手"形态(左对话右报告、脚注式引用),详见 `project_plan.md` 模块 A/C/G + 第 2.3 节 + 6.5 节红线。 -**模块 A**:选题查重(语义检索 + 历史收视展示) -- 联动模块 E 展示外拍资源 +**前置条件(硬门槛,不满足不开工)**: +- 知识库笔记已批量录入(Backlog#2),收视数据已真实导入(Phase 2 遗留债)。**库空时对话助手"无米下锅",依据全空会毁掉第一印象。** +- Phase 3 的**朴素语义检索**已先行跑通(输入文本→返回最相关条目,带相关度/原文片段/来源),作为对话式报告的检索底座。 -**模块 C**:知识库参考(检索往期文稿 / 军报) +**模块 A(对话式策划主入口)**:左栏编导对话、右栏 AI 加工的策划参考报告(历史是否做过/收视/审片意见/可参考节目/外拍资源/知识库依据)。严守三条交互红线:求助式不投喂、脚注式锚定引用、持续对话沉淀编导判断(见 `project_plan.md` 模块 A)。 -**前端**:选题提交表单 + AI 反馈页面布局 +**模块 C(知识库依据供给)**:检索结果融入右栏报告作脚注依据,而非孤立列表。 -**🎯 Week 6 末上线 MVP**——团队真的可以用了:登录、看仪表盘、提交选题、看到查重和知识库结果、生成报题单 docx 下载。 +**模块 G(报题单生成)**:聊定后一键按范本规范化生成 docx。**只做规范化呈现,不代写立意**(见模块 G 分寸线 + 6.5 红线)。模板严守"双段结构"(`.clinerules` 5.4)。 + +**AI 成本机制**:本 Phase 起对话调用大模型,按第十一章"AI 成本与额度原则"落地——按 token 记、按人+选题归因、保守上限 + 超额提醒管理员。**朴素的一张用量表即可,严禁上 AI 网关/可观测性框架等大公司重型武器。** + +**🎯 Week 6 末上线 MVP**——团队真的可以用了:登录、看仪表盘、与 TPS 对话策划选题、看到有依据的策划报告、聊定后一键生成报题单 docx 下载。 **收尾**:写 `logs/phase4a_log.md`,打 `phase4a-mvp-launch` tag。**这是项目第一次"对内发布",务必郑重打 tag**。 @@ -486,7 +490,8 @@ tps-dashboard/ ← Git 仓库根 | v1 | 2026-04 | 初版 | | v2 | 2026-05-04 | 精简技术栈、Phase 拆分(避免 Phase 4 大爆炸)、明确每周里程碑 | | v3 | 2026-05-06 | 加 Git + Gitea 工作流;Phase 0 重排(纳入 Git);Phase 2 起 Plan 切 MiniMax M2.7;明确单位机重启路径(路径 B 推荐);新增 docs/ 目录与 phase{N} tag 收尾仪式 | -| **v4** | **2026-05-14** | **家用机退役,唯一开发环境为单位 4090D;Phase 2 起 MiniMax M2.7 正式日常使用;更新版本演进记录** | +| v4 | 2026-05-14 | 家用机退役,唯一开发环境为单位 4090D;Phase 2 起 MiniMax M2.7 正式日常使用;更新版本演进记录 | +| **v5** | **2026-05-27** | **Phase 4a 升级为"对话式 TPS"(对齐 project_plan v5):模块 A/C/G 合成左对话右报告形态;补硬门槛(数据灌入 + Phase 3 朴素检索先行);加 AI 成本机制落地说明** | --- diff --git a/project_plan.md b/project_plan.md index 3c2acff..30ea9a9 100644 --- a/project_plan.md +++ b/project_plan.md @@ -2,7 +2,7 @@ > 项目:TPS(Topic Planning System)中台 — 央视《军事科技》栏目内部工作台 > 仓库:`tps-dashboard` -> 修订版本:v4 · 2026-05-14 +> 修订版本:v5 · 2026-05-27 > 制片人:刘通 > 协作大模型:Claude Opus 4.7(顾问)+ MiniMax M2.7(Plan + Act,Cline 内双角色物理隔离) @@ -14,7 +14,7 @@ 技术实施细节、阶段时间线在姊妹文档 `dev_plan.md`;协作规则在 `.clinerules`。 -**这三份文件长期不变**;每周执行细节进 `logs/phase{N}_log.md`,不进本文。 +**这三份文件是宪法,改动应慎重,但不是不可变**——随着开发推进、制片人对系统的理解越来越具体,宪法会迭代升级(如 v5 把 TPS 从"结果列表"升级为"对话式策划助手")。每周执行细节进 `logs/phase{N}_log.md`,不进本文。 --- @@ -44,6 +44,13 @@ 这一条贯穿所有模块设计、所有 AI Prompt、所有 UI 决策。任何让 AI 替编导拍板的功能都不要做;任何把编导逼向"按 AI 建议改"的设计都要重做。 +**TPS 的产品定位(v5 明确)**:TPS 选题策划系统是一个**"带着栏目全部家底的策划助手"**,不是"主编的数字分身"。这半格之差是产品的命: + +- **主编**会说"我建议你这么做"——带判断倾向,替编导拿主意。 +- **助手**会说"顺着你这个思路,栏目里有这些相关家底,要不要我帮你理一理"——把判断的原料和脉络铺好,人来拍板。 + +TPS 做后者。它可以对话、可以加工、可以给有依据的分析("这个角度历史上收视偏低,可能和切入点有关"),但分析永远是**摆事实 + 给关联**,不是下结论("所以别做")。**AI 摆牌给编导看,牌由编导自己出。** + --- ## 三、项目目标 @@ -91,17 +98,34 @@ ## 五、产品功能模块(8 个) -### 模块 A — 选题查重(TPS 核心入口) +### 模块 A — 选题查重与对话式策划(TPS 核心入口) -**痛点**:编导提一个选题,担心做过、想知道历史成绩。 +**痛点**:编导有一个创意或灵感,担心做过、想知道历史成绩;新编导面对一堆历史节目,不知道怎么用、看不出"so what"。 -**功能**: -- 编导输入选题简介 → 系统语义检索往期 `topics` + `episodes` -- 列出 5 条相似度最高的历史节目,**展示原文 + 当年收视成绩 + 颜色标识(红蓝绿)** -- 点开任一相似节目 → 联动模块 E,展示**外拍联系人 / 联系方式 / 线索来源** -- 编导自行判断:"这选题做过但收视很高可以重做"或"这个角度我们没碰过" +**形态(v5 升级——从"结果列表"升级为"对话式策划助手")**: -**AI 哲学**:**不告诉编导"建议放弃 / 建议做"**,只展示事实让其自决。 +界面采用**左右双栏**: + +- **左栏**:编导与 TPS 的对话区。编导输入只言片语的灵感,可持续追问、逐步把思路聊清楚。 +- **右栏**:一份由 AI 加工的**策划参考报告**,随对话深入而越来越贴合。 + +报告内容(全部基于栏目自己的知识库,有依据、可追溯): + +- 这个选题方向**之前有没有人做过、是谁做的、收视成绩怎么样**(联动 `episodes`,颜色判定见第 6.1 节) +- 当时**领导有什么点评、审片意见**(联动模块 D / `review_comments`) +- **有没有可参考的往期节目**(提供节目链接/索引) +- 若涉及外拍,**是哪个单位、联系人是谁**(联动模块 E / `shooting_resources`) +- 相关的**往期文稿 / 专业期刊 / 权威资料**(联动模块 C / `knowledge_items`) + +**三条不可动摇的交互红线(经业界研究验证,见 v5 起草说明)**: + +1. **求助式,不是投喂式**:报告默认是编导"叫出来"的,而非编导刚敲半句就自动甩一整屏盖住。展开与深入由编导主动触发——主动权握在"要不要展开"这个动作上。 +2. **脚注式锚定引用**:报告里每个结论后挂一个不打扰阅读的小角标,点开才看到依据(哪期节目/哪篇期刊)。**不大面积平铺引用**,仿纸质图书脚注。此设计既让编导能一键核实、不盲信,也经研究证明能降低对 AI 的过度依赖。 +3. **持续对话沉淀编导的判断**:编导每聊一轮都在投入自己的思路,聊到最后报告里有编导自己的烙印,而非 AI 一次性吐出的成品。聊定后,可一键转入模块 G 生成报题单。 + +**AI 哲学**:**不告诉编导"建议放弃 / 建议做"**,只摆事实、给关联、做有依据的分析,让编导自决。 + +**落地顺序(重要)**:此对话式形态属 Phase 4a,且**必须在知识库笔记 + 收视数据真实灌入之后**才上线。库空时此助手"无米下锅",依据全空会毁掉第一印象。Phase 3 内先做**朴素语义检索**(输入灵感→返回最相关的几条带相关度、原文片段、来源),作为此形态的第一块积木。 ### 模块 B — 编导画像建议 @@ -115,16 +139,19 @@ **1.0 形态**:粗框架,文字一段。 **2.0 形态**:动态画像,根据每期作品自动迭代。 -### 模块 C — 知识库参考 +### 模块 C — 知识库参考(策划报告的依据来源) -**痛点**:写选题时缺背景资料,需要去翻往期文稿、军报、专家观点。 +**痛点**:写选题时缺背景资料,需要去翻往期文稿、军报、专家观点;更进一步,编导希望 AI 给的策划建议是"有出处的",不是凭空说。 -**功能**: -- 提交选题时,系统语义检索 `knowledge_items`(往期文稿 + 军报 + 内部资料) -- 列出 3-5 条最相关条目,展示摘要 + 关键词,可点开查看原文 -- 编导可选择性引用,**引用关系入库**(为未来"知识溯源"打基础) +**形态(v5 升级)**:模块 C 是模块 A 右栏报告的**知识库依据供给侧**。 -**关键技术**:pgvector + DeepSeek embedding(或 OpenAI 兼容 embedding API)+ 1536 维向量。 +- 编导在对话中表达灵感时,系统语义检索 `knowledge_items`(往期文稿 + 军报 + 专业期刊 + 内部资料) +- 检索到的条目不再是孤立"列 3-5 条让编导自己翻",而是**融入右栏报告**,作为报告里相关论断的**脚注式引用依据**(见模块 A 红线 2) +- 编导可点开任一脚注查看原文摘要 + 关键词,可选择性引用,**引用关系入库**(为 2.0"知识溯源"打基础) + +**关键技术**:pgvector + MiniMax embo-01 embedding + 1536 维向量(embedding 服务已于 Phase 3 Task 1 确定为 MiniMax embo-01,见 phase3_log)。 + +**朴素检索先行**:Phase 3 内先把"输入文本→返回最相关知识库条目"这条朴素检索链路接通(带相关度、原文片段、来源),它是模块 A 对话式报告的检索底座。 ### 模块 D — 历史审片意见展示 @@ -156,13 +183,22 @@ ### 模块 G — 报题单生成与下载 -**痛点**:报题单格式各编导各异,审核耗时。 +**痛点**:报题单格式各编导各异,审核耗时;水平参差的编导写的报题单结构残缺、要素不全、漏洞百出。 + +**形态(v5 明确)**:编导与 TPS 在模块 A 里聊定选题后,点一个按钮,把**编导已定的内容**按《军事科技》报题单格式一键生成 `.docx`,提供下载。 -**功能**: -- 编导填好选题信息 + 选好相似参考 + 选好知识库引用 → 一键生成 `.docx` 报题单 - 模板由 docxtpl 渲染,**严格遵守"双段结构"**(引子 + 列举,见 `.clinerules` 第 5.4 节) +- AI 通过学习成熟报题单范本,帮助生成的报题单**更规范**:补齐结构、统一格式、提示遗漏要素、校对装备名/概念名——专治"漏洞百出" - 编导可下载、修改、打印 +**"一键生成"的分寸线(死规矩,不可越)**: + +> 这个按钮做的是**"按范本规范化呈现编导已定的内容"**——排版 + 校对 + 结构补齐 + 遗漏提示。 +> AI **不替编导生产选题立意、不代写内容**。规范化只作用于"格式、结构、要素齐全、字词准确"这一层;选题的内容和立意永远是编导的创作。 +> 一旦 AI 在内容立意上动手,就从"助手排版"滑回了"代写",违背创作主权红线。 + +**落地顺序**:属 Phase 4a。 + ### 模块 H — 编导个人首页 + 热点雷达 **痛点**:编导想知道"今天有什么军事新闻可能值得做",目前靠各自刷微博/微信。 @@ -204,6 +240,18 @@ 默认:**引子(200-300 字)+ 列举(3-5 条 Markdown 序号,每条以 `**加粗关键词**` 开头)**。 备选:纯叙述,**仅当编导明确指定才用**。 +### 6.5 AI 摆牌不出牌(创作主权红线,v5 新增) + +TPS 是"策划助手"不是"主编数字分身"(见第 2.3 节)。落到每一处 AI 交互: + +- **摆事实、给关联、做有依据的分析**——可以。 +- **下结论、给倾向、替编导拿主意**("建议放弃/建议这么改")——不可以。 +- AI 的所有输出都是**"摆给编导看的牌"**,牌由编导自己出。 +- 凡 AI 输出处,UI 必须给编导"忽略 / 我来改写"的否决权。 +- 报题单"一键生成"只做规范化呈现,**不代写选题立意**(见模块 G 分寸线)。 + +> 自检口诀:这句 AI 的话,是"把原料铺给你看",还是"替你做了决定"?后者一律改掉。 + --- ## 七、技术栈与红线(精简版) @@ -261,11 +309,11 @@ | Phase | 时间 | 核心交付 | 完成度 | |---|---|---|---| -| Phase 0 | Day 1-2 | 环境搭建(Python/Node/PG/Git) | 家用机已完成,单位机重启 | -| Phase 1 | Week 1 | 后端 + 前端骨架 + 登录跑通 | 家用机后端已完成,前端待 | -| Phase 2 | Week 2-3 | 仪表盘 + 用户管理 + Excel 导入 | 未开始 | -| Phase 3 | Week 4 | 知识库基础设施 + 报题单导入 | 未开始 | -| Phase 4a | Week 5-6 | **MVP 上线**(报题单生成 + 查重 + 知识库参考) | 未开始 | +| Phase 0 | Day 1-2 | 环境搭建(Python/Node/PG/Git) | ✅ 已完成 | +| Phase 1 | Week 1 | 后端 + 前端骨架 + 登录跑通 | ✅ 已完成 | +| Phase 2 | Week 2-3 | 仪表盘 + 用户管理 + Excel 导入 | ✅ 已完成 | +| Phase 3 | Week 4 | 知识库基础设施 + 报题单导入 | 进行中(已完成至 Task 3 知识库树形视图;语义检索尚未做) | +| Phase 4a | Week 5-6 | **MVP 上线**(对话式 TPS + 报题单生成 + 知识库参考) | 未开始 | | Phase 4b | Week 7-9 | 画像 + 甘特图 + 资源 | 未开始 | | Phase 4c | Week 10-11 | 热点雷达 | 未开始 | | Phase 5 | Week 11-12 | 部署上线 + 反向代理整合 + Buffer | 未开始 | @@ -291,13 +339,39 @@ **接入信息**:`base_url = https://api.minimaxi.com/v1`,Model ID = `MiniMax-M2.7`(标准版,非 highspeed),API Key 已由制片人申请就绪。 +> 注意:上表是**开发期**的模型分工(谁帮我们写代码)。下文第十一章讲的是**产品运行期**的 AI 调用成本(系统上线后,编导每天用 TPS 烧的钱),两者是两笔账。 + --- -## 十一、风险与应对 +## 十一、AI 成本与额度原则(v5 新增) + +TPS 升级为对话式策划助手后,编导每用一次都要调大模型。8 人长期高频使用,这笔运行成本不小,且对话式产品有个特点:**用户聊得越爽烧得越多,而自己往往不知道在烧钱**。本节定原则,具体收费方式待 MVP 能用后再拍。 + +### 11.1 成本归属(待确认,但方向先定) + +- **优先争取栏目报销**:TPS 是栏目的生产力工具,理应走栏目经费。系统未上线前无法确认能否报销,**先记为待办,不要现在自己垫钱去设计收费系统**。 +- **不向编导收费**(明确反对):让编导自己充值或填个人 API Key,等于给"用不用这个工具"装了计价器,跟"对用户像对客户、鼓励新编导多用多练"的初心直接打架。**新编导越该多用,越不能让他舍不得花钱而不敢用。** + +### 11.2 1.0 必须预埋的三件事(不贵,但必须从第一天就埋,事后补极难) + +> 以下为业界对 LLM 应用控成本的共识做法,已用大白话翻译;**取其神,弃其形**——下面"不要做"那条尤其重要。 + +1. **按"用量(token)"记,不是按"次数"记**:同样问一次,随口问一句和把整篇文稿贴进去追问,成本差几十倍。所以计量与限额都要按真实消耗的量,而不是"今天能问几次"。 +2. **按"人 + 选题"归因**:每次调用都打上"是谁、为哪个选题"的标签。这是"费用不能都制片人出"的技术前提——将来无论报销、分摊还是台里统一付,账都清楚。 +3. **保守上限 + 超额提醒管理员**:上线时给每人先卡一个偏紧的月度额度,超了提醒管理员(制片人),看真实用量再松绑。绝不允许"某编导一个通宵烧光全月预算"。 + +### 11.3 不要做的(防止 Cline 上重型武器) + +业界控成本的文章常提"AI 网关 / OpenTelemetry / 可观测性平台"——**那是给几百上千人、多团队大公司用的重武器,8 人小项目完全不需要**。我们要的就是最朴素的:每次调用往一张表记一行(谁、何时、烧多少、为哪个选题),管理员页面看汇总、设上限。**Cline 若提议引入网关或可观测性框架,一律驳回。** + +> 落地 Phase:额度机制随对话式 TPS(Phase 4a)一起做;Phase 3 朴素检索只调 embedding(每篇几厘钱量级),暂不涉及此机制。 + +--- + +## 十二、风险与应对 | 风险 | 概率 | 应对 | |---|---|---| -| Phase 1 前端骨架延期 | 中 | 单位机有家用机的代码 zip 可参考,降低重写成本 | | MiniMax M2.7 切入 Plan 后方案质量下降 | 中 | 临时切回 claude.ai 找 Opus 4.7 重新规划,不在 Cline 里换模型 | | 历史 Excel / docx 导入解析失败 | 高 | 解析失败的文件单独列出,提示责编手工修正后重传 | | 编导抗拒使用新工具 | 中 | "辅助不替代"的产品哲学贯穿,绝不强制;先让最积极的 1-2 位编导先用,产生口碑 | @@ -306,7 +380,7 @@ --- -## 十二、不在 1.0 范围内的事 +## 十三、不在 1.0 范围内的事 明确不做、留到 2.0 或更远的: @@ -322,14 +396,15 @@ --- -## 十三、版本演进 +## 十四、版本演进 | 版本 | 日期 | 主要变化 | |---|---|---| | v1 | 2026-04 | 初版,定模块 A-G(7 个) | | v2 | 2026-05-04 | 加模块 H 热点雷达,增 2.0 兼容预埋说明 | | v3 | 2026-05-06 | 加 MiniMax M2.7 接班 Plan 模式分工(第十章)、Git 仓库信息、单位机重启路径、风险表中 Gitea 项;DeepSeek pro 全程在岗 Act | -| **v4** | **2026-05-14** | **家用机退役,唯一开发环境为单位 4090D;Phase 2 起 MiniMax M2.7 正式日常使用;更新版本演进记录** | +| v4 | 2026-05-14 | 家用机退役,唯一开发环境为单位 4090D;Phase 2 起 MiniMax M2.7 正式日常使用;更新版本演进记录 | +| **v5** | **2026-05-27** | **TPS 定位升级:模块 A/C/G 从"结果列表"升级为"对话式策划助手"(左对话右报告、脚注式锚定引用、求助式不投喂);新增第 2.3 节产品定位、6.5 节"AI 摆牌不出牌"红线、第十一章"AI 成本与额度原则";明确朴素语义检索(Phase 3)→ 对话式 TPS(Phase 4a,数据灌入后)的落地顺序;清理过期风险项** | ---