From 1ad9151a6b92a7112bcd8c4195885b5599495e0d Mon Sep 17 00:00:00 2001 From: ShellMonster Date: Wed, 22 Apr 2026 10:57:44 +0800 Subject: [PATCH] fix: pass quality parameter to openai-image provider API request The frontend sends quality (auto/low/medium/high) but the backend openai_image.go never read it from params, always leaving it empty. Now quality is properly forwarded to /v1/images/generations. --- backend/internal/provider/openai_image.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend/internal/provider/openai_image.go b/backend/internal/provider/openai_image.go index 2f93724..4b4eaec 100644 --- a/backend/internal/provider/openai_image.go +++ b/backend/internal/provider/openai_image.go @@ -61,6 +61,13 @@ func (p *OpenAIImageProvider) ValidateParams(params map[string]interface{}) erro return fmt.Errorf("size 仅支持 auto、1024x1024、1024x1536、1536x1024") } + quality, _ := params["quality"].(string) + switch strings.TrimSpace(strings.ToLower(quality)) { + case "", "auto", "low", "medium", "high": + default: + return fmt.Errorf("quality 仅支持 auto、low、medium、high") + } + return nil } @@ -140,6 +147,9 @@ func (p *OpenAIImageProvider) buildImagesGenerationRequestBody(modelID string, p if size, _ := params["size"].(string); strings.TrimSpace(size) != "" { body.Size = strings.TrimSpace(strings.ToLower(size)) } + if quality, _ := params["quality"].(string); strings.TrimSpace(quality) != "" { + body.Quality = strings.TrimSpace(strings.ToLower(quality)) + } if count, ok := toInt(params["count"]); ok && count >= 1 && count <= 10 { body.N = count }