Merge branch '108' of https://github.com/HBAI-Ltd/Toonflow-app into 108
# Conflicts: # src/types/database.d.ts
This commit is contained in:
commit
bc7afa31e1
@ -46,7 +46,6 @@ export async function decisionAI(ctx: AgentContext) {
|
|||||||
const mem = buildMemPrompt(await memory.get(text));
|
const mem = buildMemPrompt(await memory.get(text));
|
||||||
|
|
||||||
const projectData = await u.db("o_project").where("id", resTool.data.projectId).first();
|
const projectData = await u.db("o_project").where("id", resTool.data.projectId).first();
|
||||||
const novelData = await u.db("o_novel").where("projectId", resTool.data.projectId).select("id", "chapterIndex as index");
|
|
||||||
|
|
||||||
const projectInfo = [
|
const projectInfo = [
|
||||||
"## 项目信息",
|
"## 项目信息",
|
||||||
@ -57,12 +56,10 @@ export async function decisionAI(ctx: AgentContext) {
|
|||||||
`目标改编视频画幅:${projectData?.videoRatio ?? "16:9"}`,
|
`目标改编视频画幅:${projectData?.videoRatio ?? "16:9"}`,
|
||||||
].join("\n");
|
].join("\n");
|
||||||
|
|
||||||
const projectPrompt = `${projectInfo}\n\n## 章节ID映射表\n${novelData.map((i: any) => `- 章节ID:${i.id}: 第${i.index}章`).join("\n")}\n\n`;
|
|
||||||
|
|
||||||
const { textStream } = await u.Ai.Text("scriptAgent").stream({
|
const { textStream } = await u.Ai.Text("scriptAgent").stream({
|
||||||
messages: [
|
messages: [
|
||||||
{ role: "system", content: prompt },
|
{ role: "system", content: prompt },
|
||||||
{ role: "assistant", content: projectPrompt + mem },
|
{ role: "assistant", content: projectInfo + mem },
|
||||||
{ role: "user", content: text },
|
{ role: "user", content: text },
|
||||||
],
|
],
|
||||||
abortSignal,
|
abortSignal,
|
||||||
@ -72,7 +69,7 @@ export async function decisionAI(ctx: AgentContext) {
|
|||||||
...createSubAgent(ctx),
|
...createSubAgent(ctx),
|
||||||
},
|
},
|
||||||
onFinish: async (completion) => {
|
onFinish: async (completion) => {
|
||||||
await memory.add("assistant:decision", completion.text);
|
await memory.add("assistant:decision", removeAllXmlTags(completion.text));
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -89,12 +86,14 @@ function createSubAgent(parentCtx: AgentContext) {
|
|||||||
name,
|
name,
|
||||||
memoryKey,
|
memoryKey,
|
||||||
tools: extraTools,
|
tools: extraTools,
|
||||||
|
messages,
|
||||||
}: {
|
}: {
|
||||||
prompt: string;
|
prompt: string;
|
||||||
system: string;
|
system: string;
|
||||||
name: string;
|
name: string;
|
||||||
memoryKey: string;
|
memoryKey: string;
|
||||||
tools?: Record<string, any>;
|
tools?: Record<string, any>;
|
||||||
|
messages?: { role: "user" | "assistant" | "system"; content: string }[];
|
||||||
}) {
|
}) {
|
||||||
parentCtx.msg.complete();
|
parentCtx.msg.complete();
|
||||||
const subMsg = resTool.newMessage("assistant", name);
|
const subMsg = resTool.newMessage("assistant", name);
|
||||||
@ -103,7 +102,7 @@ function createSubAgent(parentCtx: AgentContext) {
|
|||||||
|
|
||||||
const { textStream } = await u.Ai.Text("scriptAgent").stream({
|
const { textStream } = await u.Ai.Text("scriptAgent").stream({
|
||||||
system,
|
system,
|
||||||
messages: [{ role: "user", content: prompt }],
|
messages: messages ?? [{ role: "user", content: prompt }],
|
||||||
abortSignal,
|
abortSignal,
|
||||||
tools: { ...extraTools, ...useTools({ resTool, msg: subMsg }) },
|
tools: { ...extraTools, ...useTools({ resTool, msg: subMsg }) },
|
||||||
});
|
});
|
||||||
@ -122,13 +121,13 @@ function createSubAgent(parentCtx: AgentContext) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (fullResponse.trim()) {
|
if (fullResponse.trim()) {
|
||||||
await memory.add(memoryKey, fullResponse, {
|
await memory.add(memoryKey, removeAllXmlTags(fullResponse), {
|
||||||
name,
|
name,
|
||||||
createTime: new Date(subMsg.datetime).getTime(),
|
createTime: new Date(subMsg.datetime).getTime(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
parentCtx.msg = resTool.newMessage("assistant", "统筹");
|
parentCtx.msg = resTool.newMessage("assistant", "视频策划");
|
||||||
return fullResponse;
|
return fullResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,11 +171,25 @@ function createSubAgent(parentCtx: AgentContext) {
|
|||||||
execute: async ({ prompt }) => {
|
execute: async ({ prompt }) => {
|
||||||
const skill = path.join(u.getPath("skills"), "script_execution_script.md");
|
const skill = path.join(u.getPath("skills"), "script_execution_script.md");
|
||||||
const systemPrompt = await fs.promises.readFile(skill, "utf-8");
|
const systemPrompt = await fs.promises.readFile(skill, "utf-8");
|
||||||
|
|
||||||
|
const scriptList = await u.db("o_script").where("projectId", resTool.data.projectId).select("id", "name");
|
||||||
|
const scriptPrompt = ["## 可用剧本(ID:名称)", scriptList.map((s: any) => `${s.id}:${(s.name || "").replace(/[,:]/g, "")}`).join(","), ""].join(
|
||||||
|
"\n",
|
||||||
|
);
|
||||||
|
|
||||||
|
const novelData = await u.db("o_novel").where("projectId", resTool.data.projectId).select("id", "chapterIndex as index");
|
||||||
|
|
||||||
|
const projectPrompt = ["## 章节ID映射(ID:章序)", novelData.map((i: any) => `${i.id}:${i.index}`).join(","), ""].join("\n");
|
||||||
|
|
||||||
return runAgent({
|
return runAgent({
|
||||||
prompt,
|
prompt,
|
||||||
system:
|
system:
|
||||||
systemPrompt +
|
systemPrompt +
|
||||||
`\n你必须使用如下XML格式写入工作区:\nXML不得添加任何额外标签<scriptItem name="剧本名称">剧本内容</scriptItem><item name="剧本名称">剧本内容</item><item name="剧本名称">剧本内容</item>`,
|
`\n你必须使用如下XML格式写入工作区:\nXML不得添加任何额外标签<scriptItem name="剧本名称">剧本内容</scriptItem><item name="剧本名称">剧本内容</item><item name="剧本名称">剧本内容</item>`,
|
||||||
|
messages: [
|
||||||
|
{ role: "assistant", content: projectPrompt + "\n" + scriptPrompt },
|
||||||
|
{ role: "user", content: prompt },
|
||||||
|
],
|
||||||
name: "编剧",
|
name: "编剧",
|
||||||
memoryKey: "assistant:execution:script",
|
memoryKey: "assistant:execution:script",
|
||||||
});
|
});
|
||||||
@ -206,3 +219,10 @@ function createSubAgent(parentCtx: AgentContext) {
|
|||||||
run_supervision_agent,
|
run_supervision_agent,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function removeAllXmlTags(text: string): string {
|
||||||
|
text = text.replace(/<([a-zA-Z][\w-]*)(\s+[^>]*)?>([\s\S]*?)<\/\1>/g, "");
|
||||||
|
text = text.replace(/<([a-zA-Z][\w-]*)(\s+[^>]*)?\/>/g, "");
|
||||||
|
text = text.replace(/<\/?[a-zA-Z][\w-]*(\s+[^>]*)?>/g, "");
|
||||||
|
return text.trim();
|
||||||
|
}
|
||||||
|
|||||||
@ -83,6 +83,22 @@ export default (toolCpnfig: ToolConfig) => {
|
|||||||
return text ?? "无数据";
|
return text ?? "无数据";
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
get_script_content: tool({
|
||||||
|
description: "获取剧本本内容",
|
||||||
|
inputSchema: z.object({
|
||||||
|
ids: z.array(z.string()).describe("脚本id"),
|
||||||
|
}),
|
||||||
|
execute: async ({ ids }) => {
|
||||||
|
console.log("[tools] get_script_content", "[tools] get_script_content", ids);
|
||||||
|
const thinking = msg.thinking(`正在获取脚本内容...`);
|
||||||
|
const data = await u.db("o_script").whereIn("id", ids).select("content", "name");
|
||||||
|
const text = data && data.length ? data.map((d) => `<scriptItem name="${d.name}">${d.content}</scriptItem>`).join("\n") : "";
|
||||||
|
thinking.appendText(`获取到脚本内容:\n` + text);
|
||||||
|
thinking.updateTitle(`获取脚本内容完成`);
|
||||||
|
thinking.complete();
|
||||||
|
return text ?? "无数据";
|
||||||
|
},
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
return toolsNames ? Object.fromEntries(Object.entries(tools).filter(([n]) => toolsNames.includes(n))) : tools;
|
return toolsNames ? Object.fromEntries(Object.entries(tools).filter(([n]) => toolsNames.includes(n))) : tools;
|
||||||
};
|
};
|
||||||
|
|||||||
216
src/router.ts
216
src/router.ts
@ -1,4 +1,4 @@
|
|||||||
// @routes-hash 4bd2ce809f84bc7049bfcf3accb58805
|
// @routes-hash 0253aa6854e0abb4ff28e37f2593105e
|
||||||
import { Express } from "express";
|
import { Express } from "express";
|
||||||
|
|
||||||
import route1 from "./routes/agents/clearMemory";
|
import route1 from "./routes/agents/clearMemory";
|
||||||
@ -70,59 +70,60 @@ import route66 from "./routes/production/workbench/confirmSelection";
|
|||||||
import route67 from "./routes/production/workbench/delVideo";
|
import route67 from "./routes/production/workbench/delVideo";
|
||||||
import route68 from "./routes/production/workbench/generateVideo";
|
import route68 from "./routes/production/workbench/generateVideo";
|
||||||
import route69 from "./routes/production/workbench/generateVideoPrompt";
|
import route69 from "./routes/production/workbench/generateVideoPrompt";
|
||||||
import route70 from "./routes/production/workbench/getVideoModelDetail";
|
import route70 from "./routes/production/workbench/getGenerateData";
|
||||||
import route71 from "./routes/production/workbench/videoPolling";
|
import route71 from "./routes/production/workbench/getVideoModelDetail";
|
||||||
import route72 from "./routes/project/addProject";
|
import route72 from "./routes/production/workbench/videoPolling";
|
||||||
import route73 from "./routes/project/addVisual";
|
import route73 from "./routes/project/addProject";
|
||||||
import route74 from "./routes/project/addVisualManual";
|
import route74 from "./routes/project/addVisual";
|
||||||
import route75 from "./routes/project/deleteVisualManual";
|
import route75 from "./routes/project/addVisualManual";
|
||||||
import route76 from "./routes/project/delProject";
|
import route76 from "./routes/project/deleteVisualManual";
|
||||||
import route77 from "./routes/project/editProject";
|
import route77 from "./routes/project/delProject";
|
||||||
import route78 from "./routes/project/editVisualManual";
|
import route78 from "./routes/project/editProject";
|
||||||
import route79 from "./routes/project/getProject";
|
import route79 from "./routes/project/editVisualManual";
|
||||||
import route80 from "./routes/project/getVisualManual";
|
import route80 from "./routes/project/getProject";
|
||||||
import route81 from "./routes/project/visualManual";
|
import route81 from "./routes/project/getVisualManual";
|
||||||
import route82 from "./routes/script/addScript";
|
import route82 from "./routes/project/visualManual";
|
||||||
import route83 from "./routes/script/delScript";
|
import route83 from "./routes/script/addScript";
|
||||||
import route84 from "./routes/script/exportScript";
|
import route84 from "./routes/script/delScript";
|
||||||
import route85 from "./routes/script/extractAssets";
|
import route85 from "./routes/script/exportScript";
|
||||||
import route86 from "./routes/script/getScrptApi";
|
import route86 from "./routes/script/extractAssets";
|
||||||
import route87 from "./routes/script/pollScriptAssets";
|
import route87 from "./routes/script/getScrptApi";
|
||||||
import route88 from "./routes/script/updateScript";
|
import route88 from "./routes/script/pollScriptAssets";
|
||||||
import route89 from "./routes/scriptAgent/getPlanData";
|
import route89 from "./routes/script/updateScript";
|
||||||
import route90 from "./routes/scriptAgent/setPlanData";
|
import route90 from "./routes/scriptAgent/getPlanData";
|
||||||
import route91 from "./routes/scriptAgent/updateData";
|
import route91 from "./routes/scriptAgent/setPlanData";
|
||||||
import route92 from "./routes/setting/about/checkUpdate";
|
import route92 from "./routes/scriptAgent/updateData";
|
||||||
import route93 from "./routes/setting/about/downloadApp";
|
import route93 from "./routes/setting/about/checkUpdate";
|
||||||
import route94 from "./routes/setting/agentDeploy/agentSetKey";
|
import route94 from "./routes/setting/about/downloadApp";
|
||||||
import route95 from "./routes/setting/agentDeploy/deployAgentModel";
|
import route95 from "./routes/setting/agentDeploy/agentSetKey";
|
||||||
import route96 from "./routes/setting/agentDeploy/getAgentDeploy";
|
import route96 from "./routes/setting/agentDeploy/deployAgentModel";
|
||||||
import route97 from "./routes/setting/dbConfig/clearData";
|
import route97 from "./routes/setting/agentDeploy/getAgentDeploy";
|
||||||
import route98 from "./routes/setting/dev/getSwitchAiDevTool";
|
import route98 from "./routes/setting/dbConfig/clearData";
|
||||||
import route99 from "./routes/setting/dev/updateSwitchAiDevTool";
|
import route99 from "./routes/setting/dev/getSwitchAiDevTool";
|
||||||
import route100 from "./routes/setting/fileManagement/openFolder";
|
import route100 from "./routes/setting/dev/updateSwitchAiDevTool";
|
||||||
import route101 from "./routes/setting/getTextModel";
|
import route101 from "./routes/setting/fileManagement/openFolder";
|
||||||
import route102 from "./routes/setting/loginConfig/getUser";
|
import route102 from "./routes/setting/getTextModel";
|
||||||
import route103 from "./routes/setting/loginConfig/updateUserPwd";
|
import route103 from "./routes/setting/loginConfig/getUser";
|
||||||
import route104 from "./routes/setting/memoryConfig/delAllMemory";
|
import route104 from "./routes/setting/loginConfig/updateUserPwd";
|
||||||
import route105 from "./routes/setting/memoryConfig/getMemory";
|
import route105 from "./routes/setting/memoryConfig/delAllMemory";
|
||||||
import route106 from "./routes/setting/memoryConfig/sureMemory";
|
import route106 from "./routes/setting/memoryConfig/getMemory";
|
||||||
import route107 from "./routes/setting/promptManage/getPrompt";
|
import route107 from "./routes/setting/memoryConfig/sureMemory";
|
||||||
import route108 from "./routes/setting/promptManage/updatePrompt";
|
import route108 from "./routes/setting/promptManage/getPrompt";
|
||||||
import route109 from "./routes/setting/skillManagement/getSkillContent";
|
import route109 from "./routes/setting/promptManage/updatePrompt";
|
||||||
import route110 from "./routes/setting/skillManagement/getSkillList";
|
import route110 from "./routes/setting/skillManagement/getSkillContent";
|
||||||
import route111 from "./routes/setting/skillManagement/saveSkillContent";
|
import route111 from "./routes/setting/skillManagement/getSkillList";
|
||||||
import route112 from "./routes/setting/vendorConfig/addVendor";
|
import route112 from "./routes/setting/skillManagement/saveSkillContent";
|
||||||
import route113 from "./routes/setting/vendorConfig/deleteVendor";
|
import route113 from "./routes/setting/vendorConfig/addVendor";
|
||||||
import route114 from "./routes/setting/vendorConfig/getVendorList";
|
import route114 from "./routes/setting/vendorConfig/deleteVendor";
|
||||||
import route115 from "./routes/setting/vendorConfig/modelTest";
|
import route115 from "./routes/setting/vendorConfig/getVendorList";
|
||||||
import route116 from "./routes/setting/vendorConfig/updateCode";
|
import route116 from "./routes/setting/vendorConfig/modelTest";
|
||||||
import route117 from "./routes/setting/vendorConfig/updateVendor";
|
import route117 from "./routes/setting/vendorConfig/updateCode";
|
||||||
import route118 from "./routes/task/getProject";
|
import route118 from "./routes/setting/vendorConfig/updateVendor";
|
||||||
import route119 from "./routes/task/getTaskApi";
|
import route119 from "./routes/task/getProject";
|
||||||
import route120 from "./routes/task/getTaskCategories";
|
import route120 from "./routes/task/getTaskApi";
|
||||||
import route121 from "./routes/task/taskDetails";
|
import route121 from "./routes/task/getTaskCategories";
|
||||||
import route122 from "./routes/test/test";
|
import route122 from "./routes/task/taskDetails";
|
||||||
|
import route123 from "./routes/test/test";
|
||||||
|
|
||||||
export default async (app: Express) => {
|
export default async (app: Express) => {
|
||||||
app.use("/api/agents/clearMemory", route1);
|
app.use("/api/agents/clearMemory", route1);
|
||||||
@ -194,57 +195,58 @@ export default async (app: Express) => {
|
|||||||
app.use("/api/production/workbench/delVideo", route67);
|
app.use("/api/production/workbench/delVideo", route67);
|
||||||
app.use("/api/production/workbench/generateVideo", route68);
|
app.use("/api/production/workbench/generateVideo", route68);
|
||||||
app.use("/api/production/workbench/generateVideoPrompt", route69);
|
app.use("/api/production/workbench/generateVideoPrompt", route69);
|
||||||
app.use("/api/production/workbench/getVideoModelDetail", route70);
|
app.use("/api/production/workbench/getGenerateData", route70);
|
||||||
app.use("/api/production/workbench/videoPolling", route71);
|
app.use("/api/production/workbench/getVideoModelDetail", route71);
|
||||||
app.use("/api/project/addProject", route72);
|
app.use("/api/production/workbench/videoPolling", route72);
|
||||||
app.use("/api/project/addVisual", route73);
|
app.use("/api/project/addProject", route73);
|
||||||
app.use("/api/project/addVisualManual", route74);
|
app.use("/api/project/addVisual", route74);
|
||||||
app.use("/api/project/deleteVisualManual", route75);
|
app.use("/api/project/addVisualManual", route75);
|
||||||
app.use("/api/project/delProject", route76);
|
app.use("/api/project/deleteVisualManual", route76);
|
||||||
app.use("/api/project/editProject", route77);
|
app.use("/api/project/delProject", route77);
|
||||||
app.use("/api/project/editVisualManual", route78);
|
app.use("/api/project/editProject", route78);
|
||||||
app.use("/api/project/getProject", route79);
|
app.use("/api/project/editVisualManual", route79);
|
||||||
app.use("/api/project/getVisualManual", route80);
|
app.use("/api/project/getProject", route80);
|
||||||
app.use("/api/project/visualManual", route81);
|
app.use("/api/project/getVisualManual", route81);
|
||||||
app.use("/api/script/addScript", route82);
|
app.use("/api/project/visualManual", route82);
|
||||||
app.use("/api/script/delScript", route83);
|
app.use("/api/script/addScript", route83);
|
||||||
app.use("/api/script/exportScript", route84);
|
app.use("/api/script/delScript", route84);
|
||||||
app.use("/api/script/extractAssets", route85);
|
app.use("/api/script/exportScript", route85);
|
||||||
app.use("/api/script/getScrptApi", route86);
|
app.use("/api/script/extractAssets", route86);
|
||||||
app.use("/api/script/pollScriptAssets", route87);
|
app.use("/api/script/getScrptApi", route87);
|
||||||
app.use("/api/script/updateScript", route88);
|
app.use("/api/script/pollScriptAssets", route88);
|
||||||
app.use("/api/scriptAgent/getPlanData", route89);
|
app.use("/api/script/updateScript", route89);
|
||||||
app.use("/api/scriptAgent/setPlanData", route90);
|
app.use("/api/scriptAgent/getPlanData", route90);
|
||||||
app.use("/api/scriptAgent/updateData", route91);
|
app.use("/api/scriptAgent/setPlanData", route91);
|
||||||
app.use("/api/setting/about/checkUpdate", route92);
|
app.use("/api/scriptAgent/updateData", route92);
|
||||||
app.use("/api/setting/about/downloadApp", route93);
|
app.use("/api/setting/about/checkUpdate", route93);
|
||||||
app.use("/api/setting/agentDeploy/agentSetKey", route94);
|
app.use("/api/setting/about/downloadApp", route94);
|
||||||
app.use("/api/setting/agentDeploy/deployAgentModel", route95);
|
app.use("/api/setting/agentDeploy/agentSetKey", route95);
|
||||||
app.use("/api/setting/agentDeploy/getAgentDeploy", route96);
|
app.use("/api/setting/agentDeploy/deployAgentModel", route96);
|
||||||
app.use("/api/setting/dbConfig/clearData", route97);
|
app.use("/api/setting/agentDeploy/getAgentDeploy", route97);
|
||||||
app.use("/api/setting/dev/getSwitchAiDevTool", route98);
|
app.use("/api/setting/dbConfig/clearData", route98);
|
||||||
app.use("/api/setting/dev/updateSwitchAiDevTool", route99);
|
app.use("/api/setting/dev/getSwitchAiDevTool", route99);
|
||||||
app.use("/api/setting/fileManagement/openFolder", route100);
|
app.use("/api/setting/dev/updateSwitchAiDevTool", route100);
|
||||||
app.use("/api/setting/getTextModel", route101);
|
app.use("/api/setting/fileManagement/openFolder", route101);
|
||||||
app.use("/api/setting/loginConfig/getUser", route102);
|
app.use("/api/setting/getTextModel", route102);
|
||||||
app.use("/api/setting/loginConfig/updateUserPwd", route103);
|
app.use("/api/setting/loginConfig/getUser", route103);
|
||||||
app.use("/api/setting/memoryConfig/delAllMemory", route104);
|
app.use("/api/setting/loginConfig/updateUserPwd", route104);
|
||||||
app.use("/api/setting/memoryConfig/getMemory", route105);
|
app.use("/api/setting/memoryConfig/delAllMemory", route105);
|
||||||
app.use("/api/setting/memoryConfig/sureMemory", route106);
|
app.use("/api/setting/memoryConfig/getMemory", route106);
|
||||||
app.use("/api/setting/promptManage/getPrompt", route107);
|
app.use("/api/setting/memoryConfig/sureMemory", route107);
|
||||||
app.use("/api/setting/promptManage/updatePrompt", route108);
|
app.use("/api/setting/promptManage/getPrompt", route108);
|
||||||
app.use("/api/setting/skillManagement/getSkillContent", route109);
|
app.use("/api/setting/promptManage/updatePrompt", route109);
|
||||||
app.use("/api/setting/skillManagement/getSkillList", route110);
|
app.use("/api/setting/skillManagement/getSkillContent", route110);
|
||||||
app.use("/api/setting/skillManagement/saveSkillContent", route111);
|
app.use("/api/setting/skillManagement/getSkillList", route111);
|
||||||
app.use("/api/setting/vendorConfig/addVendor", route112);
|
app.use("/api/setting/skillManagement/saveSkillContent", route112);
|
||||||
app.use("/api/setting/vendorConfig/deleteVendor", route113);
|
app.use("/api/setting/vendorConfig/addVendor", route113);
|
||||||
app.use("/api/setting/vendorConfig/getVendorList", route114);
|
app.use("/api/setting/vendorConfig/deleteVendor", route114);
|
||||||
app.use("/api/setting/vendorConfig/modelTest", route115);
|
app.use("/api/setting/vendorConfig/getVendorList", route115);
|
||||||
app.use("/api/setting/vendorConfig/updateCode", route116);
|
app.use("/api/setting/vendorConfig/modelTest", route116);
|
||||||
app.use("/api/setting/vendorConfig/updateVendor", route117);
|
app.use("/api/setting/vendorConfig/updateCode", route117);
|
||||||
app.use("/api/task/getProject", route118);
|
app.use("/api/setting/vendorConfig/updateVendor", route118);
|
||||||
app.use("/api/task/getTaskApi", route119);
|
app.use("/api/task/getProject", route119);
|
||||||
app.use("/api/task/getTaskCategories", route120);
|
app.use("/api/task/getTaskApi", route120);
|
||||||
app.use("/api/task/taskDetails", route121);
|
app.use("/api/task/getTaskCategories", route121);
|
||||||
app.use("/api/test/test", route122);
|
app.use("/api/task/taskDetails", route122);
|
||||||
|
app.use("/api/test/test", route123);
|
||||||
}
|
}
|
||||||
|
|||||||
51
src/routes/production/workbench/getGenerateData.ts
Normal file
51
src/routes/production/workbench/getGenerateData.ts
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
import express from "express";
|
||||||
|
import u from "@/utils";
|
||||||
|
import { z } from "zod";
|
||||||
|
import { success } from "@/lib/responseFormat";
|
||||||
|
import { validateFields } from "@/middleware/middleware";
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
interface VideoItem {
|
||||||
|
id: number;
|
||||||
|
src: string;
|
||||||
|
state: "未生成" | "生成中" | "已完成" | "生成失败";
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TrackMedia {
|
||||||
|
src: string;
|
||||||
|
id?: number;
|
||||||
|
fileType: "image" | "video" | "audio";
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TrackItem {
|
||||||
|
id?: number;
|
||||||
|
medias: TrackMedia[];
|
||||||
|
videoList: VideoItem[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export default router.post(
|
||||||
|
"/",
|
||||||
|
validateFields({
|
||||||
|
projectId: z.number(),
|
||||||
|
scriptId: z.number(),
|
||||||
|
}),
|
||||||
|
async (req, res) => {
|
||||||
|
const { projectId, scriptId } = req.body;
|
||||||
|
// const data = await u.db("o_videoTrack").where({ projectId, scriptId });
|
||||||
|
const storyboardList = await u.db("o_storyboard").where({ scriptId }).orderBy("index", "asc");
|
||||||
|
console.log("%c Line:17 🥝 storyboardList", "background:#ea7e5c", storyboardList);
|
||||||
|
// const data = await u.db("o_video").where({ projectId, scriptId });
|
||||||
|
const trackList: TrackItem[] = [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
medias: [{ src: "https://example.com/image1.jpg", fileType: "image", id: 1 }],
|
||||||
|
videoList: [
|
||||||
|
{ id: 1, src: "https://example.com/video1.mp4", state: "已完成" },
|
||||||
|
{ id: 2, src: "https://example.com/video2.mp4", state: "生成中" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
res.status(200).send(success(trackList));
|
||||||
|
},
|
||||||
|
);
|
||||||
118
src/types/database.d.ts
vendored
118
src/types/database.d.ts
vendored
@ -1,82 +1,6 @@
|
|||||||
// @db-hash f82a518c947d01d53088924d17bbc925
|
// @db-hash c2029b55b7dcdcf64788dafc34799fea
|
||||||
//该文件由脚本自动生成,请勿手动修改
|
//该文件由脚本自动生成,请勿手动修改
|
||||||
|
|
||||||
export interface _o_assets_old_20260331 {
|
|
||||||
'assetsId'?: number | null;
|
|
||||||
'describe'?: string | null;
|
|
||||||
'id'?: number;
|
|
||||||
'imageId'?: number | null;
|
|
||||||
'name'?: string | null;
|
|
||||||
'projectId'?: number | null;
|
|
||||||
'prompt'?: string | null;
|
|
||||||
'promptState'?: string | null;
|
|
||||||
'remark'?: string | null;
|
|
||||||
'scriptId'?: number | null;
|
|
||||||
'startTime'?: number | null;
|
|
||||||
'type'?: string | null;
|
|
||||||
}
|
|
||||||
export interface _o_imageFlow_old_20260331 {
|
|
||||||
'assetsId'?: number | null;
|
|
||||||
'flowData': string;
|
|
||||||
'id'?: number;
|
|
||||||
'storyboardId'?: number | null;
|
|
||||||
}
|
|
||||||
export interface _o_storyboard_old_20260331 {
|
|
||||||
'camera'?: string | null;
|
|
||||||
'createTime'?: number | null;
|
|
||||||
'description'?: string | null;
|
|
||||||
'duration'?: string | null;
|
|
||||||
'filePath'?: string | null;
|
|
||||||
'frameMode'?: string | null;
|
|
||||||
'id'?: number;
|
|
||||||
'index'?: number | null;
|
|
||||||
'lines'?: string | null;
|
|
||||||
'mode'?: string | null;
|
|
||||||
'model'?: string | null;
|
|
||||||
'prompt'?: string | null;
|
|
||||||
'reason'?: string | null;
|
|
||||||
'resolution'?: string | null;
|
|
||||||
'scriptId'?: number | null;
|
|
||||||
'sound'?: string | null;
|
|
||||||
'state'?: string | null;
|
|
||||||
'title'?: string | null;
|
|
||||||
'videoPrompt'?: string | null;
|
|
||||||
}
|
|
||||||
export interface _o_storyboard_old_20260331_1 {
|
|
||||||
'camera'?: string | null;
|
|
||||||
'createTime'?: number | null;
|
|
||||||
'description'?: string | null;
|
|
||||||
'duration'?: string | null;
|
|
||||||
'filePath'?: string | null;
|
|
||||||
'frameMode'?: string | null;
|
|
||||||
'id'?: number;
|
|
||||||
'index'?: number | null;
|
|
||||||
'lines'?: string | null;
|
|
||||||
'mode'?: string | null;
|
|
||||||
'model'?: string | null;
|
|
||||||
'prompt'?: string | null;
|
|
||||||
'reason'?: string | null;
|
|
||||||
'resolution'?: string | null;
|
|
||||||
'scriptId'?: number | null;
|
|
||||||
'sound'?: string | null;
|
|
||||||
'state'?: string | null;
|
|
||||||
'title'?: string | null;
|
|
||||||
'track'?: string | null;
|
|
||||||
'videoPrompt'?: string | null;
|
|
||||||
}
|
|
||||||
export interface _o_storyboard_old_20260331_2 {
|
|
||||||
'createTime'?: number | null;
|
|
||||||
'duration'?: string | null;
|
|
||||||
'filePath'?: string | null;
|
|
||||||
'id'?: number;
|
|
||||||
'index'?: number | null;
|
|
||||||
'projectId'?: number | null;
|
|
||||||
'prompt'?: string | null;
|
|
||||||
'reason'?: string | null;
|
|
||||||
'scriptId'?: number | null;
|
|
||||||
'state'?: string | null;
|
|
||||||
'trackId'?: number | null;
|
|
||||||
}
|
|
||||||
export interface memories {
|
export interface memories {
|
||||||
'content': string;
|
'content': string;
|
||||||
'createTime': number;
|
'createTime': number;
|
||||||
@ -118,7 +42,6 @@ export interface o_artStyle {
|
|||||||
export interface o_assets {
|
export interface o_assets {
|
||||||
'assetsId'?: number | null;
|
'assetsId'?: number | null;
|
||||||
'describe'?: string | null;
|
'describe'?: string | null;
|
||||||
'flowId'?: number | null;
|
|
||||||
'id'?: number;
|
'id'?: number;
|
||||||
'imageId'?: number | null;
|
'imageId'?: number | null;
|
||||||
'name'?: string | null;
|
'name'?: string | null;
|
||||||
@ -156,8 +79,10 @@ export interface o_image {
|
|||||||
'type'?: string | null;
|
'type'?: string | null;
|
||||||
}
|
}
|
||||||
export interface o_imageFlow {
|
export interface o_imageFlow {
|
||||||
|
'assetsId'?: number | null;
|
||||||
'flowData': string;
|
'flowData': string;
|
||||||
'id'?: number;
|
'id'?: number;
|
||||||
|
'storyboardId'?: number | null;
|
||||||
}
|
}
|
||||||
export interface o_novel {
|
export interface o_novel {
|
||||||
'chapter'?: string | null;
|
'chapter'?: string | null;
|
||||||
@ -189,6 +114,7 @@ export interface o_project {
|
|||||||
'imageModel'?: string | null;
|
'imageModel'?: string | null;
|
||||||
'imageQuality'?: string | null;
|
'imageQuality'?: string | null;
|
||||||
'intro'?: string | null;
|
'intro'?: string | null;
|
||||||
|
'mode'?: string | null;
|
||||||
'name'?: string | null;
|
'name'?: string | null;
|
||||||
'projectType'?: string | null;
|
'projectType'?: string | null;
|
||||||
'type'?: string | null;
|
'type'?: string | null;
|
||||||
@ -236,18 +162,26 @@ export interface o_skillList {
|
|||||||
'updateTime': number;
|
'updateTime': number;
|
||||||
}
|
}
|
||||||
export interface o_storyboard {
|
export interface o_storyboard {
|
||||||
|
'camera'?: string | null;
|
||||||
'createTime'?: number | null;
|
'createTime'?: number | null;
|
||||||
|
'description'?: string | null;
|
||||||
'duration'?: string | null;
|
'duration'?: string | null;
|
||||||
'filePath'?: string | null;
|
'filePath'?: string | null;
|
||||||
'flowId'?: number | null;
|
'frameMode'?: string | null;
|
||||||
|
'group'?: string | null;
|
||||||
'id'?: number;
|
'id'?: number;
|
||||||
'index'?: number | null;
|
'index'?: number | null;
|
||||||
'projectId'?: number | null;
|
'lines'?: string | null;
|
||||||
|
'mode'?: string | null;
|
||||||
|
'model'?: string | null;
|
||||||
'prompt'?: string | null;
|
'prompt'?: string | null;
|
||||||
'reason'?: string | null;
|
'reason'?: string | null;
|
||||||
|
'resolution'?: string | null;
|
||||||
'scriptId'?: number | null;
|
'scriptId'?: number | null;
|
||||||
|
'sound'?: string | null;
|
||||||
'state'?: string | null;
|
'state'?: string | null;
|
||||||
'trackId'?: number | null;
|
'title'?: string | null;
|
||||||
|
'videoPrompt'?: string | null;
|
||||||
}
|
}
|
||||||
export interface o_tasks {
|
export interface o_tasks {
|
||||||
'describe'?: string | null;
|
'describe'?: string | null;
|
||||||
@ -284,22 +218,8 @@ export interface o_video {
|
|||||||
'projectId'?: number | null;
|
'projectId'?: number | null;
|
||||||
'scriptId'?: number | null;
|
'scriptId'?: number | null;
|
||||||
'state'?: string | null;
|
'state'?: string | null;
|
||||||
'storyboardId'?: number | null;
|
|
||||||
'time'?: number | null;
|
'time'?: number | null;
|
||||||
}
|
'videoTrackId'?: number | null;
|
||||||
export interface o_videoConfig {
|
|
||||||
'audio'?: number | null;
|
|
||||||
'createTime'?: number | null;
|
|
||||||
'data'?: string | null;
|
|
||||||
'duration'?: number | null;
|
|
||||||
'id'?: number;
|
|
||||||
'mode'?: string | null;
|
|
||||||
'model'?: string | null;
|
|
||||||
'prompt'?: string | null;
|
|
||||||
'resolution'?: string | null;
|
|
||||||
'storyboardId'?: number | null;
|
|
||||||
'updateTime'?: number | null;
|
|
||||||
'videoId'?: number | null;
|
|
||||||
}
|
}
|
||||||
export interface o_videoTrack {
|
export interface o_videoTrack {
|
||||||
'id'?: number;
|
'id'?: number;
|
||||||
@ -309,11 +229,6 @@ export interface o_videoTrack {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface DB {
|
export interface DB {
|
||||||
"_o_assets_old_20260331": _o_assets_old_20260331;
|
|
||||||
"_o_imageFlow_old_20260331": _o_imageFlow_old_20260331;
|
|
||||||
"_o_storyboard_old_20260331": _o_storyboard_old_20260331;
|
|
||||||
"_o_storyboard_old_20260331_1": _o_storyboard_old_20260331_1;
|
|
||||||
"_o_storyboard_old_20260331_2": _o_storyboard_old_20260331_2;
|
|
||||||
"memories": memories;
|
"memories": memories;
|
||||||
"o_agentDeploy": o_agentDeploy;
|
"o_agentDeploy": o_agentDeploy;
|
||||||
"o_agentWorkData": o_agentWorkData;
|
"o_agentWorkData": o_agentWorkData;
|
||||||
@ -339,6 +254,5 @@ export interface DB {
|
|||||||
"o_user": o_user;
|
"o_user": o_user;
|
||||||
"o_vendorConfig": o_vendorConfig;
|
"o_vendorConfig": o_vendorConfig;
|
||||||
"o_video": o_video;
|
"o_video": o_video;
|
||||||
"o_videoConfig": o_videoConfig;
|
|
||||||
"o_videoTrack": o_videoTrack;
|
"o_videoTrack": o_videoTrack;
|
||||||
}
|
}
|
||||||
|
|||||||
40
yarn.lock
40
yarn.lock
@ -50,9 +50,9 @@
|
|||||||
"@vercel/oidc" "3.1.0"
|
"@vercel/oidc" "3.1.0"
|
||||||
|
|
||||||
"@ai-sdk/google@^3.0.20":
|
"@ai-sdk/google@^3.0.20":
|
||||||
version "3.0.53"
|
version "3.0.54"
|
||||||
resolved "https://registry.npmmirror.com/@ai-sdk/google/-/google-3.0.53.tgz#3dc30808593e774d8068b46f6ac2ab4ff15e88f8"
|
resolved "https://registry.npmmirror.com/@ai-sdk/google/-/google-3.0.54.tgz#648cfb5ddd38e4931811fdd94c8c291cc6aa4c21"
|
||||||
integrity sha512-uz8tIlkDgQJG9Js2Wh9JHzd4kI9+hYJqf9XXJLx60vyN5mRIqhr49iwR5zGP5Gl8odp2PeR3Gh2k+5bh3Z1HHw==
|
integrity sha512-EgYYdA2LpHZefLDU/FIpmeTlL5Hi4WKQZY3nACMh0wVhrS1fAvlfrdwnD1G4ISCOKWMWrMcRZX9ubs3NM/KHfA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ai-sdk/provider" "3.0.8"
|
"@ai-sdk/provider" "3.0.8"
|
||||||
"@ai-sdk/provider-utils" "4.0.21"
|
"@ai-sdk/provider-utils" "4.0.21"
|
||||||
@ -66,9 +66,9 @@
|
|||||||
"@ai-sdk/provider-utils" "4.0.21"
|
"@ai-sdk/provider-utils" "4.0.21"
|
||||||
|
|
||||||
"@ai-sdk/openai@^3.0.25":
|
"@ai-sdk/openai@^3.0.25":
|
||||||
version "3.0.48"
|
version "3.0.49"
|
||||||
resolved "https://registry.npmmirror.com/@ai-sdk/openai/-/openai-3.0.48.tgz#38d4690648929703b78672add7e3e21628715d57"
|
resolved "https://registry.npmmirror.com/@ai-sdk/openai/-/openai-3.0.49.tgz#88d7de4cf4d42b3e541645ca1338fee41ba58951"
|
||||||
integrity sha512-ALmj/53EXpcRqMbGpPJPP4UOSWw0q4VGpnDo7YctvsynjkrKDmoneDG/1a7VQnSPYHnJp6tTRMf5ZdxZ5whulg==
|
integrity sha512-U2f0pCyNn/jQH3wjgxr8o9VvCkuDFTtXbIhbFFtgXqCzMbed6rBnvzQcAMEK0/Pa44byL9zfcvCOFOflvkRA8w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ai-sdk/provider" "3.0.8"
|
"@ai-sdk/provider" "3.0.8"
|
||||||
"@ai-sdk/provider-utils" "4.0.21"
|
"@ai-sdk/provider-utils" "4.0.21"
|
||||||
@ -145,9 +145,9 @@
|
|||||||
json-schema "^0.4.0"
|
json-schema "^0.4.0"
|
||||||
|
|
||||||
"@ai-sdk/xai@^3.0.47":
|
"@ai-sdk/xai@^3.0.47":
|
||||||
version "3.0.74"
|
version "3.0.75"
|
||||||
resolved "https://registry.npmmirror.com/@ai-sdk/xai/-/xai-3.0.74.tgz#5afe79fc2c97f4920a17b83d2163aee2ea93c4ee"
|
resolved "https://registry.npmmirror.com/@ai-sdk/xai/-/xai-3.0.75.tgz#f5986414ace266f4ac94137d4e2740fe4abf589a"
|
||||||
integrity sha512-HDDLsT+QrzE3c2QZLRV/HKAwMtXDb0PMDdk1PYUXLJ3r9Qv76zGKGyvJLX7Pu6c8TOHD1mwLrOVYrsTpC/eTMw==
|
integrity sha512-V8UKK4fNpI9cnrtsZBvUp9O9J6Y9fTKBRoSLyEaNGPirACewixmLDbXsSgAeownPVWiWpK34bFysd+XouI5Ywg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ai-sdk/openai-compatible" "2.0.37"
|
"@ai-sdk/openai-compatible" "2.0.37"
|
||||||
"@ai-sdk/provider" "3.0.8"
|
"@ai-sdk/provider" "3.0.8"
|
||||||
@ -1410,7 +1410,7 @@ brace-expansion@^2.0.1, brace-expansion@^2.0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
balanced-match "^1.0.0"
|
balanced-match "^1.0.0"
|
||||||
|
|
||||||
brace-expansion@^5.0.2:
|
brace-expansion@^5.0.5:
|
||||||
version "5.0.5"
|
version "5.0.5"
|
||||||
resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-5.0.5.tgz#dcc3a37116b79f3e1b46db994ced5d570e930fdb"
|
resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-5.0.5.tgz#dcc3a37116b79f3e1b46db994ced5d570e930fdb"
|
||||||
integrity sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==
|
integrity sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==
|
||||||
@ -3212,9 +3212,9 @@ keyv@^4.0.0:
|
|||||||
json-buffer "3.0.1"
|
json-buffer "3.0.1"
|
||||||
|
|
||||||
knex@^3.1.0, knex@^3.2.5:
|
knex@^3.1.0, knex@^3.2.5:
|
||||||
version "3.2.7"
|
version "3.2.8"
|
||||||
resolved "https://registry.npmmirror.com/knex/-/knex-3.2.7.tgz#53bc16470217f12fef516a7a649794a405d3473d"
|
resolved "https://registry.npmmirror.com/knex/-/knex-3.2.8.tgz#1bfb9caa8419db2c65512259a83a7896912db42e"
|
||||||
integrity sha512-VxdDE72x7Tc08E5yCu8HqYoeOm0HOjAraOtYiGSAUJTYkydwfSGBOpQqYHrzM5vjLNzw2JDL2vDH8m7DjIjtgA==
|
integrity sha512-ElXXxu9Nq+5hWYdBUddYIWIT5yKKs5KNCsmKGbJSHPyaMpAABp3xs4L55GgdQoAs6QQ7dv72ai3M4pxYQ8utEg==
|
||||||
dependencies:
|
dependencies:
|
||||||
colorette "2.0.19"
|
colorette "2.0.19"
|
||||||
commander "^10.0.0"
|
commander "^10.0.0"
|
||||||
@ -3493,11 +3493,11 @@ mimic-response@^3.1.0:
|
|||||||
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
|
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
|
||||||
|
|
||||||
minimatch@^10.0.3, minimatch@^10.2.1, minimatch@^10.2.2:
|
minimatch@^10.0.3, minimatch@^10.2.1, minimatch@^10.2.2:
|
||||||
version "10.2.4"
|
version "10.2.5"
|
||||||
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-10.2.4.tgz#465b3accbd0218b8281f5301e27cedc697f96fde"
|
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1"
|
||||||
integrity sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==
|
integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==
|
||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion "^5.0.2"
|
brace-expansion "^5.0.5"
|
||||||
|
|
||||||
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1:
|
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1:
|
||||||
version "3.1.5"
|
version "3.1.5"
|
||||||
@ -4083,9 +4083,9 @@ path-scurry@^2.0.2:
|
|||||||
minipass "^7.1.2"
|
minipass "^7.1.2"
|
||||||
|
|
||||||
path-to-regexp@^8.0.0:
|
path-to-regexp@^8.0.0:
|
||||||
version "8.4.0"
|
version "8.4.1"
|
||||||
resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-8.4.0.tgz#8e98fcd94826aff01a90c544ef74ffbaca3a78ed"
|
resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-8.4.1.tgz#1dbe9c340367a44340e5bc114f515b56c7210f19"
|
||||||
integrity sha512-PuseHIvAnz3bjrM2rGJtSgo1zjgxapTLZ7x2pjhzWwlp4SJQgK3f3iZIQwkpEnBaKz6seKBADpM4B4ySkuYypg==
|
integrity sha512-fvU78fIjZ+SBM9YwCknCvKOUKkLVqtWDVctl0s7xIqfmfb38t2TT4ZU2gHm+Z8xGwgW+QWEU3oQSAzIbo89Ggw==
|
||||||
|
|
||||||
pe-library@^0.4.1:
|
pe-library@^0.4.1:
|
||||||
version "0.4.1"
|
version "0.4.1"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user