Переглянути джерело

fix: kling create video via openai sdk

feitianbubu 2 місяців тому
батько
коміт
cc41ac63bf

+ 0 - 1
relay/channel/task/jimeng/adaptor.go

@@ -163,7 +163,6 @@ func (a *TaskAdaptor) DoResponse(c *gin.Context, resp *http.Response, info *rela
 	ov.TaskID = jResp.Data.TaskID
 	ov.CreatedAt = time.Now().Unix()
 	ov.Model = info.OriginModelName
-	ov.Metadata = map[string]any{}
 	c.JSON(http.StatusOK, ov)
 	return jResp.Data.TaskID, responseBody, nil
 }

+ 14 - 14
relay/channel/task/kling/adaptor.go

@@ -6,13 +6,11 @@ import (
 	"fmt"
 	"io"
 	"net/http"
-	"strconv"
 	"strings"
 	"time"
 
 	"github.com/QuantumNous/new-api/model"
 
-	"github.com/bytedance/gopkg/util/logger"
 	"github.com/samber/lo"
 
 	"github.com/gin-gonic/gin"
@@ -190,8 +188,12 @@ func (a *TaskAdaptor) DoResponse(c *gin.Context, resp *http.Response, info *rela
 		taskErr = service.TaskErrorWrapperLocal(fmt.Errorf(kResp.Message), "task_failed", http.StatusBadRequest)
 		return
 	}
-	kResp.TaskId = kResp.Data.TaskId
-	c.JSON(http.StatusOK, kResp)
+	ov := relaycommon.NewOpenAIVideo()
+	ov.ID = kResp.Data.TaskId
+	ov.TaskID = kResp.Data.TaskId
+	ov.CreatedAt = time.Now().Unix()
+	ov.Model = info.OriginModelName
+	c.JSON(http.StatusOK, ov)
 	return kResp.Data.TaskId, responseBody, nil
 }
 
@@ -370,20 +372,18 @@ func (a *TaskAdaptor) ConvertToOpenAIVideo(originTask *model.Task) (*relaycommon
 	if err := json.Unmarshal(originTask.Data, &klingResp); err != nil {
 		return nil, errors.Wrap(err, "unmarshal kling task data failed")
 	}
-	openAIVideo := &relaycommon.OpenAIVideo{
-		ID:     klingResp.Data.TaskId,
-		Object: "video",
-		//Model:       "kling-v1", //todo save model
-		Status:      string(originTask.Status),
-		CreatedAt:   klingResp.Data.CreatedAt,
-		CompletedAt: klingResp.Data.UpdatedAt,
-		Metadata:    make(map[string]any),
-	}
+
+	openAIVideo := relaycommon.NewOpenAIVideo()
+	openAIVideo.ID = originTask.TaskID
+	openAIVideo.Status = originTask.Status.ToVideoStatus()
 	openAIVideo.SetProgressStr(originTask.Progress)
+	openAIVideo.CreatedAt = klingResp.Data.CreatedAt
+	openAIVideo.CompletedAt = klingResp.Data.UpdatedAt
+
 	if len(klingResp.Data.TaskResult.Videos) > 0 {
 		video := klingResp.Data.TaskResult.Videos[0]
 		if video.Url != "" {
-			openAIVideo.Metadata["url"] = video.Url
+			openAIVideo.SetMetadata("url", video.Url)
 		}
 		if video.Duration != "" {
 			openAIVideo.Seconds = video.Duration