272 lines
7.8 KiB
Markdown
272 lines
7.8 KiB
Markdown
# 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
|
|
|
|
### 2.1 运行产物存储口径补充
|
|
|
|
从 `2026-04-19` 开始,新增一条更严格的后端存储口径:
|
|
|
|
1. 后台运行产物
|
|
2. 工作台快照
|
|
3. 任务池快照
|
|
4. 手工导入中间文件
|
|
5. Search Console 模板
|
|
6. 站外 SEO latest / snapshot 摘要
|
|
|
|
以上这类数据,统一视为:
|
|
|
|
- 私有数据
|
|
- 运行时数据
|
|
- 不应默认纳入 Git 的数据
|
|
|
|
所以默认都应落在:
|
|
|
|
- `code/storage/...`
|
|
|
|
而不是:
|
|
|
|
- `code/public/...`
|
|
- `code/app/public/...`
|
|
|
|
当前已完成的收口包括:
|
|
|
|
1. `domain-seo-external latest / snapshot / snapshot-validate` 已迁到 `storage/external-seo/...`
|
|
2. `video-metadata-missing-workbench` 已迁到 `storage/video-metadata-missing/workbench`
|
|
3. `video-metadata-missing-task-pool` 已迁到 `storage/video-metadata-missing/task-pool`
|
|
4. `domain-seo-external/manual-import` 已迁到 `storage/external-seo/manual-import`
|
|
5. `domain-seo-external/search-console` 模板目录已迁到 `storage/external-seo/search-console`
|
|
6. `Vue 后台` 打开 `external-seo/*`、`video-metadata-missing/*` 这类产物时,不再假设文件直接暴露在 `public`,而是通过后台鉴权预览入口读取 `storage` 文件
|
|
|
|
以后如果再新增类似后台产物目录,优先原则是:
|
|
|
|
1. 先想能不能放 `storage`
|
|
2. 默认不要放 `public`
|
|
3. 只有明确需要前台公开访问的静态资源,才考虑进入 `public`
|
|
|
|
补充一条执行口径:
|
|
|
|
1. 如果后台页面需要“打开 HTML / JSON / CSV / prompt / payload”
|
|
2. 优先保留文件在 `storage`
|
|
3. 不要因为前台要看,就把私有运行产物重新搬回 `public`
|
|
4. 应优先补 `后台鉴权读取接口 + Vue 打开工具函数`
|
|
|
|
### 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` 两个仓库,就能拿到同一套后台能力和执行规则。
|