Merge branch 'develop'
# Conflicts: # src/routes/production/exportImage.ts
This commit is contained in:
commit
f73fc00159
@ -43,6 +43,7 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
|||||||
table.integer("createTime");
|
table.integer("createTime");
|
||||||
table.integer("userId");
|
table.integer("userId");
|
||||||
table.primary(["id"]);
|
table.primary(["id"]);
|
||||||
|
table.unique(["id"]);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
//风格表
|
//风格表
|
||||||
|
|||||||
500
src/router.ts
500
src/router.ts
@ -1,4 +1,4 @@
|
|||||||
// @routes-hash 3cbcda6d972e36e9b07574fae186340d
|
// @routes-hash b30811db41d0eeddfa32d16c9b5856b9
|
||||||
import { Express } from "express";
|
import { Express } from "express";
|
||||||
|
|
||||||
import route1 from "./routes/agents/clearMemory";
|
import route1 from "./routes/agents/clearMemory";
|
||||||
@ -11,130 +11,131 @@ import route7 from "./routes/assets/addAssets";
|
|||||||
import route8 from "./routes/assets/batchDelete";
|
import route8 from "./routes/assets/batchDelete";
|
||||||
import route9 from "./routes/assets/batchGenerationData";
|
import route9 from "./routes/assets/batchGenerationData";
|
||||||
import route10 from "./routes/assets/delAssets";
|
import route10 from "./routes/assets/delAssets";
|
||||||
import route11 from "./routes/assets/getAssetsApi";
|
import route11 from "./routes/assets/delImage";
|
||||||
import route12 from "./routes/assets/getImage";
|
import route12 from "./routes/assets/getAssetsApi";
|
||||||
import route13 from "./routes/assets/getMaterialData";
|
import route13 from "./routes/assets/getImage";
|
||||||
import route14 from "./routes/assets/pollingImageAssets";
|
import route14 from "./routes/assets/getMaterialData";
|
||||||
import route15 from "./routes/assets/pollingPromptAssets";
|
import route15 from "./routes/assets/pollingImageAssets";
|
||||||
import route16 from "./routes/assets/saveAssets";
|
import route16 from "./routes/assets/pollingPromptAssets";
|
||||||
import route17 from "./routes/assets/updateAssets";
|
import route17 from "./routes/assets/saveAssets";
|
||||||
import route18 from "./routes/assets/uploadClip";
|
import route18 from "./routes/assets/updateAssets";
|
||||||
import route19 from "./routes/assetsGenerate/batchGenerateImageAssets";
|
import route19 from "./routes/assets/uploadClip";
|
||||||
import route20 from "./routes/assetsGenerate/batchPolishAssetsPrompt";
|
import route20 from "./routes/assetsGenerate/batchGenerateImageAssets";
|
||||||
import route21 from "./routes/assetsGenerate/generateAssets";
|
import route21 from "./routes/assetsGenerate/batchPolishAssetsPrompt";
|
||||||
import route22 from "./routes/assetsGenerate/polishAssetsPrompt";
|
import route22 from "./routes/assetsGenerate/generateAssets";
|
||||||
import route23 from "./routes/cornerScape/getAllAssets";
|
import route23 from "./routes/assetsGenerate/polishAssetsPrompt";
|
||||||
import route24 from "./routes/general/generalStatistics";
|
import route24 from "./routes/cornerScape/getAllAssets";
|
||||||
import route25 from "./routes/general/getSingleProject";
|
import route25 from "./routes/general/generalStatistics";
|
||||||
import route26 from "./routes/general/updateProject";
|
import route26 from "./routes/general/getSingleProject";
|
||||||
import route27 from "./routes/login/login";
|
import route27 from "./routes/general/updateProject";
|
||||||
import route28 from "./routes/migrate/migrateData";
|
import route28 from "./routes/login/login";
|
||||||
import route29 from "./routes/modelSelect/getModelDetail";
|
import route29 from "./routes/migrate/migrateData";
|
||||||
import route30 from "./routes/modelSelect/getModelList";
|
import route30 from "./routes/modelSelect/getModelDetail";
|
||||||
import route31 from "./routes/novel/addNovel";
|
import route31 from "./routes/modelSelect/getModelList";
|
||||||
import route32 from "./routes/novel/batchDeleteNovel";
|
import route32 from "./routes/novel/addNovel";
|
||||||
import route33 from "./routes/novel/delNovel";
|
import route33 from "./routes/novel/batchDeleteNovel";
|
||||||
import route34 from "./routes/novel/event/batchDeleteEvent";
|
import route34 from "./routes/novel/delNovel";
|
||||||
import route35 from "./routes/novel/event/deletEvent";
|
import route35 from "./routes/novel/event/batchDeleteEvent";
|
||||||
import route36 from "./routes/novel/event/generateEvents";
|
import route36 from "./routes/novel/event/deletEvent";
|
||||||
import route37 from "./routes/novel/event/getEvent";
|
import route37 from "./routes/novel/event/generateEvents";
|
||||||
import route38 from "./routes/novel/getNovel";
|
import route38 from "./routes/novel/event/getEvent";
|
||||||
import route39 from "./routes/novel/getNovelData";
|
import route39 from "./routes/novel/getNovel";
|
||||||
import route40 from "./routes/novel/getNovelEventState";
|
import route40 from "./routes/novel/getNovelData";
|
||||||
import route41 from "./routes/novel/getNovelIndex";
|
import route41 from "./routes/novel/getNovelEventState";
|
||||||
import route42 from "./routes/novel/updateNovel";
|
import route42 from "./routes/novel/getNovelIndex";
|
||||||
import route43 from "./routes/other/deleteAllData";
|
import route43 from "./routes/novel/updateNovel";
|
||||||
import route44 from "./routes/other/getVersion";
|
import route44 from "./routes/other/deleteAllData";
|
||||||
import route45 from "./routes/production/assets/batchGenerateAssetsImage";
|
import route45 from "./routes/other/getVersion";
|
||||||
import route46 from "./routes/production/assets/deleteAssetsDireve";
|
import route46 from "./routes/production/assets/batchGenerateAssetsImage";
|
||||||
import route47 from "./routes/production/assets/getAssetsData";
|
import route47 from "./routes/production/assets/deleteAssetsDireve";
|
||||||
import route48 from "./routes/production/assets/pollingImage";
|
import route48 from "./routes/production/assets/getAssetsData";
|
||||||
import route49 from "./routes/production/assets/updateAssetsUrl";
|
import route49 from "./routes/production/assets/pollingImage";
|
||||||
import route50 from "./routes/production/editImage/generateFlowImage";
|
import route50 from "./routes/production/assets/updateAssetsUrl";
|
||||||
import route51 from "./routes/production/editImage/getImageDefaultModle";
|
import route51 from "./routes/production/editImage/generateFlowImage";
|
||||||
import route52 from "./routes/production/editImage/getImageFlow";
|
import route52 from "./routes/production/editImage/getImageDefaultModle";
|
||||||
import route53 from "./routes/production/editImage/saveImageFlow";
|
import route53 from "./routes/production/editImage/getImageFlow";
|
||||||
import route54 from "./routes/production/editImage/updateImageFlow";
|
import route54 from "./routes/production/editImage/saveImageFlow";
|
||||||
import route55 from "./routes/production/exportImage";
|
import route55 from "./routes/production/editImage/updateImageFlow";
|
||||||
import route56 from "./routes/production/getFlowData";
|
import route56 from "./routes/production/exportImage";
|
||||||
import route57 from "./routes/production/getProductionData";
|
import route57 from "./routes/production/getFlowData";
|
||||||
import route58 from "./routes/production/getStoryboardData";
|
import route58 from "./routes/production/getProductionData";
|
||||||
import route59 from "./routes/production/saveFlowData";
|
import route59 from "./routes/production/getStoryboardData";
|
||||||
import route60 from "./routes/production/storyboard/addStoryboard";
|
import route60 from "./routes/production/saveFlowData";
|
||||||
import route61 from "./routes/production/storyboard/batchAddStoryboardInfo";
|
import route61 from "./routes/production/storyboard/addStoryboard";
|
||||||
import route62 from "./routes/production/storyboard/batchGenerateImage";
|
import route62 from "./routes/production/storyboard/batchAddStoryboardInfo";
|
||||||
import route63 from "./routes/production/storyboard/downPreviewImage";
|
import route63 from "./routes/production/storyboard/batchGenerateImage";
|
||||||
import route64 from "./routes/production/storyboard/editStoryboardInfo";
|
import route64 from "./routes/production/storyboard/downPreviewImage";
|
||||||
import route65 from "./routes/production/storyboard/getStoryboardData";
|
import route65 from "./routes/production/storyboard/editStoryboardInfo";
|
||||||
import route66 from "./routes/production/storyboard/pollingImage";
|
import route66 from "./routes/production/storyboard/getStoryboardData";
|
||||||
import route67 from "./routes/production/storyboard/previewImage";
|
import route67 from "./routes/production/storyboard/pollingImage";
|
||||||
import route68 from "./routes/production/storyboard/removeFrame";
|
import route68 from "./routes/production/storyboard/previewImage";
|
||||||
import route69 from "./routes/production/storyboard/updateStoryboardUrl";
|
import route69 from "./routes/production/storyboard/removeFrame";
|
||||||
import route70 from "./routes/production/workbench/addTrack";
|
import route70 from "./routes/production/storyboard/updateStoryboardUrl";
|
||||||
import route71 from "./routes/production/workbench/deleteTrack";
|
import route71 from "./routes/production/workbench/addTrack";
|
||||||
import route72 from "./routes/production/workbench/delVideo";
|
import route72 from "./routes/production/workbench/deleteTrack";
|
||||||
import route73 from "./routes/production/workbench/generateVideo";
|
import route73 from "./routes/production/workbench/delVideo";
|
||||||
import route74 from "./routes/production/workbench/generateVideoPrompt";
|
import route74 from "./routes/production/workbench/generateVideo";
|
||||||
import route75 from "./routes/production/workbench/getGenerateData";
|
import route75 from "./routes/production/workbench/generateVideoPrompt";
|
||||||
import route76 from "./routes/production/workbench/getVideoList";
|
import route76 from "./routes/production/workbench/getGenerateData";
|
||||||
import route77 from "./routes/production/workbench/getVideoModelDetail";
|
import route77 from "./routes/production/workbench/getVideoList";
|
||||||
import route78 from "./routes/production/workbench/selectVideo";
|
import route78 from "./routes/production/workbench/getVideoModelDetail";
|
||||||
import route79 from "./routes/project/addDirectorManual";
|
import route79 from "./routes/production/workbench/selectVideo";
|
||||||
import route80 from "./routes/project/addProject";
|
import route80 from "./routes/project/addDirectorManual";
|
||||||
import route81 from "./routes/project/addVisualManual";
|
import route81 from "./routes/project/addProject";
|
||||||
import route82 from "./routes/project/deleteDirectorManual";
|
import route82 from "./routes/project/addVisualManual";
|
||||||
import route83 from "./routes/project/deleteVisualManual";
|
import route83 from "./routes/project/deleteDirectorManual";
|
||||||
import route84 from "./routes/project/delProject";
|
import route84 from "./routes/project/deleteVisualManual";
|
||||||
import route85 from "./routes/project/editDirectorlManual";
|
import route85 from "./routes/project/delProject";
|
||||||
import route86 from "./routes/project/editProject";
|
import route86 from "./routes/project/editDirectorlManual";
|
||||||
import route87 from "./routes/project/editVisualManual";
|
import route87 from "./routes/project/editProject";
|
||||||
import route88 from "./routes/project/getProject";
|
import route88 from "./routes/project/editVisualManual";
|
||||||
import route89 from "./routes/project/getVisualManual";
|
import route89 from "./routes/project/getProject";
|
||||||
import route90 from "./routes/project/queryDirectorManual";
|
import route90 from "./routes/project/getVisualManual";
|
||||||
import route91 from "./routes/project/visualManual";
|
import route91 from "./routes/project/queryDirectorManual";
|
||||||
import route92 from "./routes/script/addScript";
|
import route92 from "./routes/project/visualManual";
|
||||||
import route93 from "./routes/script/delScript";
|
import route93 from "./routes/script/addScript";
|
||||||
import route94 from "./routes/script/exportScript";
|
import route94 from "./routes/script/delScript";
|
||||||
import route95 from "./routes/script/extractAssets";
|
import route95 from "./routes/script/exportScript";
|
||||||
import route96 from "./routes/script/getScrptApi";
|
import route96 from "./routes/script/extractAssets";
|
||||||
import route97 from "./routes/script/pollScriptAssets";
|
import route97 from "./routes/script/getScrptApi";
|
||||||
import route98 from "./routes/script/updateScript";
|
import route98 from "./routes/script/pollScriptAssets";
|
||||||
import route99 from "./routes/scriptAgent/getPlanData";
|
import route99 from "./routes/script/updateScript";
|
||||||
import route100 from "./routes/scriptAgent/setPlanData";
|
import route100 from "./routes/scriptAgent/getPlanData";
|
||||||
import route101 from "./routes/scriptAgent/updateData";
|
import route101 from "./routes/scriptAgent/setPlanData";
|
||||||
import route102 from "./routes/setting/about/checkUpdate";
|
import route102 from "./routes/scriptAgent/updateData";
|
||||||
import route103 from "./routes/setting/about/downloadApp";
|
import route103 from "./routes/setting/about/checkUpdate";
|
||||||
import route104 from "./routes/setting/agentDeploy/agentSetKey";
|
import route104 from "./routes/setting/about/downloadApp";
|
||||||
import route105 from "./routes/setting/agentDeploy/deployAgentModel";
|
import route105 from "./routes/setting/agentDeploy/agentSetKey";
|
||||||
import route106 from "./routes/setting/agentDeploy/getAgentDeploy";
|
import route106 from "./routes/setting/agentDeploy/deployAgentModel";
|
||||||
import route107 from "./routes/setting/dbConfig/clearData";
|
import route107 from "./routes/setting/agentDeploy/getAgentDeploy";
|
||||||
import route108 from "./routes/setting/dev/getSwitchAiDevTool";
|
import route108 from "./routes/setting/dbConfig/clearData";
|
||||||
import route109 from "./routes/setting/dev/updateSwitchAiDevTool";
|
import route109 from "./routes/setting/dev/getSwitchAiDevTool";
|
||||||
import route110 from "./routes/setting/fileManagement/openFolder";
|
import route110 from "./routes/setting/dev/updateSwitchAiDevTool";
|
||||||
import route111 from "./routes/setting/getTextModel";
|
import route111 from "./routes/setting/fileManagement/openFolder";
|
||||||
import route112 from "./routes/setting/loginConfig/getUser";
|
import route112 from "./routes/setting/getTextModel";
|
||||||
import route113 from "./routes/setting/loginConfig/updateUserPwd";
|
import route113 from "./routes/setting/loginConfig/getUser";
|
||||||
import route114 from "./routes/setting/memoryConfig/delAllMemory";
|
import route114 from "./routes/setting/loginConfig/updateUserPwd";
|
||||||
import route115 from "./routes/setting/memoryConfig/getMemory";
|
import route115 from "./routes/setting/memoryConfig/delAllMemory";
|
||||||
import route116 from "./routes/setting/memoryConfig/sureMemory";
|
import route116 from "./routes/setting/memoryConfig/getMemory";
|
||||||
import route117 from "./routes/setting/promptManage/getPrompt";
|
import route117 from "./routes/setting/memoryConfig/sureMemory";
|
||||||
import route118 from "./routes/setting/promptManage/updatePrompt";
|
import route118 from "./routes/setting/promptManage/getPrompt";
|
||||||
import route119 from "./routes/setting/skillManagement/getSkillContent";
|
import route119 from "./routes/setting/promptManage/updatePrompt";
|
||||||
import route120 from "./routes/setting/skillManagement/getSkillList";
|
import route120 from "./routes/setting/skillManagement/getSkillContent";
|
||||||
import route121 from "./routes/setting/skillManagement/saveSkillContent";
|
import route121 from "./routes/setting/skillManagement/getSkillList";
|
||||||
import route122 from "./routes/setting/vendorConfig/addVendor";
|
import route122 from "./routes/setting/skillManagement/saveSkillContent";
|
||||||
import route123 from "./routes/setting/vendorConfig/deleteVendor";
|
import route123 from "./routes/setting/vendorConfig/addVendor";
|
||||||
import route124 from "./routes/setting/vendorConfig/enableVendor";
|
import route124 from "./routes/setting/vendorConfig/deleteVendor";
|
||||||
import route125 from "./routes/setting/vendorConfig/getCodeByLink";
|
import route125 from "./routes/setting/vendorConfig/enableVendor";
|
||||||
import route126 from "./routes/setting/vendorConfig/getVendorList";
|
import route126 from "./routes/setting/vendorConfig/getCodeByLink";
|
||||||
import route127 from "./routes/setting/vendorConfig/modelTest";
|
import route127 from "./routes/setting/vendorConfig/getVendorList";
|
||||||
import route128 from "./routes/setting/vendorConfig/updateCode";
|
import route128 from "./routes/setting/vendorConfig/modelTest";
|
||||||
import route129 from "./routes/setting/vendorConfig/updateVendor";
|
import route129 from "./routes/setting/vendorConfig/updateCode";
|
||||||
import route130 from "./routes/task/getProject";
|
import route130 from "./routes/setting/vendorConfig/updateVendor";
|
||||||
import route131 from "./routes/task/getTaskApi";
|
import route131 from "./routes/task/getProject";
|
||||||
import route132 from "./routes/task/getTaskCategories";
|
import route132 from "./routes/task/getTaskApi";
|
||||||
import route133 from "./routes/task/taskDetails";
|
import route133 from "./routes/task/getTaskCategories";
|
||||||
import route134 from "./routes/test/test";
|
import route134 from "./routes/task/taskDetails";
|
||||||
|
import route135 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);
|
||||||
@ -147,128 +148,129 @@ export default async (app: Express) => {
|
|||||||
app.use("/api/assets/batchDelete", route8);
|
app.use("/api/assets/batchDelete", route8);
|
||||||
app.use("/api/assets/batchGenerationData", route9);
|
app.use("/api/assets/batchGenerationData", route9);
|
||||||
app.use("/api/assets/delAssets", route10);
|
app.use("/api/assets/delAssets", route10);
|
||||||
app.use("/api/assets/getAssetsApi", route11);
|
app.use("/api/assets/delImage", route11);
|
||||||
app.use("/api/assets/getImage", route12);
|
app.use("/api/assets/getAssetsApi", route12);
|
||||||
app.use("/api/assets/getMaterialData", route13);
|
app.use("/api/assets/getImage", route13);
|
||||||
app.use("/api/assets/pollingImageAssets", route14);
|
app.use("/api/assets/getMaterialData", route14);
|
||||||
app.use("/api/assets/pollingPromptAssets", route15);
|
app.use("/api/assets/pollingImageAssets", route15);
|
||||||
app.use("/api/assets/saveAssets", route16);
|
app.use("/api/assets/pollingPromptAssets", route16);
|
||||||
app.use("/api/assets/updateAssets", route17);
|
app.use("/api/assets/saveAssets", route17);
|
||||||
app.use("/api/assets/uploadClip", route18);
|
app.use("/api/assets/updateAssets", route18);
|
||||||
app.use("/api/assetsGenerate/batchGenerateImageAssets", route19);
|
app.use("/api/assets/uploadClip", route19);
|
||||||
app.use("/api/assetsGenerate/batchPolishAssetsPrompt", route20);
|
app.use("/api/assetsGenerate/batchGenerateImageAssets", route20);
|
||||||
app.use("/api/assetsGenerate/generateAssets", route21);
|
app.use("/api/assetsGenerate/batchPolishAssetsPrompt", route21);
|
||||||
app.use("/api/assetsGenerate/polishAssetsPrompt", route22);
|
app.use("/api/assetsGenerate/generateAssets", route22);
|
||||||
app.use("/api/cornerScape/getAllAssets", route23);
|
app.use("/api/assetsGenerate/polishAssetsPrompt", route23);
|
||||||
app.use("/api/general/generalStatistics", route24);
|
app.use("/api/cornerScape/getAllAssets", route24);
|
||||||
app.use("/api/general/getSingleProject", route25);
|
app.use("/api/general/generalStatistics", route25);
|
||||||
app.use("/api/general/updateProject", route26);
|
app.use("/api/general/getSingleProject", route26);
|
||||||
app.use("/api/login/login", route27);
|
app.use("/api/general/updateProject", route27);
|
||||||
app.use("/api/migrate/migrateData", route28);
|
app.use("/api/login/login", route28);
|
||||||
app.use("/api/modelSelect/getModelDetail", route29);
|
app.use("/api/migrate/migrateData", route29);
|
||||||
app.use("/api/modelSelect/getModelList", route30);
|
app.use("/api/modelSelect/getModelDetail", route30);
|
||||||
app.use("/api/novel/addNovel", route31);
|
app.use("/api/modelSelect/getModelList", route31);
|
||||||
app.use("/api/novel/batchDeleteNovel", route32);
|
app.use("/api/novel/addNovel", route32);
|
||||||
app.use("/api/novel/delNovel", route33);
|
app.use("/api/novel/batchDeleteNovel", route33);
|
||||||
app.use("/api/novel/event/batchDeleteEvent", route34);
|
app.use("/api/novel/delNovel", route34);
|
||||||
app.use("/api/novel/event/deletEvent", route35);
|
app.use("/api/novel/event/batchDeleteEvent", route35);
|
||||||
app.use("/api/novel/event/generateEvents", route36);
|
app.use("/api/novel/event/deletEvent", route36);
|
||||||
app.use("/api/novel/event/getEvent", route37);
|
app.use("/api/novel/event/generateEvents", route37);
|
||||||
app.use("/api/novel/getNovel", route38);
|
app.use("/api/novel/event/getEvent", route38);
|
||||||
app.use("/api/novel/getNovelData", route39);
|
app.use("/api/novel/getNovel", route39);
|
||||||
app.use("/api/novel/getNovelEventState", route40);
|
app.use("/api/novel/getNovelData", route40);
|
||||||
app.use("/api/novel/getNovelIndex", route41);
|
app.use("/api/novel/getNovelEventState", route41);
|
||||||
app.use("/api/novel/updateNovel", route42);
|
app.use("/api/novel/getNovelIndex", route42);
|
||||||
app.use("/api/other/deleteAllData", route43);
|
app.use("/api/novel/updateNovel", route43);
|
||||||
app.use("/api/other/getVersion", route44);
|
app.use("/api/other/deleteAllData", route44);
|
||||||
app.use("/api/production/assets/batchGenerateAssetsImage", route45);
|
app.use("/api/other/getVersion", route45);
|
||||||
app.use("/api/production/assets/deleteAssetsDireve", route46);
|
app.use("/api/production/assets/batchGenerateAssetsImage", route46);
|
||||||
app.use("/api/production/assets/getAssetsData", route47);
|
app.use("/api/production/assets/deleteAssetsDireve", route47);
|
||||||
app.use("/api/production/assets/pollingImage", route48);
|
app.use("/api/production/assets/getAssetsData", route48);
|
||||||
app.use("/api/production/assets/updateAssetsUrl", route49);
|
app.use("/api/production/assets/pollingImage", route49);
|
||||||
app.use("/api/production/editImage/generateFlowImage", route50);
|
app.use("/api/production/assets/updateAssetsUrl", route50);
|
||||||
app.use("/api/production/editImage/getImageDefaultModle", route51);
|
app.use("/api/production/editImage/generateFlowImage", route51);
|
||||||
app.use("/api/production/editImage/getImageFlow", route52);
|
app.use("/api/production/editImage/getImageDefaultModle", route52);
|
||||||
app.use("/api/production/editImage/saveImageFlow", route53);
|
app.use("/api/production/editImage/getImageFlow", route53);
|
||||||
app.use("/api/production/editImage/updateImageFlow", route54);
|
app.use("/api/production/editImage/saveImageFlow", route54);
|
||||||
app.use("/api/production/exportImage", route55);
|
app.use("/api/production/editImage/updateImageFlow", route55);
|
||||||
app.use("/api/production/getFlowData", route56);
|
app.use("/api/production/exportImage", route56);
|
||||||
app.use("/api/production/getProductionData", route57);
|
app.use("/api/production/getFlowData", route57);
|
||||||
app.use("/api/production/getStoryboardData", route58);
|
app.use("/api/production/getProductionData", route58);
|
||||||
app.use("/api/production/saveFlowData", route59);
|
app.use("/api/production/getStoryboardData", route59);
|
||||||
app.use("/api/production/storyboard/addStoryboard", route60);
|
app.use("/api/production/saveFlowData", route60);
|
||||||
app.use("/api/production/storyboard/batchAddStoryboardInfo", route61);
|
app.use("/api/production/storyboard/addStoryboard", route61);
|
||||||
app.use("/api/production/storyboard/batchGenerateImage", route62);
|
app.use("/api/production/storyboard/batchAddStoryboardInfo", route62);
|
||||||
app.use("/api/production/storyboard/downPreviewImage", route63);
|
app.use("/api/production/storyboard/batchGenerateImage", route63);
|
||||||
app.use("/api/production/storyboard/editStoryboardInfo", route64);
|
app.use("/api/production/storyboard/downPreviewImage", route64);
|
||||||
app.use("/api/production/storyboard/getStoryboardData", route65);
|
app.use("/api/production/storyboard/editStoryboardInfo", route65);
|
||||||
app.use("/api/production/storyboard/pollingImage", route66);
|
app.use("/api/production/storyboard/getStoryboardData", route66);
|
||||||
app.use("/api/production/storyboard/previewImage", route67);
|
app.use("/api/production/storyboard/pollingImage", route67);
|
||||||
app.use("/api/production/storyboard/removeFrame", route68);
|
app.use("/api/production/storyboard/previewImage", route68);
|
||||||
app.use("/api/production/storyboard/updateStoryboardUrl", route69);
|
app.use("/api/production/storyboard/removeFrame", route69);
|
||||||
app.use("/api/production/workbench/addTrack", route70);
|
app.use("/api/production/storyboard/updateStoryboardUrl", route70);
|
||||||
app.use("/api/production/workbench/deleteTrack", route71);
|
app.use("/api/production/workbench/addTrack", route71);
|
||||||
app.use("/api/production/workbench/delVideo", route72);
|
app.use("/api/production/workbench/deleteTrack", route72);
|
||||||
app.use("/api/production/workbench/generateVideo", route73);
|
app.use("/api/production/workbench/delVideo", route73);
|
||||||
app.use("/api/production/workbench/generateVideoPrompt", route74);
|
app.use("/api/production/workbench/generateVideo", route74);
|
||||||
app.use("/api/production/workbench/getGenerateData", route75);
|
app.use("/api/production/workbench/generateVideoPrompt", route75);
|
||||||
app.use("/api/production/workbench/getVideoList", route76);
|
app.use("/api/production/workbench/getGenerateData", route76);
|
||||||
app.use("/api/production/workbench/getVideoModelDetail", route77);
|
app.use("/api/production/workbench/getVideoList", route77);
|
||||||
app.use("/api/production/workbench/selectVideo", route78);
|
app.use("/api/production/workbench/getVideoModelDetail", route78);
|
||||||
app.use("/api/project/addDirectorManual", route79);
|
app.use("/api/production/workbench/selectVideo", route79);
|
||||||
app.use("/api/project/addProject", route80);
|
app.use("/api/project/addDirectorManual", route80);
|
||||||
app.use("/api/project/addVisualManual", route81);
|
app.use("/api/project/addProject", route81);
|
||||||
app.use("/api/project/deleteDirectorManual", route82);
|
app.use("/api/project/addVisualManual", route82);
|
||||||
app.use("/api/project/deleteVisualManual", route83);
|
app.use("/api/project/deleteDirectorManual", route83);
|
||||||
app.use("/api/project/delProject", route84);
|
app.use("/api/project/deleteVisualManual", route84);
|
||||||
app.use("/api/project/editDirectorlManual", route85);
|
app.use("/api/project/delProject", route85);
|
||||||
app.use("/api/project/editProject", route86);
|
app.use("/api/project/editDirectorlManual", route86);
|
||||||
app.use("/api/project/editVisualManual", route87);
|
app.use("/api/project/editProject", route87);
|
||||||
app.use("/api/project/getProject", route88);
|
app.use("/api/project/editVisualManual", route88);
|
||||||
app.use("/api/project/getVisualManual", route89);
|
app.use("/api/project/getProject", route89);
|
||||||
app.use("/api/project/queryDirectorManual", route90);
|
app.use("/api/project/getVisualManual", route90);
|
||||||
app.use("/api/project/visualManual", route91);
|
app.use("/api/project/queryDirectorManual", route91);
|
||||||
app.use("/api/script/addScript", route92);
|
app.use("/api/project/visualManual", route92);
|
||||||
app.use("/api/script/delScript", route93);
|
app.use("/api/script/addScript", route93);
|
||||||
app.use("/api/script/exportScript", route94);
|
app.use("/api/script/delScript", route94);
|
||||||
app.use("/api/script/extractAssets", route95);
|
app.use("/api/script/exportScript", route95);
|
||||||
app.use("/api/script/getScrptApi", route96);
|
app.use("/api/script/extractAssets", route96);
|
||||||
app.use("/api/script/pollScriptAssets", route97);
|
app.use("/api/script/getScrptApi", route97);
|
||||||
app.use("/api/script/updateScript", route98);
|
app.use("/api/script/pollScriptAssets", route98);
|
||||||
app.use("/api/scriptAgent/getPlanData", route99);
|
app.use("/api/script/updateScript", route99);
|
||||||
app.use("/api/scriptAgent/setPlanData", route100);
|
app.use("/api/scriptAgent/getPlanData", route100);
|
||||||
app.use("/api/scriptAgent/updateData", route101);
|
app.use("/api/scriptAgent/setPlanData", route101);
|
||||||
app.use("/api/setting/about/checkUpdate", route102);
|
app.use("/api/scriptAgent/updateData", route102);
|
||||||
app.use("/api/setting/about/downloadApp", route103);
|
app.use("/api/setting/about/checkUpdate", route103);
|
||||||
app.use("/api/setting/agentDeploy/agentSetKey", route104);
|
app.use("/api/setting/about/downloadApp", route104);
|
||||||
app.use("/api/setting/agentDeploy/deployAgentModel", route105);
|
app.use("/api/setting/agentDeploy/agentSetKey", route105);
|
||||||
app.use("/api/setting/agentDeploy/getAgentDeploy", route106);
|
app.use("/api/setting/agentDeploy/deployAgentModel", route106);
|
||||||
app.use("/api/setting/dbConfig/clearData", route107);
|
app.use("/api/setting/agentDeploy/getAgentDeploy", route107);
|
||||||
app.use("/api/setting/dev/getSwitchAiDevTool", route108);
|
app.use("/api/setting/dbConfig/clearData", route108);
|
||||||
app.use("/api/setting/dev/updateSwitchAiDevTool", route109);
|
app.use("/api/setting/dev/getSwitchAiDevTool", route109);
|
||||||
app.use("/api/setting/fileManagement/openFolder", route110);
|
app.use("/api/setting/dev/updateSwitchAiDevTool", route110);
|
||||||
app.use("/api/setting/getTextModel", route111);
|
app.use("/api/setting/fileManagement/openFolder", route111);
|
||||||
app.use("/api/setting/loginConfig/getUser", route112);
|
app.use("/api/setting/getTextModel", route112);
|
||||||
app.use("/api/setting/loginConfig/updateUserPwd", route113);
|
app.use("/api/setting/loginConfig/getUser", route113);
|
||||||
app.use("/api/setting/memoryConfig/delAllMemory", route114);
|
app.use("/api/setting/loginConfig/updateUserPwd", route114);
|
||||||
app.use("/api/setting/memoryConfig/getMemory", route115);
|
app.use("/api/setting/memoryConfig/delAllMemory", route115);
|
||||||
app.use("/api/setting/memoryConfig/sureMemory", route116);
|
app.use("/api/setting/memoryConfig/getMemory", route116);
|
||||||
app.use("/api/setting/promptManage/getPrompt", route117);
|
app.use("/api/setting/memoryConfig/sureMemory", route117);
|
||||||
app.use("/api/setting/promptManage/updatePrompt", route118);
|
app.use("/api/setting/promptManage/getPrompt", route118);
|
||||||
app.use("/api/setting/skillManagement/getSkillContent", route119);
|
app.use("/api/setting/promptManage/updatePrompt", route119);
|
||||||
app.use("/api/setting/skillManagement/getSkillList", route120);
|
app.use("/api/setting/skillManagement/getSkillContent", route120);
|
||||||
app.use("/api/setting/skillManagement/saveSkillContent", route121);
|
app.use("/api/setting/skillManagement/getSkillList", route121);
|
||||||
app.use("/api/setting/vendorConfig/addVendor", route122);
|
app.use("/api/setting/skillManagement/saveSkillContent", route122);
|
||||||
app.use("/api/setting/vendorConfig/deleteVendor", route123);
|
app.use("/api/setting/vendorConfig/addVendor", route123);
|
||||||
app.use("/api/setting/vendorConfig/enableVendor", route124);
|
app.use("/api/setting/vendorConfig/deleteVendor", route124);
|
||||||
app.use("/api/setting/vendorConfig/getCodeByLink", route125);
|
app.use("/api/setting/vendorConfig/enableVendor", route125);
|
||||||
app.use("/api/setting/vendorConfig/getVendorList", route126);
|
app.use("/api/setting/vendorConfig/getCodeByLink", route126);
|
||||||
app.use("/api/setting/vendorConfig/modelTest", route127);
|
app.use("/api/setting/vendorConfig/getVendorList", route127);
|
||||||
app.use("/api/setting/vendorConfig/updateCode", route128);
|
app.use("/api/setting/vendorConfig/modelTest", route128);
|
||||||
app.use("/api/setting/vendorConfig/updateVendor", route129);
|
app.use("/api/setting/vendorConfig/updateCode", route129);
|
||||||
app.use("/api/task/getProject", route130);
|
app.use("/api/setting/vendorConfig/updateVendor", route130);
|
||||||
app.use("/api/task/getTaskApi", route131);
|
app.use("/api/task/getProject", route131);
|
||||||
app.use("/api/task/getTaskCategories", route132);
|
app.use("/api/task/getTaskApi", route132);
|
||||||
app.use("/api/task/taskDetails", route133);
|
app.use("/api/task/getTaskCategories", route133);
|
||||||
app.use("/api/test/test", route134);
|
app.use("/api/task/taskDetails", route134);
|
||||||
|
app.use("/api/test/test", route135);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,7 +13,19 @@ export default router.post(
|
|||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
const { id } = req.body;
|
const { id } = req.body;
|
||||||
const assetsData = await u.db("o_image").where("assetsId", id);
|
const assetsData = await u.db("o_image").where("assetsId", id);
|
||||||
await Promise.all(assetsData.map((i) => i.filePath && u.oss.deleteFile(i.filePath)));
|
await Promise.all(
|
||||||
|
assetsData.map((i) =>
|
||||||
|
i.filePath
|
||||||
|
? u.oss.deleteFile(i.filePath).catch((e) => {
|
||||||
|
if (e?.code !== "ENOENT") throw e;
|
||||||
|
})
|
||||||
|
: Promise.resolve(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
const imageIds = assetsData.map((i) => i.id).filter(Boolean);
|
||||||
|
if (imageIds.length > 0) {
|
||||||
|
await u.db("o_assets").whereIn("imageId", imageIds).update({ imageId: null });
|
||||||
|
}
|
||||||
await u.db("o_image").where({ assetsId: id }).delete();
|
await u.db("o_image").where({ assetsId: id }).delete();
|
||||||
await u.db("o_assets").where({ id }).delete();
|
await u.db("o_assets").where({ id }).delete();
|
||||||
res.status(200).send(success({ message: "删除资产成功" }));
|
res.status(200).send(success({ message: "删除资产成功" }));
|
||||||
|
|||||||
23
src/routes/assets/delImage.ts
Normal file
23
src/routes/assets/delImage.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
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();
|
||||||
|
|
||||||
|
export default router.post(
|
||||||
|
"/",
|
||||||
|
validateFields({
|
||||||
|
id: z.number(),
|
||||||
|
}),
|
||||||
|
async (req, res) => {
|
||||||
|
const { id } = req.body;
|
||||||
|
await u.db("o_assets").where({ imageId: id }).update({
|
||||||
|
imageId: null,
|
||||||
|
});
|
||||||
|
await u.db("o_image").where({ id: id }).delete();
|
||||||
|
const assetsData = await u.db("o_image").where("id", id);
|
||||||
|
await Promise.all(assetsData.map((i) => i.filePath && u.oss.deleteFile(i.filePath)));
|
||||||
|
res.status(200).send(success({ message: "资产图片删除成功" }));
|
||||||
|
},
|
||||||
|
);
|
||||||
@ -17,7 +17,7 @@ export default router.post(
|
|||||||
.leftJoin("o_image", "o_assets.imageId", "o_image.id")
|
.leftJoin("o_image", "o_assets.imageId", "o_image.id")
|
||||||
.whereIn("o_assets.id", ids)
|
.whereIn("o_assets.id", ids)
|
||||||
.whereNot("o_image.state", "生成中")
|
.whereNot("o_image.state", "生成中")
|
||||||
.select("o_image.state", "o_assets.id", "o_image.filePath", "o_image.errorReason");
|
.select("o_image.state", "o_assets.id", "o_image.filePath", "o_image.errorReason","o_assets.prompt");
|
||||||
const result = await Promise.all(
|
const result = await Promise.all(
|
||||||
data.map(async (item: any) => ({
|
data.map(async (item: any) => ({
|
||||||
...item,
|
...item,
|
||||||
|
|||||||
@ -111,6 +111,7 @@ export default router.post(
|
|||||||
.db("o_storyboard")
|
.db("o_storyboard")
|
||||||
.where("id", item.id)
|
.where("id", item.id)
|
||||||
.update({
|
.update({
|
||||||
|
filePath: "",
|
||||||
reason: u.error(e).message,
|
reason: u.error(e).message,
|
||||||
state: "生成失败",
|
state: "生成失败",
|
||||||
});
|
});
|
||||||
|
|||||||
@ -92,22 +92,26 @@ export default router.post(
|
|||||||
)},
|
)},
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const { text } = await u.Ai.Text("universalAi").invoke({
|
try {
|
||||||
system: videoPrompt?.data!,
|
const { text } = await u.Ai.Text("universalAi").invoke({
|
||||||
messages: [
|
system: videoPrompt?.data!,
|
||||||
{
|
messages: [
|
||||||
role: "assistant",
|
{
|
||||||
content: `${visualManual}`,
|
role: "assistant",
|
||||||
},
|
content: `${visualManual}`,
|
||||||
{
|
},
|
||||||
role: "user",
|
{
|
||||||
content: content,
|
role: "user",
|
||||||
},
|
content: content,
|
||||||
],
|
},
|
||||||
});
|
],
|
||||||
await u.db("o_videoTrack").where({ id: trackId }).update({
|
});
|
||||||
prompt: text,
|
await u.db("o_videoTrack").where({ id: trackId }).update({
|
||||||
});
|
prompt: text,
|
||||||
res.status(200).send(success(text));
|
});
|
||||||
|
res.status(200).send(success(text));
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).send(error);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@ -38,23 +38,18 @@ export default router.post(
|
|||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
const { projectId, scriptId } = req.body;
|
const { projectId, scriptId } = req.body;
|
||||||
const storyboardList = await u.db("o_storyboard").where({ scriptId, projectId }).orderBy("index", "asc");
|
const storyboardList = await u.db("o_storyboard").where({ scriptId, projectId }).orderBy("index", "asc");
|
||||||
|
const trackData = await u.db("o_videoTrack").where({ projectId, scriptId });
|
||||||
const videoList = await u.db("o_video").whereIn(
|
const videoList = await u.db("o_video").whereIn(
|
||||||
"videoTrackId",
|
"videoTrackId",
|
||||||
storyboardList.map((s) => s.trackId),
|
trackData.map((t) => t.id),
|
||||||
);
|
);
|
||||||
const trackData = await u.db("o_videoTrack").whereIn(
|
|
||||||
//@ts-ignore
|
|
||||||
"id",
|
|
||||||
storyboardList.map((s) => s.trackId),
|
|
||||||
);
|
|
||||||
|
|
||||||
const trackList: TrackItem[] = [];
|
const trackList: TrackItem[] = [];
|
||||||
const trackIdMap = [...new Set<number>(storyboardList.map((s) => s.trackId!))];
|
const trackIdMap = [...new Set<number>(trackData.map((t) => t.id!))];
|
||||||
for (const trackId of trackIdMap) {
|
for (const trackId of trackIdMap) {
|
||||||
const item = trackData.find((t) => t.id === trackId);
|
const item = trackData.find((t) => t.id === trackId);
|
||||||
trackList.push({
|
trackList.push({
|
||||||
id: trackId,
|
id: trackId,
|
||||||
duration: item?.duration ?? 0,
|
duration: item?.duration ?? 0,
|
||||||
prompt: item?.prompt || "",
|
prompt: item?.prompt || "",
|
||||||
state: (item?.state as "未生成" | "生成中" | "已完成" | "生成失败") ?? "未生成",
|
state: (item?.state as "未生成" | "生成中" | "已完成" | "生成失败") ?? "未生成",
|
||||||
reason: item?.reason ?? "",
|
reason: item?.reason ?? "",
|
||||||
|
|||||||
@ -41,12 +41,16 @@ type GroupResult = {
|
|||||||
} | null;
|
} | null;
|
||||||
|
|
||||||
/** 将 scriptIds 数组按 groupSize 分组 */
|
/** 将 scriptIds 数组按 groupSize 分组 */
|
||||||
function chunkArray<T>(arr: T[], groupSize: number): T[][] {
|
function chunkArray(arr: number[], groupSize: number): number[][][] {
|
||||||
const chunks: T[][] = [];
|
const chunks: number[][] = [];
|
||||||
for (let i = 0; i < arr.length; i += groupSize) {
|
for (let i = 0; i < arr.length; i += 5) {
|
||||||
chunks.push(arr.slice(i, i + groupSize));
|
chunks.push(arr.slice(i, i + 5));
|
||||||
}
|
}
|
||||||
return chunks;
|
const groupChunks = [];
|
||||||
|
for (let i = 0; i < chunks.length; i += groupSize) {
|
||||||
|
groupChunks.push(chunks.slice(i, i + groupSize));
|
||||||
|
}
|
||||||
|
return groupChunks;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default router.post(
|
export default router.post(
|
||||||
@ -60,7 +64,9 @@ export default router.post(
|
|||||||
const { scriptIds, projectId, groupSize = 5 } = req.body;
|
const { scriptIds, projectId, groupSize = 5 } = req.body;
|
||||||
|
|
||||||
if (!scriptIds.length) return res.status(400).send(error("请先选择剧本"));
|
if (!scriptIds.length) return res.status(400).send(error("请先选择剧本"));
|
||||||
|
console.log("%c Line:67 🍪 scriptIds", "background:#e41a6a", scriptIds);
|
||||||
const scripts = await u.db("o_script").whereIn("id", scriptIds);
|
const scripts = await u.db("o_script").whereIn("id", scriptIds);
|
||||||
|
|
||||||
|
|
||||||
// 构建 scriptId -> script 内容的映射
|
// 构建 scriptId -> script 内容的映射
|
||||||
const scriptMap = new Map(scripts.map((s: o_script) => [s.id, s]));
|
const scriptMap = new Map(scripts.map((s: o_script) => [s.id, s]));
|
||||||
@ -73,7 +79,8 @@ export default router.post(
|
|||||||
let successCount = 0;
|
let successCount = 0;
|
||||||
|
|
||||||
// 将 scriptIds 按 groupSize(默认5)分组,每组一起发给 AI
|
// 将 scriptIds 按 groupSize(默认5)分组,每组一起发给 AI
|
||||||
const scriptGroups = chunkArray(scriptIds, groupSize);
|
const scriptGroups = chunkArray(scriptIds as number[], groupSize);
|
||||||
|
console.log("%c Line:83 🍿 scriptGroups", "background:#f5ce50", scriptGroups);
|
||||||
|
|
||||||
/** 一组剧本提取完成后统一入库并建立关联 */
|
/** 一组剧本提取完成后统一入库并建立关联 */
|
||||||
async function persistGroupResult(result: GroupResult) {
|
async function persistGroupResult(result: GroupResult) {
|
||||||
@ -139,113 +146,107 @@ export default router.post(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
res.send(success("开始提取资产"));
|
res.send(success("开始提取资产"));
|
||||||
// 逐组处理(每组最多 groupSize 集剧本一起发给 AI)
|
|
||||||
for (const group of scriptGroups) {
|
function processGroup(group: number[][][]) {
|
||||||
// 过滤有效剧本
|
group.map(async (itemIds) => {
|
||||||
const validScripts: { id: number; script: o_script }[] = [];
|
const validScripts: { id: number; script: o_script }[] = [];
|
||||||
for (const scriptId of group as number[]) {
|
for (const scriptIds of itemIds as number[][]) {
|
||||||
const script = scriptMap.get(scriptId);
|
for (const scriptId of scriptIds) {
|
||||||
if (!script) {
|
const script = scriptMap.get(scriptId);
|
||||||
errors.push({ scriptId, error: "未找到对应剧本" });
|
if (!script) {
|
||||||
await u.db("o_script").where("id", scriptId).update({ extractState: -1, errorReason: "未找到对应剧本" });
|
errors.push({ scriptId, error: "未找到对应剧本" });
|
||||||
} else {
|
await u.db("o_script").where("id", scriptId).update({ extractState: -1, errorReason: "未找到对应剧本" });
|
||||||
// 查看状态是否为等待提取,仅对等待提取进行生成
|
} else {
|
||||||
const item = await u.db("o_script").where("id", scriptId).select("extractState").first();
|
// 查看状态是否为等待提取,仅对等待提取进行生成
|
||||||
if (item?.extractState == 2) {
|
const item = await u.db("o_script").where("id", scriptId).select("extractState").first();
|
||||||
validScripts.push({ id: scriptId, script });
|
if (item?.extractState == 2) {
|
||||||
|
validScripts.push({ id: scriptId, script });
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
console.log("%c Line:161 🥕 validScripts", "background:#42b983", validScripts);
|
||||||
if (!validScripts.length) continue;
|
|
||||||
const validScriptIds = validScripts.map((v) => v.id);
|
|
||||||
// 修改状态为正在提取中
|
|
||||||
await u.db("o_script").whereIn("id", validScriptIds).update({
|
|
||||||
extractState: 0, // 正在提取
|
|
||||||
});
|
|
||||||
// 查询当前项目已有的资产列表,提供给 AI 参考
|
|
||||||
const existingAssets = await u.db("o_assets").where("projectId", projectId).select("name", "type");
|
|
||||||
const existingAssetsList = existingAssets.map((a) => `${a.name}(${a.type})`).join("、");
|
|
||||||
|
|
||||||
// 拼接多集剧本内容,每集用分隔标记
|
if (!validScripts.length) return;
|
||||||
const scriptsContent = validScripts
|
const validScriptIds = validScripts.map((v) => v.id);
|
||||||
.map(({ id, script }) => `===== 【剧本ID: ${id}】${script.name || ""} =====\n${script.content}`)
|
// 修改状态为正在提取中
|
||||||
.join("\n\n");
|
await u.db("o_script").whereIn("id", validScriptIds).update({
|
||||||
|
extractState: 0, // 正在提取
|
||||||
// 用闭包收集 AI 返回的资产
|
|
||||||
let collectedNew: NewAsset[] = [];
|
|
||||||
let collectedExisting: ExistingAssetRef[] = [];
|
|
||||||
|
|
||||||
const resultTool = tool({
|
|
||||||
description: "返回结果时必须调用这个工具",
|
|
||||||
inputSchema: z.object({
|
|
||||||
newAssets: z
|
|
||||||
.array(NewAssetSchema)
|
|
||||||
.describe("新发现的资产列表(不在已有资产列表中的),需要完整的 prompt、name、desc、type 和使用该资产的 scriptIds"),
|
|
||||||
existingAssetRefs: z
|
|
||||||
.array(ExistingAssetRefSchema)
|
|
||||||
.describe("已有资产的引用列表(在已有资产列表中已存在的),只需给出资产名称和使用该资产的 scriptIds"),
|
|
||||||
}),
|
|
||||||
execute: async ({ newAssets, existingAssetRefs }) => {
|
|
||||||
console.log("[tools] extractAssets result", { newAssets, existingAssetRefs });
|
|
||||||
if (newAssets?.length) collectedNew = newAssets;
|
|
||||||
if (existingAssetRefs?.length) collectedExisting = existingAssetRefs;
|
|
||||||
return "无需回复用户任何内容";
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
try {
|
|
||||||
const data = await u.db("o_prompt").where("type", "scriptAssetExtraction").first("data");
|
|
||||||
const existingHint = existingAssetsList
|
|
||||||
? `\n\n【已有资产列表】:${existingAssetsList}\n对于已有资产,如果在剧本中出现,只需在 existingAssetRefs 中给出资产名称和对应的 scriptIds 数组即可,无需重复生成 desc/type。对于新发现的资产(不在已有列表中),请在 newAssets 中给出完整信息。`
|
|
||||||
: "";
|
|
||||||
|
|
||||||
const output = await u.Ai.Text("universalAi").invoke({
|
|
||||||
messages: [
|
|
||||||
{
|
|
||||||
role: "system",
|
|
||||||
content:
|
|
||||||
data?.data +
|
|
||||||
"\n\n提取剧本中涉及的资产(角色、场景、道具),参考技能 script_assets_extract 规范,结果必须通过 resultTool 工具返回。" +
|
|
||||||
"\n\n注意:本次会同时提供多集剧本,每集剧本以 ===== 【剧本ID: xxx】 ===== 分隔。你需要分析每集剧本使用了哪些资产,并在输出中用 scriptIds 数组标明每个资产在哪些剧本中出现。",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
role: "user",
|
|
||||||
content: `当前已有资产列表:${existingHint}\n\n请根据以下${validScripts.length}集剧本提取对应的剧本资产(角色、场景、道具):\n\n${scriptsContent}`,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
tools: { resultTool },
|
|
||||||
});
|
});
|
||||||
console.log("%c Line:extractAssets 🍧 output", "background:#f5ce50", output.text);
|
// 查询当前项目已有的资产列表,提供给 AI 参考
|
||||||
} catch (e: any) {
|
const existingAssets = await u.db("o_assets").where("projectId", projectId).select("name", "type");
|
||||||
const msg = e?.message || String(e);
|
const existingAssetsList = existingAssets.map((a) => `${a.name}(${a.type})`).join("、");
|
||||||
const scriptNames = validScripts.map((v) => v.script.name).join(", ");
|
|
||||||
console.error(`[extractAssets] group=[${validScriptIds.join(",")}] 提取失败:`, msg);
|
// 拼接多集剧本内容,每集用分隔标记
|
||||||
for (const { id, script } of validScripts) {
|
const scriptsContent = validScripts
|
||||||
errors.push({ scriptId: id, error: (script.name || "") + ":" + u.error(e).message });
|
.map(({ id, script }) => `===== 【剧本ID: ${id}】${script.name || ""} =====\n${script.content}`)
|
||||||
await u
|
.join("\n\n");
|
||||||
.db("o_script")
|
|
||||||
.where("id", id)
|
let collectedNew: NewAsset[] = [];
|
||||||
.update({ extractState: -1, errorReason: u.error(e).message });
|
let collectedExisting: ExistingAssetRef[] = [];
|
||||||
|
try {
|
||||||
|
const resultTool = tool({
|
||||||
|
description: "返回结果时必须调用这个工具",
|
||||||
|
inputSchema: z.object({
|
||||||
|
newAssets: z
|
||||||
|
.array(NewAssetSchema)
|
||||||
|
.describe("新发现的资产列表(不在已有资产列表中的),需要完整的 prompt、name、desc、type 和使用该资产的 scriptIds"),
|
||||||
|
existingAssetRefs: z
|
||||||
|
.array(ExistingAssetRefSchema)
|
||||||
|
.describe("已有资产的引用列表(在已有资产列表中已存在的),只需给出资产名称和使用该资产的 scriptIds"),
|
||||||
|
}),
|
||||||
|
execute: async ({ newAssets, existingAssetRefs }) => {
|
||||||
|
console.log("[tools] extractAssets result", { newAssets, existingAssetRefs });
|
||||||
|
if (newAssets?.length) collectedNew = newAssets;
|
||||||
|
if (existingAssetRefs?.length) collectedExisting = existingAssetRefs;
|
||||||
|
return "无需回复用户任何内容";
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const data = await u.db("o_prompt").where("type", "scriptAssetExtraction").first("data");
|
||||||
|
const existingHint = existingAssetsList
|
||||||
|
? `\n\n【已有资产列表】:${existingAssetsList}\n对于已有资产,如果在剧本中出现,只需在 existingAssetRefs 中给出资产名称和对应的 scriptIds 数组即可,无需重复生成 desc/type。对于新发现的资产(不在已有列表中),请在 newAssets 中给出完整信息。`
|
||||||
|
: "";
|
||||||
|
const output = await u.Ai.Text("universalAi").invoke({
|
||||||
|
messages: [
|
||||||
|
{
|
||||||
|
role: "system",
|
||||||
|
content:
|
||||||
|
data?.data +
|
||||||
|
"\n\n提取剧本中涉及的资产(角色、场景、道具),参考技能 script_assets_extract 规范,结果必须通过 resultTool 工具返回。" +
|
||||||
|
"\n\n注意:本次会同时提供多集剧本,每集剧本以 ===== 【剧本ID: xxx】 ===== 分隔。你需要分析每集剧本使用了哪些资产,并在输出中用 scriptIds 数组标明每个资产在哪些剧本中出现。",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: "user",
|
||||||
|
content: `当前已有资产列表:${existingHint}\n\n请根据以下${validScripts.length}集剧本提取对应的剧本资产(角色、场景、道具):\n\n${scriptsContent}`,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
tools: { resultTool },
|
||||||
|
});
|
||||||
|
await persistGroupResult({
|
||||||
|
batchScriptIds: validScriptIds,
|
||||||
|
newAssets: collectedNew,
|
||||||
|
existingRefs: collectedExisting,
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`[extractAssets] group=[${validScriptIds.join(",")}] 提取失败:`, e);
|
||||||
|
for (const { id, script } of validScripts) {
|
||||||
|
errors.push({ scriptId: id, error: (script.name || "") + ":" + u.error(e).message });
|
||||||
|
await u
|
||||||
|
.db("o_script")
|
||||||
|
.where("id", id)
|
||||||
|
.update({ extractState: -1, errorReason: u.error(e).message });
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
continue;
|
if (!collectedNew.length && !collectedExisting.length) {
|
||||||
}
|
for (const { id } of validScripts) {
|
||||||
|
errors.push({ scriptId: id, error: "AI 未返回任何资产" });
|
||||||
if (!collectedNew.length && !collectedExisting.length) {
|
await u.db("o_script").where("id", id).update({ extractState: -1, errorReason: "AI 未返回任何资产" });
|
||||||
for (const { id } of validScripts) {
|
}
|
||||||
errors.push({ scriptId: id, error: "AI 未返回任何资产" });
|
return;
|
||||||
await u.db("o_script").where("id", id).update({ extractState: -1, errorReason: "AI 未返回任何资产" });
|
|
||||||
}
|
}
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
successCount += validScripts.length;
|
|
||||||
|
|
||||||
// 入库
|
|
||||||
await persistGroupResult({
|
|
||||||
batchScriptIds: validScriptIds,
|
|
||||||
newAssets: collectedNew,
|
|
||||||
existingRefs: collectedExisting,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
processGroup(scriptGroups);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
19
src/types/database.d.ts
vendored
19
src/types/database.d.ts
vendored
@ -1,6 +1,22 @@
|
|||||||
// @db-hash 6fa5017e455bc367c9c902ba574d11b4
|
// @db-hash 19c726e36479d905346c772cfa8007ba
|
||||||
//该文件由脚本自动生成,请勿手动修改
|
//该文件由脚本自动生成,请勿手动修改
|
||||||
|
|
||||||
|
export interface _o_project_old_20260404 {
|
||||||
|
'artStyle'?: string | null;
|
||||||
|
'createTime'?: number | null;
|
||||||
|
'directorManual'?: string | null;
|
||||||
|
'id'?: number | null;
|
||||||
|
'imageModel'?: string | null;
|
||||||
|
'imageQuality'?: string | null;
|
||||||
|
'intro'?: string | null;
|
||||||
|
'mode'?: string | null;
|
||||||
|
'name'?: string | null;
|
||||||
|
'projectType'?: string | null;
|
||||||
|
'type'?: string | null;
|
||||||
|
'userId'?: number | null;
|
||||||
|
'videoModel'?: string | null;
|
||||||
|
'videoRatio'?: string | null;
|
||||||
|
}
|
||||||
export interface memories {
|
export interface memories {
|
||||||
'content': string;
|
'content': string;
|
||||||
'createTime': number;
|
'createTime': number;
|
||||||
@ -231,6 +247,7 @@ export interface o_videoTrack {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface DB {
|
export interface DB {
|
||||||
|
"_o_project_old_20260404": _o_project_old_20260404;
|
||||||
"memories": memories;
|
"memories": memories;
|
||||||
"o_agentDeploy": o_agentDeploy;
|
"o_agentDeploy": o_agentDeploy;
|
||||||
"o_agentWorkData": o_agentWorkData;
|
"o_agentWorkData": o_agentWorkData;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user