1. 新增图像AI测试功能
This commit is contained in:
parent
13fa6e0723
commit
1c45ca0331
File diff suppressed because one or more lines are too long
@ -46,7 +46,7 @@ export default async function startServe() {
|
|||||||
const { tokenKey } = setting;
|
const { tokenKey } = setting;
|
||||||
// 从 header 或 query 参数获取 token
|
// 从 header 或 query 参数获取 token
|
||||||
const rawToken = req.headers.authorization || (req.query.token as string) || "";
|
const rawToken = req.headers.authorization || (req.query.token as string) || "";
|
||||||
const token = rawToken.replace("Bearer ", "");
|
const token = rawToken.replace("Bearer ", "");
|
||||||
// 白名单路径
|
// 白名单路径
|
||||||
if (req.path === "/other/login") return next();
|
if (req.path === "/other/login") return next();
|
||||||
|
|
||||||
|
|||||||
202
src/router.ts
202
src/router.ts
@ -1,4 +1,4 @@
|
|||||||
// @routes-hash 7f65684b8af5d021b07d338de1dc06a8
|
// @routes-hash 4c67f0d89475e1a882416d9f6ab1687d
|
||||||
import { Express } from "express";
|
import { Express } from "express";
|
||||||
|
|
||||||
import route1 from "./routes/assets/addAssets";
|
import route1 from "./routes/assets/addAssets";
|
||||||
@ -20,55 +20,57 @@ import route16 from "./routes/other/deleteAllData";
|
|||||||
import route17 from "./routes/other/getCaptcha";
|
import route17 from "./routes/other/getCaptcha";
|
||||||
import route18 from "./routes/other/login";
|
import route18 from "./routes/other/login";
|
||||||
import route19 from "./routes/other/testAI";
|
import route19 from "./routes/other/testAI";
|
||||||
import route20 from "./routes/outline/addOutline";
|
import route20 from "./routes/other/testImage";
|
||||||
import route21 from "./routes/outline/agentsOutline";
|
import route21 from "./routes/other/testVideo";
|
||||||
import route22 from "./routes/outline/delOutline";
|
import route22 from "./routes/outline/addOutline";
|
||||||
import route23 from "./routes/outline/getHistory";
|
import route23 from "./routes/outline/agentsOutline";
|
||||||
import route24 from "./routes/outline/getOutline";
|
import route24 from "./routes/outline/delOutline";
|
||||||
import route25 from "./routes/outline/getPartScript";
|
import route25 from "./routes/outline/getHistory";
|
||||||
import route26 from "./routes/outline/getStoryline";
|
import route26 from "./routes/outline/getOutline";
|
||||||
import route27 from "./routes/outline/setHistory";
|
import route27 from "./routes/outline/getPartScript";
|
||||||
import route28 from "./routes/outline/updateOutline";
|
import route28 from "./routes/outline/getStoryline";
|
||||||
import route29 from "./routes/outline/updateScript";
|
import route29 from "./routes/outline/setHistory";
|
||||||
import route30 from "./routes/outline/updateStoryline";
|
import route30 from "./routes/outline/updateOutline";
|
||||||
import route31 from "./routes/project/addProject";
|
import route31 from "./routes/outline/updateScript";
|
||||||
import route32 from "./routes/project/delProject";
|
import route32 from "./routes/outline/updateStoryline";
|
||||||
import route33 from "./routes/project/getProject";
|
import route33 from "./routes/project/addProject";
|
||||||
import route34 from "./routes/project/getProjectCount";
|
import route34 from "./routes/project/delProject";
|
||||||
import route35 from "./routes/project/getSingleProject";
|
import route35 from "./routes/project/getProject";
|
||||||
import route36 from "./routes/project/updateProject";
|
import route36 from "./routes/project/getProjectCount";
|
||||||
import route37 from "./routes/prompt/getPrompts";
|
import route37 from "./routes/project/getSingleProject";
|
||||||
import route38 from "./routes/prompt/updatePrompt";
|
import route38 from "./routes/project/updateProject";
|
||||||
import route39 from "./routes/script/generateScriptApi";
|
import route39 from "./routes/prompt/getPrompts";
|
||||||
import route40 from "./routes/script/generateScriptSave";
|
import route40 from "./routes/prompt/updatePrompt";
|
||||||
import route41 from "./routes/script/geScriptApi";
|
import route41 from "./routes/script/generateScriptApi";
|
||||||
import route42 from "./routes/setting/getSetting";
|
import route42 from "./routes/script/generateScriptSave";
|
||||||
import route43 from "./routes/setting/updateSetting";
|
import route43 from "./routes/script/geScriptApi";
|
||||||
import route44 from "./routes/storyboard/batchSuperScoreImage";
|
import route44 from "./routes/setting/getSetting";
|
||||||
import route45 from "./routes/storyboard/chatStoryboard";
|
import route45 from "./routes/setting/updateSetting";
|
||||||
import route46 from "./routes/storyboard/generateShotImage";
|
import route46 from "./routes/storyboard/batchSuperScoreImage";
|
||||||
import route47 from "./routes/storyboard/generateStoryboardApi";
|
import route47 from "./routes/storyboard/chatStoryboard";
|
||||||
import route48 from "./routes/storyboard/generateVideoPrompt";
|
import route48 from "./routes/storyboard/generateShotImage";
|
||||||
import route49 from "./routes/storyboard/getStoryboard";
|
import route49 from "./routes/storyboard/generateStoryboardApi";
|
||||||
import route50 from "./routes/storyboard/keepStoryboard";
|
import route50 from "./routes/storyboard/generateVideoPrompt";
|
||||||
import route51 from "./routes/storyboard/saveStoryboard";
|
import route51 from "./routes/storyboard/getStoryboard";
|
||||||
import route52 from "./routes/storyboard/uploadImage";
|
import route52 from "./routes/storyboard/keepStoryboard";
|
||||||
import route53 from "./routes/task/getTaskApi";
|
import route53 from "./routes/storyboard/saveStoryboard";
|
||||||
import route54 from "./routes/task/taskDetails";
|
import route54 from "./routes/storyboard/uploadImage";
|
||||||
import route55 from "./routes/user/getUser";
|
import route55 from "./routes/task/getTaskApi";
|
||||||
import route56 from "./routes/video/addVideo";
|
import route56 from "./routes/task/taskDetails";
|
||||||
import route57 from "./routes/video/addVideoConfig";
|
import route57 from "./routes/user/getUser";
|
||||||
import route58 from "./routes/video/deleteVideoConfig";
|
import route58 from "./routes/video/addVideo";
|
||||||
import route59 from "./routes/video/generatePrompt";
|
import route59 from "./routes/video/addVideoConfig";
|
||||||
import route60 from "./routes/video/generateVideo";
|
import route60 from "./routes/video/deleteVideoConfig";
|
||||||
import route61 from "./routes/video/getManufacturer";
|
import route61 from "./routes/video/generatePrompt";
|
||||||
import route62 from "./routes/video/getVideo";
|
import route62 from "./routes/video/generateVideo";
|
||||||
import route63 from "./routes/video/getVideoConfigs";
|
import route63 from "./routes/video/getManufacturer";
|
||||||
import route64 from "./routes/video/getVideoModel";
|
import route64 from "./routes/video/getVideo";
|
||||||
import route65 from "./routes/video/getVideoStoryboards";
|
import route65 from "./routes/video/getVideoConfigs";
|
||||||
import route66 from "./routes/video/reviseVideoStoryboards";
|
import route66 from "./routes/video/getVideoModel";
|
||||||
import route67 from "./routes/video/saveVideo";
|
import route67 from "./routes/video/getVideoStoryboards";
|
||||||
import route68 from "./routes/video/upDateVideoConfig";
|
import route68 from "./routes/video/reviseVideoStoryboards";
|
||||||
|
import route69 from "./routes/video/saveVideo";
|
||||||
|
import route70 from "./routes/video/upDateVideoConfig";
|
||||||
|
|
||||||
export default async (app: Express) => {
|
export default async (app: Express) => {
|
||||||
app.use("/assets/addAssets", route1);
|
app.use("/assets/addAssets", route1);
|
||||||
@ -90,53 +92,55 @@ export default async (app: Express) => {
|
|||||||
app.use("/other/getCaptcha", route17);
|
app.use("/other/getCaptcha", route17);
|
||||||
app.use("/other/login", route18);
|
app.use("/other/login", route18);
|
||||||
app.use("/other/testAI", route19);
|
app.use("/other/testAI", route19);
|
||||||
app.use("/outline/addOutline", route20);
|
app.use("/other/testImage", route20);
|
||||||
app.use("/outline/agentsOutline", route21);
|
app.use("/other/testVideo", route21);
|
||||||
app.use("/outline/delOutline", route22);
|
app.use("/outline/addOutline", route22);
|
||||||
app.use("/outline/getHistory", route23);
|
app.use("/outline/agentsOutline", route23);
|
||||||
app.use("/outline/getOutline", route24);
|
app.use("/outline/delOutline", route24);
|
||||||
app.use("/outline/getPartScript", route25);
|
app.use("/outline/getHistory", route25);
|
||||||
app.use("/outline/getStoryline", route26);
|
app.use("/outline/getOutline", route26);
|
||||||
app.use("/outline/setHistory", route27);
|
app.use("/outline/getPartScript", route27);
|
||||||
app.use("/outline/updateOutline", route28);
|
app.use("/outline/getStoryline", route28);
|
||||||
app.use("/outline/updateScript", route29);
|
app.use("/outline/setHistory", route29);
|
||||||
app.use("/outline/updateStoryline", route30);
|
app.use("/outline/updateOutline", route30);
|
||||||
app.use("/project/addProject", route31);
|
app.use("/outline/updateScript", route31);
|
||||||
app.use("/project/delProject", route32);
|
app.use("/outline/updateStoryline", route32);
|
||||||
app.use("/project/getProject", route33);
|
app.use("/project/addProject", route33);
|
||||||
app.use("/project/getProjectCount", route34);
|
app.use("/project/delProject", route34);
|
||||||
app.use("/project/getSingleProject", route35);
|
app.use("/project/getProject", route35);
|
||||||
app.use("/project/updateProject", route36);
|
app.use("/project/getProjectCount", route36);
|
||||||
app.use("/prompt/getPrompts", route37);
|
app.use("/project/getSingleProject", route37);
|
||||||
app.use("/prompt/updatePrompt", route38);
|
app.use("/project/updateProject", route38);
|
||||||
app.use("/script/generateScriptApi", route39);
|
app.use("/prompt/getPrompts", route39);
|
||||||
app.use("/script/generateScriptSave", route40);
|
app.use("/prompt/updatePrompt", route40);
|
||||||
app.use("/script/geScriptApi", route41);
|
app.use("/script/generateScriptApi", route41);
|
||||||
app.use("/setting/getSetting", route42);
|
app.use("/script/generateScriptSave", route42);
|
||||||
app.use("/setting/updateSetting", route43);
|
app.use("/script/geScriptApi", route43);
|
||||||
app.use("/storyboard/batchSuperScoreImage", route44);
|
app.use("/setting/getSetting", route44);
|
||||||
app.use("/storyboard/chatStoryboard", route45);
|
app.use("/setting/updateSetting", route45);
|
||||||
app.use("/storyboard/generateShotImage", route46);
|
app.use("/storyboard/batchSuperScoreImage", route46);
|
||||||
app.use("/storyboard/generateStoryboardApi", route47);
|
app.use("/storyboard/chatStoryboard", route47);
|
||||||
app.use("/storyboard/generateVideoPrompt", route48);
|
app.use("/storyboard/generateShotImage", route48);
|
||||||
app.use("/storyboard/getStoryboard", route49);
|
app.use("/storyboard/generateStoryboardApi", route49);
|
||||||
app.use("/storyboard/keepStoryboard", route50);
|
app.use("/storyboard/generateVideoPrompt", route50);
|
||||||
app.use("/storyboard/saveStoryboard", route51);
|
app.use("/storyboard/getStoryboard", route51);
|
||||||
app.use("/storyboard/uploadImage", route52);
|
app.use("/storyboard/keepStoryboard", route52);
|
||||||
app.use("/task/getTaskApi", route53);
|
app.use("/storyboard/saveStoryboard", route53);
|
||||||
app.use("/task/taskDetails", route54);
|
app.use("/storyboard/uploadImage", route54);
|
||||||
app.use("/user/getUser", route55);
|
app.use("/task/getTaskApi", route55);
|
||||||
app.use("/video/addVideo", route56);
|
app.use("/task/taskDetails", route56);
|
||||||
app.use("/video/addVideoConfig", route57);
|
app.use("/user/getUser", route57);
|
||||||
app.use("/video/deleteVideoConfig", route58);
|
app.use("/video/addVideo", route58);
|
||||||
app.use("/video/generatePrompt", route59);
|
app.use("/video/addVideoConfig", route59);
|
||||||
app.use("/video/generateVideo", route60);
|
app.use("/video/deleteVideoConfig", route60);
|
||||||
app.use("/video/getManufacturer", route61);
|
app.use("/video/generatePrompt", route61);
|
||||||
app.use("/video/getVideo", route62);
|
app.use("/video/generateVideo", route62);
|
||||||
app.use("/video/getVideoConfigs", route63);
|
app.use("/video/getManufacturer", route63);
|
||||||
app.use("/video/getVideoModel", route64);
|
app.use("/video/getVideo", route64);
|
||||||
app.use("/video/getVideoStoryboards", route65);
|
app.use("/video/getVideoConfigs", route65);
|
||||||
app.use("/video/reviseVideoStoryboards", route66);
|
app.use("/video/getVideoModel", route66);
|
||||||
app.use("/video/saveVideo", route67);
|
app.use("/video/getVideoStoryboards", route67);
|
||||||
app.use("/video/upDateVideoConfig", route68);
|
app.use("/video/reviseVideoStoryboards", route68);
|
||||||
|
app.use("/video/saveVideo", route69);
|
||||||
|
app.use("/video/upDateVideoConfig", route70);
|
||||||
}
|
}
|
||||||
|
|||||||
42
src/routes/other/testImage.ts
Normal file
42
src/routes/other/testImage.ts
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import express from "express";
|
||||||
|
import { success, error } from "@/lib/responseFormat";
|
||||||
|
import u from "@/utils";
|
||||||
|
import { createAgent } from "langchain";
|
||||||
|
import { openAI } from "@/agents/models";
|
||||||
|
import { OpenAIChatModel, type OpenAIChatModelOptions } from "@aigne/openai";
|
||||||
|
import { validateFields } from "@/middleware/middleware";
|
||||||
|
import { z } from "zod";
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
// 检查语言模型
|
||||||
|
export default router.post(
|
||||||
|
"/",
|
||||||
|
validateFields({
|
||||||
|
modelName: z.string().optional(),
|
||||||
|
apiKey: z.string(),
|
||||||
|
baseURL: z.string().optional(),
|
||||||
|
manufacturer: z.string(),
|
||||||
|
}),
|
||||||
|
async (req, res) => {
|
||||||
|
const { modelName, apiKey, baseURL, manufacturer } = req.body;
|
||||||
|
try {
|
||||||
|
const contentStr = await u.ai.generateImage(
|
||||||
|
{
|
||||||
|
prompt: "2D cat",
|
||||||
|
imageBase64: [],
|
||||||
|
aspectRatio: "16:9",
|
||||||
|
size: "1K",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
model: modelName,
|
||||||
|
apiKey,
|
||||||
|
baseURL,
|
||||||
|
manufacturer,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
res.status(200).send(success(contentStr));
|
||||||
|
} catch (err: any) {
|
||||||
|
res.status(500).send(error(err.error.message || "模型调用失败"));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
39
src/routes/other/testVideo.ts
Normal file
39
src/routes/other/testVideo.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import express from "express";
|
||||||
|
import { success, error } from "@/lib/responseFormat";
|
||||||
|
import u from "@/utils";
|
||||||
|
import { createAgent } from "langchain";
|
||||||
|
import { openAI } from "@/agents/models";
|
||||||
|
import { OpenAIChatModel, type OpenAIChatModelOptions } from "@aigne/openai";
|
||||||
|
import { validateFields } from "@/middleware/middleware";
|
||||||
|
import { z } from "zod";
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
// 检查语言模型
|
||||||
|
export default router.post(
|
||||||
|
"/",
|
||||||
|
validateFields({
|
||||||
|
modelName: z.string().optional(),
|
||||||
|
apiKey: z.string(),
|
||||||
|
baseURL: z.string().optional(),
|
||||||
|
manufacturer: z.enum(["runninghub", "volcengine", "apimart", "gemini", "openAi"]),
|
||||||
|
}),
|
||||||
|
async (req, res) => {
|
||||||
|
const { modelName, apiKey, baseURL, manufacturer } = req.body;
|
||||||
|
try {
|
||||||
|
const videoPath = await u.ai.generateVideo(
|
||||||
|
{
|
||||||
|
imageBase64: [],
|
||||||
|
savePath: "",
|
||||||
|
prompt: "stickman Dances",
|
||||||
|
duration: 10 as any,
|
||||||
|
aspectRatio: "16:9" as any,
|
||||||
|
},
|
||||||
|
manufacturer,
|
||||||
|
);
|
||||||
|
const url = await u.oss.getFileUrl(videoPath);
|
||||||
|
res.status(200).send(success(url));
|
||||||
|
} catch (err: any) {
|
||||||
|
res.status(500).send(error(err.error.message || "模型调用失败"));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
3
src/types/database.d.ts
vendored
3
src/types/database.d.ts
vendored
@ -1,4 +1,4 @@
|
|||||||
// @db-hash b6b4d8cdc25a2f4d60f1c239cd7e7060
|
// @db-hash f95df46ccfda3c7f0b2a9cefdc399035
|
||||||
//该文件由脚本自动生成,请勿手动修改
|
//该文件由脚本自动生成,请勿手动修改
|
||||||
|
|
||||||
export interface t_assets {
|
export interface t_assets {
|
||||||
@ -128,7 +128,6 @@ export interface t_video {
|
|||||||
'scriptId'?: number | null;
|
'scriptId'?: number | null;
|
||||||
'state'?: number | null;
|
'state'?: number | null;
|
||||||
'storyboardImgs'?: string | null;
|
'storyboardImgs'?: string | null;
|
||||||
'time'?: number | null;
|
|
||||||
}
|
}
|
||||||
export interface t_videoConfig {
|
export interface t_videoConfig {
|
||||||
'createTime'?: number | null;
|
'createTime'?: number | null;
|
||||||
|
|||||||
@ -182,8 +182,14 @@ const generators = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export const generateImage = async (config: ImageConfig): Promise<string> => {
|
export const generateImage = async (config: ImageConfig, replaceConfig?: Awaited<ReturnType<typeof u.getConfig<"image">>>): Promise<string> => {
|
||||||
const { model, apiKey, baseURL, manufacturer } = await u.getConfig("image");
|
let { model, apiKey, baseURL, manufacturer } = await u.getConfig("image");
|
||||||
|
if (replaceConfig) {
|
||||||
|
model = replaceConfig.model || model;
|
||||||
|
apiKey = replaceConfig.apiKey || apiKey;
|
||||||
|
baseURL = replaceConfig.baseURL || baseURL;
|
||||||
|
manufacturer = replaceConfig.manufacturer || manufacturer;
|
||||||
|
}
|
||||||
const generator = generators[manufacturer as keyof typeof generators];
|
const generator = generators[manufacturer as keyof typeof generators];
|
||||||
if (!generator) throw new Error(`不支持的厂商: ${manufacturer}`);
|
if (!generator) throw new Error(`不支持的厂商: ${manufacturer}`);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user