From 3f9698bb470a8a6b6499c79a5f98c9ba3cfafab4 Mon Sep 17 00:00:00 2001 From: Xyfacai Date: Wed, 10 Sep 2025 15:29:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20dalle=20=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=80=8F=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dto/openai_image.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/dto/openai_image.go b/dto/openai_image.go index 9e838688e..bc888dc71 100644 --- a/dto/openai_image.go +++ b/dto/openai_image.go @@ -59,6 +59,29 @@ func (i *ImageRequest) UnmarshalJSON(data []byte) error { return nil } +// 序列化时需要重新把字段平铺 +func (r ImageRequest) MarshalJSON() ([]byte, error) { + // 将已定义字段转为 map + type Alias ImageRequest + alias := Alias(r) + base, err := json.Marshal(alias) + if err != nil { + return nil, err + } + + var baseMap map[string]json.RawMessage + if err := json.Unmarshal(base, &baseMap); err != nil { + return nil, err + } + + // 合并 ExtraFields + for k, v := range r.Extra { + baseMap[k] = v + } + + return json.Marshal(baseMap) +} + func GetJSONFieldNames(t reflect.Type) map[string]struct{} { fields := make(map[string]struct{}) for i := 0; i < t.NumField(); i++ {