feat(workshop): AI创作需求框收窄为选题侧6字段(删情绪/受众/结构性符号/广告植入4账号设定字段,人设卡已覆盖,保留其他约束兜底)

This commit is contained in:
maogeigei committed 2026-09-02 18:22:28 +08:00
1 parent 5032c583d0
commit d8b76d9cc7
2 files changed
+14 -12

No files matched your search

@@ -652,7 +652,7 @@ const server = http.createServer((req, res) => {
}
// ---------- AI 创作需求打磨(09-02 弹窗内对话:Dify chat-messages 同步、无状态多轮) ----------
// body: { accountName, turn(本轮输入), reqMd(当前需求10行md), history(最近轮[{u,a}]) } → { answer }
// body: { accountName, turn(本轮输入), reqMd(当前需求6行md), history(最近轮[{u,a}]) } → { answer }
if (p === '/api/ai/clarify' && req.method === 'POST') {
let body = '';
req.on('data', (c) => { body += c; if (body.length > 1e6) req.destroy(); });
@@ -704,8 +704,9 @@ const server = http.createServer((req, res) => {
+ '3. 若信息已基本齐备:用一两句话总结并提示用户可点击「提交创作」。\n'
+ '4. 输出必须严格分两段:第一段是对用户说的话(120 字以内,含必要时的问题);\n'
+ '然后另起一行单独输出 ==REQ==;\n'
+ '接着输出 10 行需求清单(仍未确定的项留空值,严禁编造),模板:\n'
+ '- 一句话创意与选题:\n- 叙事形态:\n- 时长目标:\n- 情绪基调:\n- 受众:\n- 核心情节:\n- 结尾落点:\n- 结构性符号:\n- 广告植入:\n- 其他约束:';
+ '接着输出 6 行需求清单(仍未确定的项留空值,严禁编造),模板:\n'
+ '- 一句话创意与选题:\n- 叙事形态:\n- 时长目标:\n- 核心情节:\n- 结尾落点:\n- 其他约束:\n'
+ '5. 需求框只收集本条视频的选题相关信息;账号级设定(情绪基调 / 目标受众 / 结构性符号 / 广告植入等)已由账号设定自动带入创作,不要向达人重复询问这些维度——仅当达人主动提出与账号设定不同的要求时,将其记入「其他约束」。';
// 4) Dify blocking 调用
const difyUrl = String(process.env.DIFY_URL || 'https://mydify.youmanvideo.com/v1').replace(/\/+$/, '');
const ctrl = new AbortController();