Files
mcn-short-video/project/短视频脚本创作/V1.0/mcn-work-shop/submit-review-tasks.cjs
T

58 lines
2.8 KiB
JavaScript
Raw Normal View History

/* submit-review-tasks.cjs — 对俊希最新的 AI 脚本逐条提交复盘任务(与诊断页「复盘」按钮一致 + 落库 script_review 指令)
用法: node submit-review-tasks.cjs [rewriteId1,rewriteId2,...] (不传则自动取 account_id=3 的最新 done 记录) */
const { DatabaseSync } = require('node:sqlite');
const path = require('path');
const DB = path.join(__dirname, 'mcn-plugin.db');
const API = 'http://localhost:8900/api/run';
const ACCOUNT_ID = 3;
const db = new DatabaseSync(DB, { readOnly: true });
let ids = process.argv.slice(2).map(Number).filter(Boolean);
if (!ids.length) {
ids = db.prepare("SELECT id FROM rewrite_log WHERE account_id=? AND status='done' AND script_text IS NOT NULL AND script_text <> '' ORDER BY id DESC LIMIT 20").all(ACCOUNT_ID).map((r) => r.id);
}
const rows = [];
for (const id of ids) {
const r = db.prepare('SELECT rl.id, rl.video_id, rl.title, v.video_title FROM rewrite_log rl LEFT JOIN account_videos v ON v.id=rl.video_id WHERE rl.id=?').get(id);
if (r) rows.push(r);
}
db.close();
if (!rows.length) { console.log('NO REWRITES TO REVIEW'); process.exit(1); }
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
(async () => {
for (const r of rows) {
const prompt = `请对这条 AI 脚本做复盘评分(AI脚本 / 原视频脚本 / 对比分析三种模式),按 mcn-script-review(脚本复盘)技能执行。
脚本标题:《${r.title || r.video_title || ''}》(rewrite_log.id=${r.id},video_id=${r.video_id})
【任务完成后必须执行】
将复盘结果保存到工作台数据库 mcn-plugin.db 的 script_review 表(数据库路径:D:\\AgentSkill\\mcn-video-script\\project\\短视频脚本创作\\V1.0\\mcn-work-shop\\mcn-plugin.db),字段:
- type='ai'
- rewrite_id=${r.id}
- video_id=${r.video_id}
- dims_json=各维度评分 JSON(设定承接/框架节奏/钩子设置/叙事逻辑/极致事件/共鸣和共情/格式规范性/台词口语化/内容合规/教程完整链/其他)
- total=总分(数字)
- verdict=结论
- issues_json=问题清单 JSON
- content=复盘完整内容
- summary=摘要
- status='done'
(用 node:sqlite 或 sqlite3 写入;若该表不存在则创建后再写)
完成后回复:评分 + 是否已保存。`;
try {
const resp = await fetch(API, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ prompt, name: '复盘指令', skills: ['脚本复盘'] }),
});
const d = await resp.json();
console.log(`SUBMIT review rw${r.id} →`, d.ok ? ('id=' + d.id) : ('ERR ' + d.error));
} catch (e) {
console.log(`SUBMIT review rw${r.id} → EXCEPTION ${e.message}`);
}
await sleep(3000);
}
console.log('ALL REVIEW TASKS SUBMITTED');
})();