Просмотр исходного кода

✨ feat(kling): send both `model_name` and `model` fields for upstream compatibility

Some upstream Kling deployments still expect the legacy `model` key
instead of `model_name`.
This change adds the `model` field to `requestPayload` and populates it
with the same value as `model_name`, ensuring the generated JSON works
with both old and new versions.

Changes:
• Added `Model string "json:\"model,omitempty\""` to `requestPayload`
• Set `Model` alongside `ModelName` in `convertToRequestPayload`
• Updated comments to clarify compatibility purpose

Result:
Kling task requests now contain both `model_name` and `model`, removing
integration issues with upstreams that only recognize one of the keys.
t0ng7u 7 месяцев назад
Родитель
Сommit
90011aa0c9
2 измененных файлов с 3 добавлено и 1 удалено
  1. 1 1
      middleware/kling_adapter.go
  2. 2 0
      relay/channel/task/kling/adaptor.go

+ 1 - 1
middleware/kling_adapter.go

@@ -18,7 +18,7 @@ func KlingRequestConvert() func(c *gin.Context) {
 			return
 		}
 
-		// 支持 model_name 和 model 两个字段
+		// Support both model_name and model fields
 		model, _ := originalReq["model_name"].(string)
 		if model == "" {
 			model, _ = originalReq["model"].(string)

+ 2 - 0
relay/channel/task/kling/adaptor.go

@@ -44,6 +44,7 @@ type requestPayload struct {
 	Duration    string  `json:"duration,omitempty"`
 	AspectRatio string  `json:"aspect_ratio,omitempty"`
 	ModelName   string  `json:"model_name,omitempty"`
+	Model       string  `json:"model,omitempty"` // Compatible with upstreams that only recognize "model"
 	CfgScale    float64 `json:"cfg_scale,omitempty"`
 }
 
@@ -227,6 +228,7 @@ func (a *TaskAdaptor) convertToRequestPayload(req *SubmitReq) (*requestPayload,
 		Duration:    fmt.Sprintf("%d", defaultInt(req.Duration, 5)),
 		AspectRatio: a.getAspectRatio(req.Size),
 		ModelName:   req.Model,
+		Model:       req.Model, // Keep consistent with model_name, double writing improves compatibility
 		CfgScale:    0.5,
 	}
 	if r.ModelName == "" {