Files
beige/plans/Clover真实能力盘点与对照修正.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

144 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
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 真实能力盘点 + 对照修正读完6365行后端后的诚实版
> ⚠️ 重要:本文档**修正**我之前《俊达vsClover-逐界面对照缺陷清单》里的多处错判。
> 之前只读了前端8页+零星后端就下结论冤枉了好几处。这次读完后端全部API+核心services+workers后重写。
> 倩倩姐在另一窗口"看到功能挺多"是对的——很多能力**在后端实现了,只是前端没接/没可视化**。
---
## 一、先认错:我之前判错的地方
| 我之前的判断 | 真实情况(代码为证) | 性质 |
|---|---|---|
| "改稿环节缺失" | ✅确实没有改稿。但我没说清:选优/重生成/导入轨都有(`task_actions.py`) | 判断对,但描述把整体说薄了 |
| "图片卡信息薄=只有url+role" | 后端 `ImageCandidate` 确实只存role/url/strategy/seq**但生图引擎极丰富**(见下) | 🔴**冤枉**:薄的是展示,不是能力 |
| "拆解中心只能录入不能拆配方" | `fission.py`是**第11环裂变引擎**(1爆款→N套笔记包),不是"只录入" | 🔴**判错**裂变能力建了表是没接UI |
| "平台对抗待确认Clover做到哪" | `image_postprocessor.py`**已实现**:去元数据+削像素水印+SynthID破除+Gemini重绘兜底 | 🔴**漏看**:对抗层早做了 |
| "双通道生图待确认" | `image_gen.py`**已实现**主备通道(gpt-image-2主/Gemini备)+多中转站(apiports/codeproxy)切换+重试退避 | 🔴**漏看**:双通道在 |
| "模板库藏代码里" | storyboard有完整分镜模板体系(`storyboard_templates.py`174行) | 部分对,但低估了成熟度 |
> 教训:我拿"前端没显示"当"功能不存在",这是硬伤。**Clover后端比前端展示出来的强得多。**
<!-- 后续Edit补充二、后端真实能力全景 / 三、真正的缺口(修正版) / 四、前后端能力落差 / 五、对照俊达的真实差距 -->
---
## 二、后端真实能力全景(读完代码确证·这些都已实现)
**文案生成链(强):**
- `_text_prompt.py`:人设/随机变量池ABC/5步框架/四段结构/5类标题公式/反AI味/emoji规则方法层vs数据层分离
- `text_variants.py`:双轨(AI生成+导入)、分批生成(避60s网关超时)、三层兜底、可选优化轮、本地草稿兜底
- `llm_scorer.py`**AI评委打分**——模型真读文案给6维分+理由+verdict+summary合规第7维机械硬拦失败回退机械打分
- `replenish_task.py`:合格数不足时**后台异步补充**到目标条数(先展示后台补铁律)
**生图链(很强,我之前严重低估):**
- `storyboard.py`**分镜引擎**——按图数排叙事角色(3/6/8张不同链路)、品牌词第2/6张植入、逐图差异化9字段prompt、成组视觉统一
- `image_gen.py`**主备双通道**(gpt-image-2带产品图edits / Gemini备)、多中转站切换、限并发、指数退避重试
- `image_postprocessor.py`**去AI化对抗**——去C2PA元数据+轻/重采样削像素水印+SynthID破除(可选)+Gemini重绘兜底
**飞轮链(已转):**
- `preference_aggregator.py`聚合最近50条信号→偏好角度+打回原因→注入prompt冷启动用产品档案按product_id隔离防串货三层继承(L1品牌>L2矩阵>L3个人)
- `task_actions.py`:选文案+3/选图+3/重生成-1 信号都记录
- `flywheel_service.py`record_signal + get_preference_context
**裂变链(建了表+引擎待接UI**
- `fission.py`第11环裂变引擎1爆款→N套完整笔记包带reference_level/fanout_count/status状态机
**交付链(完整):**
- `delivery.py`:打包→一次性下载令牌(60s)→FileResponse下载双认证(token/JWT)
---
## 三、真正的缺口(修正版·只留确证的)
读完后端后,真正站得住的缺口收敛到这几条:
| 缺口 | 性质 | 确证依据 |
|---|---|---|
| **1. 改稿→飞轮信号** | 真缺 | `SignalType`(enums.py:57)无text_edit`TextCandidate`无edited字段。这条仍成立 |
| **2. 裂变引擎没接前端UI** | 真缺UI | `fission.py`引擎在,但前端无裂变页、无入口 |
| **3. 数据复盘(发布后回收)** | 真缺 | 全后端无"发布后赞藏评回收"模块,链路止于交付包 |
| **4. dashboard门面空** | 真缺 | `dashboard/page.tsx`只有3按钮后端那么多能力一个没露 |
| **5. Sidebar死链404** | 真bug | `Sidebar.tsx:22-25`指向不存在路由 |
| **6. 图片候选展示薄** | 展示缺,非能力缺 | 后端storyboard算了role/goal/卖点/视觉策略,但`_fmt_image`只返role/url/strategy/seq前端只显示url+role |
| **7. AI评委理由没充分展示** | 展示缺 | 后端有verdict/summary/6维note前端TextCandidateCard展示了但confirm页等只显示总分 |
> **关键转变**:之前我列的"素材库缺失/拆解缺失/对抗缺失/双通道缺失"大半是错的——**对抗、双通道、分镜、裂变引擎后端都有**。真缺口收敛到:①改稿信号 ②裂变没接UI ③数据复盘 ④门面空 ⑤死链 + 两处展示薄。
---
## 四、前后端能力落差(这才是"空"的真因)
**这是核心洞察**Clover 的问题不是"功能少",是**后端能力没在前端露出来**。
| 后端有的能力 | 前端露出了吗 |
|---|---|
| 分镜引擎(每张图有role/goal/卖点/视觉策略/依据) | 🔴只显示url+role两字段 |
| 主备双通道+对抗去AI化 | 🔴用户完全无感(后台默默跑) |
| AI评委6维分+理由+verdict | 🟡文案卡露了,其他页只剩总分 |
| 后台补充合格文案 | 🔴用户不知道在补 |
| 裂变引擎 | 🔴无入口 |
| 飞轮偏好注入 | 🟡只一条banner |
> 俊达"界面饱满"的感觉,本质是**他把后台算的每一步都可视化了**。Clover后台算得不比他少但**前端只露了冰山一角**,所以显得"空"。这跟"功能缺失"是两个完全不同的问题——**前者是接线/可视化工作量后者是从0造功能。Clover大多属前者。**
---
## 五、对照俊达的真实差距(收敛后)
| 维度 | 真实结论 |
|---|---|
| 文案生成 | **不弱于俊达**AI评委+飞轮+反AI味都有 |
| 生图质量工程 | **可能不弱**,双通道+分镜+对抗去AI化都有 |
| 飞轮 | 骨架在,**缺最强信号(改稿diff)**,且可视化弱 |
| 资产化/裂变 | **引擎在缺UI接线** |
| 数据复盘 | **真缺**俊达有发布后回收Clover止于交付 |
| SCRM销售线 | 整块没做(商业决策,待倩倩姐判) |
| **呈现/可视化** | **这是最大差距**——后端能力强,前端露太少,所以"显空" |
> 一句话修正:**不是Clover功能比俊达少很多是Clover把做好的能力藏在后端没给用户看。** 你那个窗口看到"功能挺多",看到的就是这些后端实现。我之前只扫前端,所以误判成"空、缺失"。
---
## 六、仍未读、不装看到的
- `products.py`(308行,最大文件) — 产品档案完整能力未读
- `pipeline_io.py`(298行) — 文案/图片生成存储编排未读
- `gemini_factory.py`(225行) — AI客户端构造未读
- `storyboard_templates.py`/`_score_prompt.py`/`_scoring_dims.py` — 模板和评分维度细节未读
- 前端:`ImageProgressCard`/`ReviewCard`/`ConfigPreviewPanel`等组件本体未读
- 数据库迁移到011011/010之后有无新增未确认
> 要补到100%确证,这几个还得读。但**主干结论后端强、前端露得少、真缺口5条已经站得住**。
---
## 七、补读完成(已清零未读区)— 又发现3处关键事实
读完 `products.py`/`pipeline_io.py`/`review.py` + 前端剩余组件后,新增确证:
### 新发现1生图实际跑「3套正交策略 × N张」前端拍平丢了策略维度 🔴
- `pipeline_io.py:201` 明写 `for strategy in ("A","B","C")`,每套各生 image_count 张。**用户要6张→后端实际生18张候选**。
- `ImageProgressCard.tsx` 本是为"批次/策略"设计的(有BatchState)**但 images 页(line55-68)是平铺所有图、没按A/B/C分组**`_fmt_image` 返回了strategy字段但前端没用来分组。
- 结论:**后端做了"3种叙事方向给你挑",前端拍平成一堆散图**。这是俊达"双通道选优"思路Clover其实有雏形(3策略),但展示层没体现。
### 新发现2产品图 vision 智能分析已实现 🟢(我完全没提过)
- `products.py:254` `analyze-image` 接口上传产品图→GPT vision 读图→自动产出卖点/人群/场景/关键词/违禁词/拍摄方向 JSON。
- 这等于俊达"拆解"能力的一种——**只是用在产品建档,不是用在爆款逆向**。Clover有读图理解能力我之前一字未提。
### 新发现3爆款8特征分析字段已建 🟡
- `BenchmarkNote.features_json` + `analyze_status`(pending/analyzing/done/failed):标杆笔记预留了"AI解析8特征"的字段和状态机。
- 说明"爆款拆解"在数据层已开口子差AI解析逻辑+UI。比我之前说的"只能录入"更进一步。
### 复核确认的展示薄(确证):
- `ReviewCard`:审核卡只显示 product/operator/theme/正文2行+图,**不显示七维分**——审核员看不到AI评委打分就要拍板通过/打回。这是确证的展示缺失。
- `ConfigPreviewPanel`:注释说"显示成分/质地/参考图3张"**实际代码没渲染参考图、没成分**,只有名称/品类/卖点/风格/角度。注释与实现不符。
- `ScoreDimBars`✅做得好数据驱动渲染AI评委dims+note有hover理由。
- `FlywheelBanner`:✅但确实只是一条横幅,飞轮存在感弱。
### 最终未读(已很次要,不影响结论):
- `gemini_factory.py`/`storyboard_templates.py`/`_score_prompt.py`/`_scoring_dims.py`:都是"已确证存在能力"的实现细节,读不读不改变结论。
- `pipeline_io` 已读到生图主循环,确认无遗漏大功能。
> **补读后主干结论不变,反而更强**Clover后端能力比前端展示的多得多生图3策略18张→前端拍平、vision分析→没UI入口体现、爆款8特征→留了字段。**"空"的根因100%确证是"前后端能力落差",不是功能缺失。** 真缺口仍是那几条:①改稿信号 ②裂变/爆款拆解的AI逻辑+UI ③数据复盘 ④门面空 ⑤死链,外加多处"后端算了前端没露"。