Files
beige/plans/俊达对标-增量落地映射.md
yangqianqian 6a2632da70 baseline: Clover 独立仓库首次基线提交
将 Clover 从上层产品包旧仓库中独立出来,建立专属版本控制。
当前状态=纵切片端到端已打通(登录→选品→出文出图→审核→下载包),
M1文案质量去套路化已验收。此提交作为后续按核销清单逐条修复的基线。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 11:30:22 +08:00

171 lines
15 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 俊达产品 → Clover 增量落地映射(对照代码版)
> 2026-06-15 落盘。来源俊达万牛会分享PPT 31页《电商XAI·一家小公司的探索》+ 现场演示视频2段 + 倩倩/俊达口述全文稿)。
> 目的把俊达那套小红书电商全链路AI系统里**值得借鉴的增量**,逐条对照 Clover 现有代码拆到「动哪个文件、加哪张表、改哪个函数」,开工直接照做。
> 对齐基准Clover 走 **13环目标导向**(见 `plans/13环目标导向-修改验收总纲.md`),当前 P0 修第5/6环、P2 等北哥给定义。本文增量**全部挂到 13 环语言下**,不另起炉灶。
> 代码事实底座:勘验于 2026-06-15backend 迁移已到 0116容器可跑通task41 端到端 312s 成功)。
---
## 〇、一句话结论(先看这个)
俊达和 Clover 是**同构但错位**:俊达铺的是**全链路广度**(内容+客服+企微+ERP+投放闭环+AI做产品Clover 扎的是**内容生产单点深度**(尤其生图工程化,比俊达展示的更细)。
所以借鉴 = **用俊达的广度,补 Clover 深度之外的空白**,不是照抄。
**经代码核实后,真正的增量只有 4 个(按 ROI 排序):**
| 优先级 | 增量 | Clover 现状 | 落到 13 环 | 建议窗口 |
|---|---|---|---|---|
| ⭐P0-轻 | **改稿 diff 作飞轮最强信号** | 🔴 缺:飞轮缺这一路信号 | 增强第8环审核回路 | 一期 1B 可补 |
| ⭐P1 | **爆款拆解中心(产品化)** | 🟡 表建了没接线 | 第11环裂变的「前置入口」 | 一期可补 |
| P2 | **素材资产化 + 效果评级库** | 🔴 完全没有 | 第12环归档的「升级版」 | 留二期 |
| P3 | **提示词版本化中台 + 投放数据闭环** | 🔴 没有 | 超出13环范围 | 留二/三期 |
> ⚠️ 两个**伪增量**(看着像缺、其实不缺,别浪费工时)见 §五。
---
## 一、Clover 代码现状基线(落盘锚点,后续每条增量对照这个)
> 增量要挂在已有代码上,先把"已经有什么"钉死,避免重复造或挂错地方。
### 飞轮(已跑通,是 Clover 的魂)
- **信号枚举**`backend/app/constants/enums.py``SignalType` 5个值text_select/image_select/approve/reject_with_reason/regenerate+ `SIGNAL_WEIGHTS` 权重表(选+3/审过+5/打回-3
- **信号写入**`app/services/flywheel_service.py:record_signal()` — 业务接口内部调用,不暴露独立埋点端点(契约红线)。
- **信号采集入口**`app/api/v1/task_actions.py`(选文案/选图)+ `app/api/v1/review.py`(审核 approve/reject
- **聚合注入**`app/services/ai_engine/preference_aggregator.py:aggregate_preference_context()` — 取最近50条 → 最常选角度 + 打回原因近3条原文 → 拼 `prompt_fragment`
- **prompt 组装**`app/services/ai_engine/prompt_composer.py:compose_variants()` — 飞轮片段追加到 user_prompt 末尾(不污染 system 红线)。
- **数据表**`app/models/flywheel.py``preference_events`迁移004+ `ai_call_logs`
- **前端**`frontend/src/components/FlywheelBanner.tsx`"本次已注入"提示)+ `stores/preferenceStore.ts`
### 爆款拆解(地基埋了,没接线)
- **表已建**`app/models/fission.py``fission_tasks`迁移010+ `generation_tasks.source_fission_id`迁移011
- **❌ 缺**:无 fission 的 service / api / worker / 前端(已 grep 确认 `app/api app/services app/workers` 零引用)。
- **关联**13环里这是「第11环裂变」总核销表 M7 状态 = ⏸️等北哥给档位定义。
### 标杆分析第2环等北哥给8维
- `app/models/task.py:GenerationTask.benchmark_ids` + 迁移009 `features_json/analyze_status`;总核销表 M6 = ⏸等北哥给8维。
### 生图(比俊达展示的深)
- `app/services/ai_engine/storyboard.py`(分镜+`overlay_text` 压字)+ `image_gen.py:146-153`AI生图直接把字排图上+ `image_postprocessor.py`去C2PA水印+转JPG+削像素水印,对应俊达"消水印")。
- **关键**:配图与压字**已合一**(生图即排字),不是两道工序。这点影响 §五 伪增量判断。
### 归档第12环
- `frontend/src/app/history/` + `delivery_packages` 表(交付包)。总核销表 M4 含日期/品类筛选+导出。
## 二、增量①:改稿 diff 飞轮信号 ⭐最该补
### 俊达怎么做的
俊达把三类反馈信号分了强弱:**「改稿 diff」标为「强」**,评级 A/B/C/D 和「采纳·重做」标为「中」。他原话:"运营把 AI 写的改了 —— 直接看人怎么改,最值钱。" 因为选/审是**二选一的弱监督**,而人动手改稿是**带具体方向的强监督**——AI 能学到的不只是"这条不好",而是"应该改成什么样"。
### Clover 缺口(对照代码)
- `SignalType` 只有 5 个值,**没有 `text_edit`**。
- `TextCandidate``app/models/task.py:73`)只有 `content`AI原文+ `is_selected`**没有"运营改后内容"字段**,改稿这个动作根本没地方落。
- 现状:运营在审核台看到文案,只能"选/打回写原因",不能直接改——改了也不入飞轮。
### 怎么落(概要,细化执行见配套文档)
> ⚠️ **完整可执行方案(含代码骨架+并发窗口避让)已拆到独立文档:`plans/俊达增量①-改稿diff-实施细案.md`**。
> 因为另一个窗口正在改 P0第5/6/8环改稿diff 恰好挂在审核回路+task_actions是冲突高危区细案里逐处标了避让策略。
五步骨架(详见细案):
1. **加信号类型** `text_edit`(权重+4——注意权重在**两处**定义,都要改。
2. **存改后内容**——`TextCandidate``edited_content`/`edited_at` 两字段,新迁移 012。
3. **采集端点**——`task_actions.py``POST .../text-candidates/{cid}/edit`
4. **聚合注入**——`preference_aggregator.py` 加"改稿示范"片段,置于 prompt_fragment 最前。
5. **前端改稿框**——`TextCandidateCard.tsx` 只读 `<p>` 改可编辑。
### 验收(沿用架构方案"飞轮四点可测"
events写入 `text_edit` ✓ / 聚合返回改稿片段 ✓ / 下次 prompt trace 含该片段 ✓ / UI 显示"已注入改稿示范" ✓。
### 风险与建议
- **工程量**1迁移 + 1端点 + 聚合~15行 + 前端1框**半天到一天**。
- **窗口冲突**见细案§0核心是"加字段/加端点用新增不改存量、enums两处权重等P0改完再合"。
- **窗口判断**KR2飞轮1B截止6/27这条不大且价值最高**这次补**。
## 三、增量②:爆款拆解中心(产品化)⭐
### 俊达怎么做的
独立的「**拆解中心**」功能PPT第14页粘一条小红书爆款链接 → AI 拆成「标题公式 / 句子类型 / 正文结构 / 卖点 / 配图节奏」可复用配方 → **一键存入素材库,变成 AI 下次生成时的样例**。口号"72小时竞品爆款 → 你的可复用配方"。本质是把"人肉总结套路"自动化。
### Clover 缺口(对照代码)
- **地基已埋**`fission_tasks`迁移010+ `generation_tasks.source_fission_id`迁移011都建好了。
- **但完全没接线**:无 service/api/worker/前端(已确认零引用),总核销表 M7 = ⏸️等北哥给档位。
- **现状**Clover 已有 `benchmark_notes`(标杆笔记)+ 第2环标杆8特征分析M6等北哥给8维但那是"录入参考"**不是俊达式"粘链接→自动拆配方→反哺生成"的闭环**。
### 关键对齐:俊达"拆解" vs Clover"裂变"是两件事,别混
- **Clover 第11环裂变** = 1爆款 → **N 套完整笔记包**(输出成品)。
- **俊达拆解中心** = 1爆款 → **1 份可复用配方**(输出方法,存库当样例)。
- **俊达的拆解,正好是 Clover 裂变的「前置入口」**:先拆出配方,配方再喂给裂变/常规生成。两者串起来比单独做裂变更完整。
### 怎么落(复用现有 analyze 能力,不新造模型调用)
**核心思路**Clover 第2环标杆分析`benchmark` 8特征 analyze和俊达"拆配方"是**同一个 AI 能力**,只是出口不同。不要新写一套 AI 调用,**复用 analyze加一个"拆解→存配方→反哺"的产品壳**。
**S1配方落点**:拆出的配方存哪?两个选项——
- 选A推荐一期存进现成的 `benchmark_notes.features_json`迁移009已有字段拆解结果就是结构化特征天然契合。前端加"拆解中心"入口,结果进标杆库。
- 选B新建 `recipe`/配方表。一期不必,留到素材资产库(§四)一起做。
**S2拆解 service**:新建 `app/services/ai_engine/note_decompose.py`,复用 `gemini_factory` + 标杆 analyze 的 prompt输入笔记文本/截图,输出 `{标题公式, 正文结构, 卖点, 配图节奏}` JSON。
**S3采集入口**:链接读取受小红书风控限制——**对齐架构方案已拍板的洞1**:对外主通道 = **截图+手填**(零封号风险),登录态自动采集只作北哥内部插件。所以"拆解中心"输入框 = 粘文本/传截图,不做"系统自动抓链接"。
**S4反哺生成**:拆出的配方进 `benchmark_notes`,生成任务选标杆时即可引用 → 已有链路(`generation_tasks.benchmark_ids`)自动打通,无需改生成侧。
**S5前端**:新增"拆解中心"页仿俊达PPT第14页左右分栏左原笔记、右拆解结果+「一键存入标杆库」)。
### 风险与建议
- **依赖北哥**:和 M6标杆8维、M7裂变档位都等北哥定义。**建议把"拆解中心"和 M6 合并需求一起问北哥**——既然拆解配方=标杆特征,让北哥一次性给"要拆哪几个维度"即可。
- **工程量**选A路径service + api + 前端页,约 1-2 天,但**前置依赖北哥给维度**。
- **窗口**:一期能做,但**别和 P0 修bug 抢工**。建议 M6 标杆分析做完后,顺势加拆解中心入口(复用同一 analyze
## 四、增量③④:素材资产库 / 提示词中台 / 投放闭环(留二三期)
> 这三块价值大、但工程量也大,**明确不进一期**,避免冲乱 6/20-6/27 节奏。先记下口子,二期接。
### 增量③ 素材资产化 + 效果评级库(→ 二期第12环升级版
- **俊达**:图/视频/压字/评论/标题/文案结构/关键词**各成一库**,进库即 AI 打标 + 按真实互动评 **S/A/B/C/D 级**;素材积累 5/月 → 50+/月。
- **Clover 现状**:只有 `delivery_packages`(交付包)+ `history` 归档,**没有"按类型分库 + 效果评级 + 向量搜图"**。
- **落点**:二期在 `history`/归档之上建素材库;评级依赖**真实互动数据回填**(架构方案三期"发布效果回填 outcome_score"),所以**评级必须等投放闭环(增量④)先有数据**,顺序上③依赖④。
- **eval_score 已留 NULL 口子**`TextCandidate.eval_score`/`ImageCandidate.eval_score`),架构方案明确"等真评分再装"——正好接俊达的评级,**别用 banana 假评分88分污染飞轮**,这条铁律不能破。
### 增量④ 投放数据闭环(→ 二/三期,超 13 环范围)
- **俊达**:打通聚光/千川/乘风/专业号 + 电商后台,单条笔记能看"卖多少货/点击率"AI 出**动作卡**评A/B/C+建议停/加投)。投手 6h → 自动。
- **Clover 现状**13环里第10环复盘 = ❌不做(人工)。完全没有数据中心。
- **落点**这是独立大模块要对接小红书各后台API+企业资质),**架构方案三期才提**。俊达验证了 ROI 极高他DNT ROI 1:4→1:8值得做但**是 Clover 二期对外 SaaS 之后的事**。
- **提示词版本化中台**(俊达:每提示词版本历史可回滚、标人工改/AI进化、记为什么改Clover 有 `loader.py PromptLoader 版本alias` 死代码可复活(架构方案§四🟡),但做成俊达那样的"UI可调中台"是二期。一期 prompt 改模板即可,不必上版本管理 UI。
---
## 五、两个伪增量(看着像缺、其实不缺,别做)
### 伪增量1把"配图/压字"拆成两道独立工序 ❌
- 俊达PPT把"配图"和"压字"列成内容流水线里两个独立模块,看着像 Clover 少了一环。
- **但 Clover 已经合一实现**`storyboard.py` 出分镜带 `overlay_text``image_gen.py:146-153` 生图时直接把文字排到图上出成品。这是**更先进的做法**(一次成图 vs 先出图再压字两步)。
- **结论**:不要为了"对齐俊达模块数"去把它拆开。俊达分两步可能正因为他没做到一次成图。**Clover 这里是优势,保持。**
### 伪增量2爆款"逆向工程"当全新功能 ❌(部分)
- 看着 Clover 没有"爆款逆向"其实第2环标杆8特征分析 = 同一个 AI 能力(拆爆款)。
- **结论**:增量②不是"新造逆向引擎",而是"给已有 analyze 加产品化入口+反哺出口"。别重复造 AI 拆解逻辑。
---
## 六、俊达最该抄的 5 条认知(非功能,是方法论)
这 5 条比任何功能都值钱,且和 Clover 设计哲学高度一致,可直接写进北哥项目的产品理念:
1. **AI 当组织成员/员工管,不当工具** —— 拆成"选题员工/标题员工/配图员工",每个都是 agent。对应 Clover 多步流水线。
2. **生成 → 流水线** —— 不让 AI 一口气写完,拆工序、每步 AI 出活、人审一眼。Clover 已是这套。
3. **定型 → 进化** —— AI 不该买来就定型,每天因真实反馈变聪明。= Clover 飞轮(魂)。
4. **任务包模式** —— 人只处理 AI 搞不定的疑难,顺手把解法训练回 AI任务包越来越少。可作为 Clover 飞轮+审核的长期叙事。
5. **颗粒度无限细分 → 素材库索引 → 生成** —— 把经验拆到最细存库,生成时索引。对应增量③素材资产化。
6. **诚实克制**(俊达"冠军-挑战者+人审,绝不盲目自动上线")—— 和 Clover"eval_score留NULL不用假分""飞轮四点可测"完全同源。**这是双方最该互相印证的设计底线。**
---
## 附:俊达全产品模块地图(视频左侧导航补全,供北哥扩展参考)
视频里俊达系统左侧菜单(手机拍投影,已尽力辨认):
内容中台(选题/标题/正文/配图/评论/素材库/拆解中心)· 音乐创作 · 客户管理 · 岸署管理 · AI销售 · 机器人管理 · 微信Agent · Agent工具包 · 发布管理 · 全平台自动化 · 客户SOP · 群发SOP · SOP执行管理 · 数据复盘 · 乘风账户财务(投放数据)· 知识库。
> 这是"一个人开发的全链路"全貌。Clover 一期只对应其中"内容中台"一块,其余是北哥项目二期/三期或独立产品线的想象空间。