将 Clover 从上层产品包旧仓库中独立出来,建立专属版本控制。 当前状态=纵切片端到端已打通(登录→选品→出文出图→审核→下载包), M1文案质量去套路化已验收。此提交作为后续按核销清单逐条修复的基线。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
144 lines
10 KiB
Markdown
144 lines
10 KiB
Markdown
# 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`等组件本体未读
|
||
- 数据库迁移到011,011/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 ③数据复盘 ④门面空 ⑤死链,外加多处"后端算了前端没露"。
|