From bcb0e80a758e3bad1f07a8469fe911ab6ee76ef9 Mon Sep 17 00:00:00 2001 From: darkskygit Date: Wed, 30 Apr 2025 10:02:04 +0000 Subject: [PATCH] test(server): output low quality image in ci test (#12056) fix AI-110 --- .../src/__tests__/copilot-provider.spec.ts | 20 ++++++++++++++++--- .../server/src/plugins/copilot/controller.ts | 1 + .../src/plugins/copilot/providers/openai.ts | 5 +++++ .../src/plugins/copilot/providers/types.ts | 1 + 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/packages/backend/server/src/__tests__/copilot-provider.spec.ts b/packages/backend/server/src/__tests__/copilot-provider.spec.ts index 33944e35b..572065727 100644 --- a/packages/backend/server/src/__tests__/copilot-provider.spec.ts +++ b/packages/backend/server/src/__tests__/copilot-provider.spec.ts @@ -523,7 +523,7 @@ const actions = [ type: 'image' as const, }, { - promptName: ['debug:action:dalle3', 'debug:action:gpt-image-1'], + promptName: ['debug:action:dalle3'], messages: [ { role: 'user' as const, @@ -535,9 +535,23 @@ const actions = [ }, type: 'image' as const, }, + { + promptName: ['debug:action:gpt-image-1'], + messages: [ + { + role: 'user' as const, + content: 'Panda', + }, + ], + config: { quality: 'low' }, + verifier: (t: ExecutionContext, link: string) => { + t.truthy(checkUrl(link), 'should be a valid url'); + }, + type: 'image' as const, + }, ]; -for (const { name, promptName, messages, verifier, type } of actions) { +for (const { name, promptName, messages, verifier, type, config } of actions) { const prompts = Array.isArray(promptName) ? promptName : [promptName]; for (const promptName of prompts) { test( @@ -563,7 +577,7 @@ for (const { name, promptName, messages, verifier, type } of actions) { ...messages, ], prompt.model, - Object.assign({}, prompt.config) + Object.assign({}, prompt.config, config) ); t.truthy(result, 'should return result'); verifier?.(t, result); diff --git a/packages/backend/server/src/plugins/copilot/controller.ts b/packages/backend/server/src/plugins/copilot/controller.ts index 1e8d544dc..8b31427f0 100644 --- a/packages/backend/server/src/plugins/copilot/controller.ts +++ b/packages/backend/server/src/plugins/copilot/controller.ts @@ -530,6 +530,7 @@ export class CopilotController implements BeforeApplicationShutdown { const source$ = from( provider.generateImagesStream(session.finish(params), session.model, { ...session.config.promptConfig, + quality: params.quality || undefined, seed: this.parseNumber(params.seed), signal: this.getSignal(req), user: user.id, diff --git a/packages/backend/server/src/plugins/copilot/providers/openai.ts b/packages/backend/server/src/plugins/copilot/providers/openai.ts index 9f9fea120..905a5e58f 100644 --- a/packages/backend/server/src/plugins/copilot/providers/openai.ts +++ b/packages/backend/server/src/plugins/copilot/providers/openai.ts @@ -348,6 +348,11 @@ export class OpenAIProvider const result = await generateImage({ model: modelInstance, prompt, + providerOptions: { + openai: { + quality: options.quality || null, + }, + }, }); return result.images.map( diff --git a/packages/backend/server/src/plugins/copilot/providers/types.ts b/packages/backend/server/src/plugins/copilot/providers/types.ts index f61e03b39..2a23ffb19 100644 --- a/packages/backend/server/src/plugins/copilot/providers/types.ts +++ b/packages/backend/server/src/plugins/copilot/providers/types.ts @@ -99,6 +99,7 @@ const CopilotImageOptionsSchema = CopilotProviderOptionsSchema.merge( PromptConfigStrictSchema ) .extend({ + quality: z.string().optional(), seed: z.number().optional(), }) .optional();