feat: add metadata workbench and shared seo rules
This commit is contained in:
222
docs/2026-04-18-AI文案与视频元数据公共规则主线.md
Normal file
222
docs/2026-04-18-AI文案与视频元数据公共规则主线.md
Normal file
@@ -0,0 +1,222 @@
|
||||
# 2026-04-18 AI文案与视频元数据公共规则主线
|
||||
|
||||
这份文档不是 GPT 模板专属文档,而是当前整个项目的公共规则主线。
|
||||
|
||||
适用范围:
|
||||
|
||||
1. GPT 模板
|
||||
2. 老模板
|
||||
3. 后续其它模板
|
||||
4. 后台人工触发 AI
|
||||
5. Codex 接手优化
|
||||
6. 视频采集、视频回填、SEO 文案生成、详情页正文补全
|
||||
|
||||
一句话:
|
||||
|
||||
> 从 2026-04-18 开始,`AI 文案规则` 和 `视频元数据缺失处理规则` 统一提升为全项目公共规则,所有接手 Codex 都必须先读。
|
||||
|
||||
## 为什么要升级成公共规则
|
||||
|
||||
前面这些规则虽然最早是在 GPT 模板线里沉淀出来的,但它们约束的不是某一个模板的视觉或 SEO 结构,而是整个项目共同面对的两类基础问题:
|
||||
|
||||
1. AI 文案怎么在真实边界内写得更像人工、又不伤 SEO
|
||||
2. 演员、导演、年份、地区、语言、简介等字段为空时,系统应该怎么处理,才能既不乱猜又能持续沉淀进视频库
|
||||
|
||||
这两件事天然就是全项目公共能力,不应该只埋在某条模板支线下面。
|
||||
|
||||
## 公共规则 1:AI 文案最高指令
|
||||
|
||||
所有 AI 文案,不管是后台 OpenAI、批处理提示词,还是 Codex 参考输出,都必须遵守:
|
||||
|
||||
1. 共同目标是:`SEO 效果 + 可读性 + 真实感 + 可持续收录`
|
||||
2. 只能基于已提供字段和事实写,不允许虚构剧情、角色关系、上映信息、评价内容、播放权益或不存在的资料
|
||||
3. 如果现有规则开始明显压制 SEO 增长、压制点击意图、压制更高质量发挥,不能静默硬套,必须明确提出冲突点,再讨论升级
|
||||
4. 不允许为了“守规则”写出机械化、模板化、低区分度文案
|
||||
5. 不允许写营销承诺词,例如:
|
||||
- `免费观看`
|
||||
- `高清完整版`
|
||||
- `极速播放`
|
||||
- `本站提供`
|
||||
- `全网最全`
|
||||
6. 不允许堆砌关键词,不允许片名大面积重复,通常不要超过 `2` 次
|
||||
7. 语言必须自然、克制、像人工整理,不要满篇泛称、代词和模板痕迹
|
||||
|
||||
## 公共规则 2:缺失字段绝不能靠 AI 猜
|
||||
|
||||
下面这些字段都属于结构化事实字段:
|
||||
|
||||
1. 演员
|
||||
2. 导演
|
||||
3. 年份
|
||||
4. 地区
|
||||
5. 语言
|
||||
6. 发布日期
|
||||
|
||||
统一规则:
|
||||
|
||||
1. 这些字段优先靠 `重采 / 补源 / 人工校正`
|
||||
2. 不允许 AI 猜测补齐
|
||||
3. `内详 / 未知 / 不详 / 待补充 / 暂无 / 未知演员 / 未知导演` 一律按缺失处理
|
||||
4. 搜到了详情,不等于补齐成功
|
||||
5. 只有拿到真实有效字段值,才算补齐
|
||||
|
||||
## 公共规则 3:文案型空字段可以补,但只能在真实性边界内补
|
||||
|
||||
下面这些字段属于文案型字段:
|
||||
|
||||
1. 简介
|
||||
2. 备注
|
||||
3. 详情页摘要
|
||||
4. 详情页正文补充
|
||||
|
||||
统一规则:
|
||||
|
||||
1. 可以在真实性边界内由 AI 补全
|
||||
2. 只能使用已有字段组织文案,不能脑补事实
|
||||
3. 优先写成自然、克制、资料型、可收录的内容
|
||||
4. 只补空字段,不覆盖已有非空字段
|
||||
5. 如果事实基础太弱,允许写短,不能硬凑长文
|
||||
|
||||
## 公共规则 4:缺失字段必须优先写回视频库
|
||||
|
||||
这是当前整个项目都要遵守的公共回写原则:
|
||||
|
||||
1. 缺失字段一旦补到,优先写回视频数据库
|
||||
2. 默认原则:`只补空字段,不覆盖已有非空字段`
|
||||
3. 不允许把空值、脏值、占位值写成“已补齐”
|
||||
4. 写库目标不是把库塞满,而是让视频记录后续越来越完整,减少反复空转
|
||||
|
||||
## 公共规则 5:当前全项目的字段优化主矛盾
|
||||
|
||||
到目前这一步,文案型空字段已经不是主矛盾,真正的主矛盾是:
|
||||
|
||||
1. `v_actor`
|
||||
2. `v_director`
|
||||
|
||||
所以全项目视频 SEO 元数据优化主线已经统一切成两条:
|
||||
|
||||
1. 结构化字段缺失:
|
||||
- 走重采、补源、人工校正
|
||||
2. 文案型字段缺失:
|
||||
- 在真实性边界内走 AI 补全并写回空字段
|
||||
|
||||
## 当前全项目统一执行口径
|
||||
|
||||
### A. 做 AI 文案时
|
||||
|
||||
1. 先看事实字段是否足够
|
||||
2. 足够才写
|
||||
3. 不足就克制写成资料型
|
||||
4. 不够就宁可短,不要乱编
|
||||
|
||||
### B. 做字段补齐时
|
||||
|
||||
1. 先区分结构化字段和文案型字段
|
||||
2. 结构化字段缺失优先排到重采队列
|
||||
3. 文案型字段缺失优先排到 AI 补全队列
|
||||
4. 所有结果最终都要沉淀回视频库
|
||||
|
||||
### B.1 做缺字段扫描和任务派发时
|
||||
|
||||
当前全项目建议统一使用下面这条命令做安全触发:
|
||||
|
||||
```bash
|
||||
php SEONexus/code/think video:metadata:task-pool --sample=8 --queue-limit=50 --prompt-limit=10 --batch-size=10 --batch-limit=10
|
||||
```
|
||||
|
||||
这条命令的统一含义是:
|
||||
|
||||
1. 扫描视频缺字段情况
|
||||
2. 刷新工作台产物
|
||||
3. 生成可派给 Codex 的缺字段任务池
|
||||
4. 不自动补演员、导演、年份、地区、语言、发布日期
|
||||
5. 不自动偷偷调用 OpenAI API
|
||||
|
||||
所以它适合作为:
|
||||
|
||||
1. 其它项目同步代码后的首条启动命令
|
||||
2. 计划任务挂接入口
|
||||
3. 技术排查当前缺字段规模的统一入口
|
||||
|
||||
如果当前项目使用数据库计划任务表统一调度,也可以使用:
|
||||
|
||||
1. `pt_code = REFRESH_VIDEO_METADATA_TASK_POOL`
|
||||
2. 对应安全入口为 `PlanTask::refreshVideoMetadataTaskPool()`
|
||||
|
||||
这条入口仍然遵守同一条公共边界:
|
||||
|
||||
1. 生成扫描与派单产物
|
||||
2. 不自动补事实字段
|
||||
3. 不自动调用 OpenAI API
|
||||
4. 不自动写回视频库
|
||||
|
||||
当前配套的两个运维入口也建议一起看:
|
||||
|
||||
1. 状态总览页:用于看当前缺字段规模、任务池批次状态、计划任务状态
|
||||
2. 运维总览页:用于看当前推荐动作、常用命令、产物路径
|
||||
|
||||
对应产物目录为:
|
||||
|
||||
```text
|
||||
SEONexus/code/app/public/_admin_templates/video-metadata-missing-task-pool/
|
||||
```
|
||||
|
||||
如果你更习惯后台 JSON 入口,也可以直接用:
|
||||
|
||||
1. `GET /admin/video/metadata/missing/task-pool/status`
|
||||
2. `GET /admin/video/metadata/missing/task-pool/ops`
|
||||
|
||||
### B.2 页面入口和数据接口要分开理解
|
||||
|
||||
从这轮开始,这条线的后台页面已经迁到 Vue 后台 `SEONexusAdmin`。
|
||||
|
||||
统一口径:
|
||||
|
||||
1. `PHP /admin/video/...`
|
||||
主要提供数据接口
|
||||
2. `Vue #/video/...`
|
||||
主要提供后台实际操作页面
|
||||
|
||||
当前页面型入口统一使用:
|
||||
|
||||
1. `#/video/metadata/missing/workbench`
|
||||
2. `#/video/metadata/missing/task-pool`
|
||||
3. `#/video/metadata/missing/task-pool/status`
|
||||
4. `#/video/metadata/missing/task-pool/ops`
|
||||
|
||||
这一步的意义是:
|
||||
|
||||
1. 后台页面能力统一收回到 Vue 工程
|
||||
2. PHP 侧不再继续膨胀出一套“伪后台页面”
|
||||
3. 同步到其它服务器时,更容易区分哪些是接口代码,哪些是前端页面代码
|
||||
|
||||
### C. 做复盘时
|
||||
|
||||
1. 不只看“命中没命中”
|
||||
2. 要看字段缺失审计是否真实下降
|
||||
3. 要看是否误写了无效值、占位值、脏值
|
||||
|
||||
## 公共阅读入口
|
||||
|
||||
所有新接手 Codex,建议先按这个顺序读:
|
||||
|
||||
1. [README.md](/www/wwwroot/diff-maccms/SEONexus/docs/README.md)
|
||||
2. [Codex启动提示词模板.md](/www/wwwroot/diff-maccms/SEONexus/docs/Codex启动提示词模板.md)
|
||||
3. [2026-04-18-AI文案与视频元数据公共规则主线.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-AI文案与视频元数据公共规则主线.md)
|
||||
4. [2026-04-18-视频元数据缺失处理公共执行规则.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-视频元数据缺失处理公共执行规则.md)
|
||||
|
||||
如果接手的是 GPT 模板支线,再继续看:
|
||||
|
||||
1. [2026-04-18-GPT模板SEO公共主线汇总.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-GPT模板SEO公共主线汇总.md)
|
||||
2. [gpt-template-seo/README.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/README.md)
|
||||
|
||||
## 来源说明
|
||||
|
||||
这份公共规则主线并不是凭空新建,而是把原本已经在 GPT 模板线里验证通过的规则,提升成项目公共规则。
|
||||
|
||||
规则来源主要包括:
|
||||
|
||||
1. [gpt-template-seo/17-GPT模板AI文案最高规则-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/17-GPT模板AI文案最高规则-2026-04-18.md)
|
||||
2. [gpt-template-seo/18-GPT模板演员导演缺失重采Top50执行单-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/18-GPT模板演员导演缺失重采Top50执行单-2026-04-18.md)
|
||||
|
||||
从现在开始,这两份属于“来源与实验沉淀文档”,而这份文档属于“全项目公共总口径文档”。
|
||||
223
docs/2026-04-18-PHP与Vue收口交付总结.md
Normal file
223
docs/2026-04-18-PHP与Vue收口交付总结.md
Normal file
@@ -0,0 +1,223 @@
|
||||
# 2026-04-18 PHP 与 Vue 收口交付总结
|
||||
|
||||
## 本轮目标
|
||||
|
||||
本轮收口的目标不是只补一个页面,而是把以下三条线真正闭环:
|
||||
|
||||
1. `Vue 后台` 成为视频缺字段工作台/任务池的正式入口,不再依赖错误的 PHP 后台页面直出。
|
||||
2. `PHP 后端` 提供完整的数据接口、计划任务、工作台产物、任务池产物、缺字段扫描与安全补全能力。
|
||||
3. `公共 AI 规则` 与 `视频元数据缺失处理规则` 提升为全项目共享规则,后续无论哪个模板、哪个 Codex 接手,都必须先读这条主线。
|
||||
|
||||
---
|
||||
|
||||
## 交付范围
|
||||
|
||||
### 1. Vue 后台侧
|
||||
|
||||
已迁移到 `SEONexusAdmin` 的后台能力:
|
||||
|
||||
- 视频缺字段控制台首屏卡片
|
||||
- 视频缺字段工作台页
|
||||
- 视频缺字段任务池页
|
||||
- 视频缺字段状态总览页
|
||||
- 视频缺字段运维总览页
|
||||
- 系统配置页中的 `SEO AI 规则` 专属入口
|
||||
- 新域名导入成功后的“下一步选择”弹窗
|
||||
- `Codex继续`
|
||||
- `OpenAI继续`
|
||||
- 一键复制 Codex 提示词
|
||||
|
||||
### 2. PHP 后端侧
|
||||
|
||||
已补齐或增强的能力:
|
||||
|
||||
- 视频缺字段工作台接口
|
||||
- 视频缺字段任务池接口
|
||||
- 视频缺字段计划任务状态接口
|
||||
- 视频缺字段批次状态保存接口
|
||||
- 视频缺字段批次提示词接口
|
||||
- 视频缺字段批次历史接口
|
||||
- 视频缺字段工作台/任务池命令行命令
|
||||
- 视频缺字段计划任务种子
|
||||
- 视频元数据空字段安全补全 helper
|
||||
- 采集器回填逻辑
|
||||
- 仅在现有字段为空时,用新采集到的真实字段回填
|
||||
- 不覆盖已有非空值
|
||||
- 站点导入后自动生成基础产物
|
||||
- SEO state
|
||||
- manifest
|
||||
- site positioning
|
||||
- sitemap 入队
|
||||
- starter published copy
|
||||
|
||||
### 3. 公共规则侧
|
||||
|
||||
已确立为全项目公共主线的内容:
|
||||
|
||||
- AI 文案最高指令
|
||||
- 详情摘要规则
|
||||
- 详情正文规则
|
||||
- 缺失字段处理规则
|
||||
- 电影 / 剧集 / 综艺 / 动漫 / 短剧 细分风格规则
|
||||
- 视频元数据缺失扫描与派单原则
|
||||
|
||||
---
|
||||
|
||||
## 重要路径说明
|
||||
|
||||
### Vue 后台真实入口
|
||||
|
||||
以下页面应从 `SEONexusAdmin` 的 `hash 路由` 进入:
|
||||
|
||||
- `#/video/metadata/missing/workbench`
|
||||
- `#/video/metadata/missing/task-pool`
|
||||
- `#/video/metadata/missing/task-pool/status`
|
||||
- `#/video/metadata/missing/task-pool/ops`
|
||||
- `#/system/config/seo-ai-rules`
|
||||
|
||||
### PHP 侧定位
|
||||
|
||||
PHP 这边现在主要负责:
|
||||
|
||||
- 数据接口
|
||||
- 工作台产物生成
|
||||
- 任务池产物生成
|
||||
- 计划任务
|
||||
- 命令行工具
|
||||
|
||||
不再把视频缺字段后台页面直接渲染成 PHP 管理页。
|
||||
|
||||
---
|
||||
|
||||
## 更新其它源时要同步的重点
|
||||
|
||||
### PHP 仓库必须同步
|
||||
|
||||
重点包含:
|
||||
|
||||
- `app/admin/controller/Video.php`
|
||||
- `app/admin/controller/Site.php`
|
||||
- `app/admin/controller/SystemConfig.php`
|
||||
- `app/admin/config/router.php`
|
||||
- `app/task/module/PlanTask.php`
|
||||
- `config/console.php`
|
||||
- `database/seeders/PlanTaskSeeder.php`
|
||||
- `app/common/helper/SeoCopyAiRuleConfigHelper.php`
|
||||
- `app/common/helper/VideoMetadata*`
|
||||
- `app/command/VideoMetadata*`
|
||||
- `app/model/VideoModel.php`
|
||||
- `app/model/DomainModel.php`
|
||||
- `app/services/SiteContext.php`
|
||||
- 各采集器 `VideoInfoPage.php` 中的空字段回填逻辑
|
||||
|
||||
### Vue 仓库必须同步
|
||||
|
||||
重点包含:
|
||||
|
||||
- `src/views/video/metadataMissing/index.vue`
|
||||
- `src/views/home/index.vue`
|
||||
- `src/views/home/index.scss`
|
||||
- `src/views/system/config/seoAiRules.vue`
|
||||
- `src/views/system/config/index.vue`
|
||||
- `src/views/system/config/drawer.vue`
|
||||
- `src/views/site/index.vue`
|
||||
- `src/api/modules/video/list.ts`
|
||||
- `src/api/interface/video/list.ts`
|
||||
- `src/api/modules/system/config.ts`
|
||||
- `src/api/interface/system/config.ts`
|
||||
- `src/api/interface/site/list.ts`
|
||||
- `src/assets/json/authMenuList.json`
|
||||
|
||||
---
|
||||
|
||||
## 运行逻辑说明
|
||||
|
||||
### 1. 导入新域名后
|
||||
|
||||
系统现在会:
|
||||
|
||||
1. 注册域名
|
||||
2. 初始化 SEO copy 基础状态
|
||||
3. 初始化 site positioning
|
||||
4. 把 sitemap 生成加入队列
|
||||
5. 返回导入探测结果
|
||||
6. 在 Vue 后台弹出“下一步选择”
|
||||
|
||||
系统不会再偷偷自动触发 OpenAI。
|
||||
|
||||
### 2. 运营继续
|
||||
|
||||
如果由运营继续:
|
||||
|
||||
1. 先看导入探测摘要
|
||||
2. 确认页面无明显错误
|
||||
3. 再点击后台 AI 功能,显式触发 OpenAI 队列
|
||||
|
||||
### 3. 技术继续
|
||||
|
||||
如果由技术继续:
|
||||
|
||||
1. 直接复制后台给出的 Codex 提示词
|
||||
2. 在 VS Code 中打开当前工作区
|
||||
3. 把提示词发给 Codex
|
||||
4. 由 Codex 接管优化、复测、记录、收口
|
||||
|
||||
---
|
||||
|
||||
## 视频元数据空字段处理原则
|
||||
|
||||
这部分是公共规则,不只属于 GPT 模板:
|
||||
|
||||
1. 如果采集回来的演员、导演、语言、地区、年份、备注、简介等字段为空,先记录并进入缺字段工作台/任务池。
|
||||
2. 如果后续同一资源再次采集到真实非空字段,只允许在“原字段为空”的前提下回填。
|
||||
3. 不允许用采集结果覆盖已有真实非空值。
|
||||
4. 不允许静默编造结构化事实字段。
|
||||
5. 本地安全补全仅允许补:
|
||||
- `v_description`
|
||||
- `v_remarks`
|
||||
6. 本地安全补全只能基于已有真实字段组织资料型文案,不能编造演员、导演、年份、剧情。
|
||||
|
||||
---
|
||||
|
||||
## 计划任务与自动触发
|
||||
|
||||
当前安全边界是:
|
||||
|
||||
1. 可以自动刷新工作台和任务池
|
||||
2. 可以自动扫描空字段
|
||||
3. 可以自动归档待处理批次
|
||||
4. 不自动调用远程 AI 去补结构化事实
|
||||
5. 不自动联网搜索演员/导演等真实资料
|
||||
|
||||
也就是说:
|
||||
|
||||
- `自动扫描` 可以开
|
||||
- `自动派单` 可以开
|
||||
- `自动 OpenAI 补事实字段` 当前不建议默认开启
|
||||
|
||||
---
|
||||
|
||||
## 后续建议
|
||||
|
||||
### 建议继续保留的执行节奏
|
||||
|
||||
1. 每日先看蜘蛛日志
|
||||
2. 再看视频缺字段控制台
|
||||
3. 先处理高流量、高抓取、高优先级资源
|
||||
4. GPT 模板专属 SEO 文档继续写在 `docs/gpt-template-seo/`
|
||||
5. 公共规则、公共机制、公共流程统一汇总在 `docs/` 根目录
|
||||
|
||||
### 下一批接手 Codex 必看
|
||||
|
||||
接手人至少先读:
|
||||
|
||||
- `docs/2026-04-18-AI文案与视频元数据公共规则主线.md`
|
||||
- `docs/Codex启动提示词模板.md`
|
||||
- `docs/2026-04-18-视频缺失字段工作台V1说明.md`
|
||||
- `docs/2026-04-18-PHP与Vue收口交付总结.md`
|
||||
|
||||
---
|
||||
|
||||
## 一句话结论
|
||||
|
||||
这轮收口后,`视频缺字段工作台`、`任务池`、`公共 AI 规则`、`导入后继续分流` 已经形成一套可以复制到其它源的完整方案;后续其它服务器只要同步 `PHP + Vue` 两个仓库,就能拿到同一套后台能力和执行规则。
|
||||
379
docs/2026-04-18-视频缺失字段工作台V1说明.md
Normal file
379
docs/2026-04-18-视频缺失字段工作台V1说明.md
Normal file
@@ -0,0 +1,379 @@
|
||||
# 视频缺失字段工作台 V1 说明
|
||||
|
||||
## 目标
|
||||
|
||||
这套工作台用于把视频库里的空字段问题集中收口,给技术、运营、Codex 一个统一入口:
|
||||
|
||||
1. 看当前哪些字段缺失最严重
|
||||
2. 看哪些视频优先处理
|
||||
3. 复制一份可以直接派给 Codex 的提示词
|
||||
|
||||
## 当前范围
|
||||
|
||||
V1 已上线的是“工作台产物 + 后台读取入口 + 手动触发生成 + 历史运行记录”。
|
||||
|
||||
当前不做:
|
||||
|
||||
1. 不会因为发现空字段,就自动调用 AI API 去猜演员、导演、年份、地区、语言
|
||||
2. 不会在采集过程中,直接把不确定的结构化资料写回库
|
||||
3. 不会自动加入计划任务周期跑
|
||||
|
||||
## 命令行入口
|
||||
|
||||
### 1. 只生成工作台
|
||||
|
||||
```bash
|
||||
php SEONexus/code/think video:metadata:workbench --sample=20 --queue-limit=100 --prompt-limit=20
|
||||
```
|
||||
|
||||
参数说明:
|
||||
|
||||
1. `--sample`
|
||||
说明:缺失字段样本数,用于抽样展示典型问题视频
|
||||
2. `--queue-limit`
|
||||
说明:重采优先队列条数,用于给出优先处理的视频集合
|
||||
3. `--prompt-limit`
|
||||
说明:生成给 Codex 的派单样本数
|
||||
|
||||
### 2. 一次性生成“工作台 + 缺字段任务池”
|
||||
|
||||
```bash
|
||||
php SEONexus/code/think video:metadata:task-pool --sample=20 --queue-limit=100 --prompt-limit=20 --batch-size=20 --batch-limit=10
|
||||
```
|
||||
|
||||
参数说明:
|
||||
|
||||
1. `--sample`
|
||||
说明:缺失字段样本数,用于抽样展示典型问题视频
|
||||
2. `--queue-limit`
|
||||
说明:重采优先队列条数,用于给出优先处理的视频集合
|
||||
3. `--prompt-limit`
|
||||
说明:生成给 Codex 的派单样本数
|
||||
4. `--batch-size`
|
||||
说明:每个待处理批次包含多少条视频
|
||||
5. `--batch-limit`
|
||||
说明:单次最多生成多少个批次
|
||||
|
||||
## 后台接口
|
||||
|
||||
1. `GET /admin/video/metadata/missing/workbench`
|
||||
作用:读取最新工作台摘要;如果没有现成产物,会现场生成一次
|
||||
2. `GET /admin/video/metadata/missing/prompt`
|
||||
作用:读取给 Codex 的最新提示词
|
||||
3. `GET /admin/video/metadata/missing/workbench/runs`
|
||||
作用:读取历史运行记录,方便做前后对比
|
||||
4. `POST /admin/video/metadata/missing/workbench/run`
|
||||
作用:强制刷新工作台产物
|
||||
|
||||
## 产物目录
|
||||
|
||||
生成后会写到:
|
||||
|
||||
```text
|
||||
SEONexus/code/app/public/_admin_templates/video-metadata-missing-workbench/
|
||||
```
|
||||
|
||||
主要文件:
|
||||
|
||||
1. `index.json`
|
||||
作用:后台摘要数据源
|
||||
2. `index.html`
|
||||
作用:可直接打开看的工作台页面
|
||||
3. `prompts/latest.md`
|
||||
作用:可以复制给 Codex 的接手提示词
|
||||
|
||||
历史运行记录会写到:
|
||||
|
||||
```text
|
||||
SEONexus/code/app/public/_admin_templates/video-metadata-missing-workbench/runs/
|
||||
```
|
||||
|
||||
每次生成都会保存一份:
|
||||
|
||||
1. `video-metadata-missing-workbench.summary.json`
|
||||
2. `video-metadata-missing-workbench.summary.html`
|
||||
3. `prompt.md`
|
||||
|
||||
## 适合怎么用
|
||||
|
||||
### 场景一:技术自己接手
|
||||
|
||||
1. 后台刷新工作台
|
||||
2. 打开 `prompt` 或 `latest.md`
|
||||
3. 把提示词发给 Codex
|
||||
4. Codex 分析优先级、批次、风险和后续执行建议
|
||||
|
||||
### 场景二:运营先发现问题
|
||||
|
||||
1. 运营在后台看到字段缺失严重
|
||||
2. 让技术刷新工作台
|
||||
3. 技术把提示词发给 Codex 接手
|
||||
|
||||
## 为什么暂时不自动调 AI
|
||||
|
||||
因为空字段里最重的是:
|
||||
|
||||
1. `v_director`
|
||||
2. `v_actor`
|
||||
|
||||
这些都是结构化事实字段,不能靠 AI 猜。
|
||||
现阶段更优策略是:
|
||||
|
||||
1. 先扫描并收集
|
||||
2. 先重采、补源、人工确认
|
||||
3. 只把文案型字段交给 AI
|
||||
|
||||
## 当前是否自动跑
|
||||
|
||||
当前不是自动计划任务触发,也不是采集时自动偷偷触发。
|
||||
|
||||
现在的触发方式只有两种:
|
||||
|
||||
1. 技术手动执行命令
|
||||
2. 后台手动点击刷新接口
|
||||
|
||||
如果技术希望挂到服务器计划任务,建议先挂下面这条命令:
|
||||
|
||||
```bash
|
||||
php /www/wwwroot/diff-maccms/SEONexus/code/think video:metadata:task-pool --sample=8 --queue-limit=50 --prompt-limit=10 --batch-size=10 --batch-limit=10
|
||||
```
|
||||
|
||||
推荐原因:
|
||||
|
||||
1. 一次执行同时刷新工作台和缺字段任务池
|
||||
2. 不会自动补结构化事实字段
|
||||
3. 只生成产物,不会偷偷调用 OpenAI API
|
||||
4. 更适合作为跨项目、跨模板的安全计划任务入口
|
||||
|
||||
如果你是通过数据库里的计划任务表来挂,不走系统 cron,也已经留好了安全入口:
|
||||
|
||||
1. `pt_code` 使用:`REFRESH_VIDEO_METADATA_TASK_POOL`
|
||||
2. 对应逻辑入口:`PlanTask::refreshVideoMetadataTaskPool()`
|
||||
3. 默认行为:
|
||||
- 只刷新工作台和任务池产物
|
||||
- 不自动补演员、导演、年份、地区、语言、发布日期
|
||||
- 不自动调用 OpenAI API
|
||||
- 不自动写回视频库
|
||||
|
||||
建议口径:
|
||||
|
||||
1. 先在测试环境或低频环境启用
|
||||
2. 先把 `pt_limit` 设成较大间隔,比如 `3600` 或 `21600`
|
||||
3. 跑稳定后,再决定是否提升频率
|
||||
|
||||
也就是说,把代码同步到其它项目后,不会自己偷偷扫描全表,不会自己调用 AI。
|
||||
|
||||
如果别的项目想启用这条线,最小启动步骤是:
|
||||
|
||||
1. 同步最新代码
|
||||
2. 执行一次 `video:metadata:task-pool`
|
||||
3. 后台读取任务池接口或直接打开任务池产物页
|
||||
|
||||
这样就能先把“缺字段扫描、待处理批次、Codex 提示词”全跑起来。
|
||||
|
||||
## 其它项目怎么启动
|
||||
|
||||
如果把这套代码同步到其它项目,要启动这个工作台,只需要:
|
||||
|
||||
1. 同步最新代码
|
||||
2. 执行一次
|
||||
|
||||
```bash
|
||||
php SEONexus/code/think video:metadata:workbench
|
||||
```
|
||||
|
||||
3. 后台读取对应接口或直接打开产物页
|
||||
|
||||
## 下一阶段建议
|
||||
|
||||
V2 可以继续做:
|
||||
|
||||
1. 扫描全表空字段后,自动收集到“待处理池”
|
||||
2. 后台展示“缺字段任务池”
|
||||
3. 后台一键生成 Codex 派单提示词
|
||||
4. 再决定是否接计划任务定时刷新
|
||||
5. 给计划任务增加“只刷新工作台,不自动补事实字段”的安全模式
|
||||
|
||||
当前其中第 1 到 3 步已经具备基础能力,第 4 步现在可以通过挂 `video:metadata:task-pool` 命令实现。
|
||||
|
||||
## 当前新增:缺字段待处理池
|
||||
|
||||
当前已经补出第二层:
|
||||
|
||||
1. `GET /admin/video/metadata/missing/task-pool`
|
||||
作用:读取缺字段待处理池
|
||||
2. `GET /admin/video/metadata/missing/task-pool/status`
|
||||
作用:读取缺字段任务池总览状态,包含工作台规模、任务池批次状态、计划任务状态
|
||||
3. `GET /admin/video/metadata/missing/task-pool/plan-task/status`
|
||||
作用:读取缺字段计划任务的启用情况和间隔
|
||||
4. `GET /admin/video/metadata/missing/task-pool/ops`
|
||||
作用:读取缺字段任务池运维总览,包含推荐动作、常用命令和产物路径
|
||||
5. `POST /admin/video/metadata/missing/task-pool/plan-task/status/save`
|
||||
作用:保存缺字段计划任务的启用状态和执行间隔
|
||||
6. `GET /admin/video/metadata/missing/task-pool/batch/detail`
|
||||
作用:读取单个批次详情
|
||||
7. `GET /admin/video/metadata/missing/task-pool/batch/prompt`
|
||||
作用:读取单个批次的 Codex 提示词
|
||||
8. `POST /admin/video/metadata/missing/task-pool/run`
|
||||
作用:重新生成缺字段待处理池
|
||||
9. `POST /admin/video/metadata/missing/task-pool/batch/state/save`
|
||||
作用:保存批次状态
|
||||
|
||||
对应产物目录:
|
||||
|
||||
```text
|
||||
SEONexus/code/app/public/_admin_templates/video-metadata-missing-task-pool/
|
||||
```
|
||||
|
||||
这套任务池现在已经包含:
|
||||
|
||||
1. 最新总览 `index.json` / `index.html`
|
||||
2. 单批次稳定详情 `batches/*.json`
|
||||
3. 单批次稳定提示词 `batches/*.md`
|
||||
4. 单批次状态历史 `state/history/*.json`
|
||||
5. 单批次复制提示词按钮和动作链接
|
||||
6. 状态总览页 `status/index.json` / `status/index.html`
|
||||
|
||||
状态总览页的作用:
|
||||
|
||||
1. 直接展示当前缺字段视频规模
|
||||
2. 展示当前任务池批次数和批次状态统计
|
||||
3. 展示数据库计划任务状态
|
||||
4. 适合不进后台接口时,直接打开 HTML 快速查看
|
||||
|
||||
## 运维总览页
|
||||
|
||||
除了状态总览页,当前还补了一个更偏“后台操作指引”的运维总览页:
|
||||
|
||||
```text
|
||||
SEONexus/code/app/public/_admin_templates/video-metadata-missing-task-pool/ops/index.html
|
||||
SEONexus/code/app/public/_admin_templates/video-metadata-missing-task-pool/ops/index.json
|
||||
```
|
||||
|
||||
它的作用不是替代状态页,而是把“现在该做什么”讲得更直接:
|
||||
|
||||
1. 当前推荐动作
|
||||
2. 当前可执行命令
|
||||
3. 当前工作台和任务池产物路径
|
||||
4. 当前计划任务是否启用
|
||||
|
||||
这个页面适合给:
|
||||
|
||||
1. 运营看,少看接口字段
|
||||
2. 技术看,少翻文档
|
||||
3. 接手的 Codex 看,直接按页面里的命令继续执行
|
||||
|
||||
当前这页默认会在刷新任务池时一起生成,后续如果计划任务接上,也会同步刷新。
|
||||
|
||||
## 后台首页快捷入口
|
||||
|
||||
当前后台首页 `/admin` 已补成快捷入口页,直接提供下面这些跳转:
|
||||
|
||||
1. 工作台
|
||||
2. 任务池
|
||||
3. 状态总览
|
||||
4. 运维总览
|
||||
5. 计划任务状态
|
||||
|
||||
如果你是新接手的 Codex,先打开后台首页,再按页内链接进入对应模块,会比直接记接口路径更快。
|
||||
|
||||
## Vue 后台迁移说明
|
||||
|
||||
这一轮已经把“视频缺字段工作台 / 任务池 / 状态总览 / 运维总览”的页面入口迁到 `SEONexusAdmin` 这个 Vue 后台。
|
||||
|
||||
现在要区分两类入口:
|
||||
|
||||
1. PHP `/admin/video/...`
|
||||
作用:数据接口
|
||||
2. Vue `#/video/...`
|
||||
作用:后台实际页面入口
|
||||
|
||||
当前正确的后台页面路径是:
|
||||
|
||||
1. `#/video/metadata/missing/workbench`
|
||||
2. `#/video/metadata/missing/task-pool`
|
||||
3. `#/video/metadata/missing/task-pool/status`
|
||||
4. `#/video/metadata/missing/task-pool/ops`
|
||||
|
||||
说明:
|
||||
|
||||
1. 不要再把 `/admin/video/metadata/missing/task-pool/ops` 当成最终后台页面 URL
|
||||
2. 这个路径在当前体系里更适合作为 PHP 接口或旧产物路径,不适合作为 Vue 后台页面入口
|
||||
3. 如果要同步到其它服务器,除了同步 `SEONexus/code` 里的 PHP 数据接口,还必须同步 `SEONexusAdmin` 的 Vue 页面和 `dist`
|
||||
|
||||
## 批次状态说明
|
||||
|
||||
当前批次状态先走“文件态”,不走数据库表。
|
||||
|
||||
状态文件位置:
|
||||
|
||||
```text
|
||||
SEONexus/code/app/public/_admin_templates/video-metadata-missing-task-pool/state/batch-status.json
|
||||
```
|
||||
|
||||
状态历史文件位置:
|
||||
|
||||
```text
|
||||
SEONexus/code/app/public/_admin_templates/video-metadata-missing-task-pool/state/history/
|
||||
```
|
||||
|
||||
可用状态:
|
||||
|
||||
1. `pending`
|
||||
含义:待处理
|
||||
2. `dispatched`
|
||||
含义:已派单,已经发给 Codex 或某位技术
|
||||
3. `processing`
|
||||
含义:处理中
|
||||
4. `done`
|
||||
含义:已完成
|
||||
5. `skipped`
|
||||
含义:已跳过
|
||||
|
||||
当前这样设计的原因:
|
||||
|
||||
1. 不需要改数据库
|
||||
2. 可以马上同步到其它项目使用
|
||||
3. 即使别的项目环境不一致,也能直接落地
|
||||
4. 可以先把“当前状态”和“历史轨迹”都收进文件,再决定是否升级成数据库态
|
||||
|
||||
## 批次历史接口
|
||||
|
||||
当前已经补出:
|
||||
|
||||
1. `GET /admin/video/metadata/missing/task-pool/batch/history`
|
||||
作用:读取某个批次的状态变化历史
|
||||
|
||||
2. `POST /admin/video/metadata/missing/task-pool/batch/state/save`
|
||||
作用:保存某个批次的状态变化,同时写入历史
|
||||
|
||||
3. `GET /admin/video/metadata/missing/task-pool/batch/detail`
|
||||
作用:读取某个批次的完整内容、当前状态、历史
|
||||
|
||||
4. `GET /admin/video/metadata/missing/task-pool/batch/prompt`
|
||||
作用:直接拿某个批次专属的 Codex 接手提示词
|
||||
|
||||
说明:
|
||||
|
||||
1. 每次状态变化都会追加写入历史
|
||||
2. 历史时间戳已经提升到微秒级,避免同一秒连续操作时顺序混乱
|
||||
|
||||
后面如果这套机制稳定,再考虑升级成数据库态任务池。
|
||||
|
||||
## 计划任务建议值
|
||||
|
||||
如果你准备把 `REFRESH_VIDEO_METADATA_TASK_POOL` 放进后台计划任务列表,建议先这样配:
|
||||
|
||||
1. `pt_enable = 0`
|
||||
说明:默认先不启用,确认后台状态页和产物页正常后再打开
|
||||
2. `pt_limit = 86400`
|
||||
说明:先按 1 天跑一次,避免太频繁刷新
|
||||
|
||||
启用时可以先观察:
|
||||
|
||||
1. 工作台是否持续刷新
|
||||
2. 任务池批次状态是否正常
|
||||
3. 是否有其它项目需要同步相同计划任务
|
||||
|
||||
如果后台先想看“该不该启用、启用后跑什么”,优先打开运维总览页;
|
||||
如果只是想看当前规模和状态,优先打开状态总览页。
|
||||
@@ -85,9 +85,121 @@
|
||||
- 提交前确认 README 仍能作为入口索引使用
|
||||
```
|
||||
|
||||
## 模板 4:视频元数据 / 重采队列接手
|
||||
|
||||
```md
|
||||
你这次先不要自由发挥,先按这个顺序接手:
|
||||
|
||||
1. 先看 `/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-AI文案与视频元数据公共规则主线.md`
|
||||
2. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-视频元数据缺失处理公共执行规则.md`
|
||||
3. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/17-GPT模板AI文案最高规则-2026-04-18.md`
|
||||
4. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/18-GPT模板演员导演缺失重采Top50执行单-2026-04-18.md`
|
||||
5. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/19-GPT模板演员导演缺失Top20现场执行单-2026-04-18.md`
|
||||
6. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/20-GPT模板演员导演缺失Top21-50现场执行单-2026-04-18.md`
|
||||
7. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/21-GPT模板演员导演缺失重采结果回填模板-2026-04-18.md`
|
||||
8. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/22-GPT模板第一轮重采实战复盘记录单-2026-04-18.md`
|
||||
9. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/25-GPT模板第一二轮重采对比复盘-2026-04-18.md`
|
||||
10. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/26-GPT模板第三轮短剧演员放量验证复盘-2026-04-18.md`
|
||||
11. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/27-GPT模板第四轮短剧演员主线确立复盘-2026-04-18.md`
|
||||
12. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/28-GPT模板第五轮短剧演员批处理复盘-2026-04-18.md`
|
||||
13. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/29-GPT模板短剧演员双源重采SOP-2026-04-18.md`
|
||||
14. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/30-GPT模板第六轮短剧演员复盘与解析容错修复-2026-04-18.md`
|
||||
15. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/31-GPT模板字段补齐对7天SEO收益链路说明-2026-04-18.md`
|
||||
16. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/32-GPT模板第七轮短剧演员尾部样本复盘-2026-04-18.md`
|
||||
17. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/34-GPT模板第八轮短剧演员新鲜样本复盘-2026-04-18.md`
|
||||
18. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/35-GPT模板第九轮现代都市新样本复盘-2026-04-18.md`
|
||||
19. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/36-GPT模板第十轮样本边界验证复盘-2026-04-18.md`
|
||||
20. 再看 `/www/wwwroot/diff-maccms/SEONexus/code/storage/video-metadata-audit/latest.md`
|
||||
21. 再看 `/www/wwwroot/diff-maccms/SEONexus/code/storage/video-metadata-recrawl-queue/latest.md`
|
||||
|
||||
当前任务:
|
||||
- 继续推进视频库元数据优化
|
||||
- 重点处理 `v_actor / v_director` 缺失
|
||||
|
||||
先记住:
|
||||
- `AI文案规则` 和 `视频参数缺失处理规则` 现在属于全项目公共规则,不再只是 GPT 模板规则
|
||||
- GPT 目录里的文档主要是“这条支线已经跑出来的实战结果与样本经验”
|
||||
- 当前“视频缺字段工作台 / 任务池 / 状态 / 运维”页面入口已经迁到 `SEONexusAdmin` 这个 Vue 后台
|
||||
- `PHP /admin/video/...` 主要看作数据接口,不再看作最终后台页面入口
|
||||
- 当前正确的后台页面路径应优先走:
|
||||
- `#/video/metadata/missing/workbench`
|
||||
- `#/video/metadata/missing/task-pool`
|
||||
- `#/video/metadata/missing/task-pool/status`
|
||||
- `#/video/metadata/missing/task-pool/ops`
|
||||
|
||||
工作边界:
|
||||
- 不允许用 AI 猜演员、导演、年份、地区、语言、发布日期
|
||||
- 结构化字段优先走重采 / 补源 / 人工校正
|
||||
- 文案型字段只补空,不覆盖已有内容
|
||||
- `内详 / 未知 / 不详 / 待补充 / 暂无 / 未知演员 / 未知导演` 这类占位值一律按缺失处理
|
||||
- 每次执行后必须复跑审计,确认缺口是否真实下降
|
||||
- 已验证主线:`现代都市短剧 + 双源 + v_actor`
|
||||
- 当前已验证结果:
|
||||
- 第二轮 `5/5` 演员补齐
|
||||
- 第三轮 `8/10` 演员补齐
|
||||
- 第四轮 `10/10` 演员补齐
|
||||
- 第五轮 `10/10` 演员补齐
|
||||
- 第六轮 `8/10` 演员补齐
|
||||
- 第七轮 `6/10` 演员补齐
|
||||
- 第八轮 `10/10` 演员补齐
|
||||
- 第九轮 `8/10` 演员补齐
|
||||
- 第十轮 `5/10` 演员补齐
|
||||
- 当前导演字段三轮连续 `0` 补齐,不要再把 `v_director` 当作短期主 KPI
|
||||
- 当前已修复 `youzhi` 未知分类 `type_id=95` 导致整轮中断的问题,后续这类样本允许“正常失败”,不允许“整批崩溃”
|
||||
- 当前阶段要认识到:越往后进入尾部样本,单轮成功率会回落,但只要 `v_actor` 仍持续净下降,这条线依然值得推进
|
||||
- 第八轮已经再次证明:第七轮的回落主要来自尾部样本池,不是主线失效;当前应坚持“新鲜短剧样本优先、低收益尾部样本降级”
|
||||
- 第九轮进一步证明:换到另一批现代都市新样本后依然能拿到 `8/10`,当前主线已经具备连续复现性
|
||||
- 第十轮进一步证明:主线不能无限泛化;一旦混入 `短剧大全 / 古风替嫁 / 玄门侧`,收益会明显回落,因此核心批处理必须重新收窄到 `现代都市新鲜样本`
|
||||
- 要理解当前动作的 SEO 目标:先看 `31-GPT模板字段补齐对7天SEO收益链路说明-2026-04-18.md`
|
||||
|
||||
优先输出:
|
||||
1. 当前主缺口是什么
|
||||
2. 当前 Top 队列准备怎么执行
|
||||
3. 本轮执行后哪些字段下降了
|
||||
4. 哪个源站更有效
|
||||
5. 下一轮优先补哪一批
|
||||
|
||||
优先命令:
|
||||
1. `php think video:metadata:recrawl-queue --limit 50`
|
||||
2. `php think video:metadata:recrawl-run --limit 10 --dry-run`
|
||||
3. `php think video:metadata:recrawl-run --v-ids=156037 --sources=douban,youzhi`
|
||||
4. `php think video:metadata:audit --sample 10`
|
||||
```
|
||||
|
||||
## 使用建议
|
||||
|
||||
1. 新会话如果是“分析型任务”,优先用模板 1
|
||||
2. 新会话如果是“线上辅助排障”,优先用模板 2
|
||||
3. 新会话如果只是“整理文档 / 收口”,优先用模板 3
|
||||
4. 如果任务混合,可以把模板 1 和模板 3 合并后再发
|
||||
4. 新会话如果是“视频库字段补全 / 重采队列执行”,优先用模板 4
|
||||
5. 如果任务混合,可以把模板 1、3、4 按需合并后再发
|
||||
|
||||
## 模板 5:公共规则极简接手
|
||||
|
||||
```md
|
||||
你先不要自由发挥,先按这个顺序接手:
|
||||
|
||||
1. 先看 `/www/wwwroot/diff-maccms/SEONexus/docs/README.md`
|
||||
2. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-AI文案与视频元数据公共规则主线.md`
|
||||
3. 再看 `/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-视频元数据缺失处理公共执行规则.md`
|
||||
4. 如果任务涉及多人协作或老时间线,再看:
|
||||
`/www/wwwroot/diff-maccms/SEONexus/docs/1270-SEONexus-Codex多版本协作交接总文档.md`
|
||||
|
||||
先记住:
|
||||
- `AI文案规则` 和 `视频元数据缺失处理规则` 现在属于全项目公共规则
|
||||
- 结构化字段不能靠 AI 猜
|
||||
- 文案型字段只能在真实性边界内补空
|
||||
- 所有补齐结果优先写回视频库
|
||||
|
||||
然后你再判断任务是:
|
||||
1. GPT 模板支线
|
||||
2. 蜘蛛 / nginx / 缓存排障
|
||||
3. 视频元数据重采
|
||||
4. 文档收口
|
||||
|
||||
优先输出:
|
||||
1. 当前主结论
|
||||
2. 当前任务属于哪条线
|
||||
3. 当前适用的是哪套公共规则
|
||||
4. 下一步建议
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user