feat: 对接生图功能

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-04-25 19:14:58 +08:00
parent 5cb72f8579
commit 223845b0ed
12 changed files with 268 additions and 30 deletions
+44
View File
@@ -0,0 +1,44 @@
import { consola } from "consola";
import type {
IImageGenerateData,
IImageGenerateRequest
} from "#shared/types/openai";
import { isUnauthorizedError } from "~~/server/utils";
export default defineEventHandler(async (event) => {
const requestBody = await readBody<Partial<IImageGenerateRequest> | null>(
event
);
// 只接受 JSON 对象,避免数组、字符串等无效 body 被用于生成请求。
if (
requestBody !== null &&
(typeof requestBody !== "object" || Array.isArray(requestBody))
) {
return createErrorResponse(400, "请求体必须是 JSON 对象");
}
const prompt = requestBody?.prompt?.trim();
if (!prompt) {
return createErrorResponse(400, "请输入图片描述");
}
try {
const apiKey = await getAiArtStudioTokenKey(event);
const result = await askImg({
apiKey,
prompt
});
consola.info("图片生成成功", { prompt, imageUrl: result.imageUrl });
return createSuccessResponse<IImageGenerateData>(result, "图片生成成功");
} catch (error) {
if (isUnauthorizedError(error)) {
clearNewApiAuthCookies(event);
return createErrorResponse(401, "未登录");
}
return createUpstreamErrorResponse(error, "图片生成失败");
}
});