diff --git a/constant/task.go b/constant/task.go
index e7af39a6..21790145 100644
--- a/constant/task.go
+++ b/constant/task.go
@@ -5,8 +5,6 @@ type TaskPlatform string
const (
TaskPlatformSuno TaskPlatform = "suno"
TaskPlatformMidjourney = "mj"
- TaskPlatformKling TaskPlatform = "kling"
- TaskPlatformJimeng TaskPlatform = "jimeng"
)
const (
diff --git a/controller/relay.go b/controller/relay.go
index b224b42c..18c5f1b4 100644
--- a/controller/relay.go
+++ b/controller/relay.go
@@ -428,7 +428,7 @@ func RelayTask(c *gin.Context) {
func taskRelayHandler(c *gin.Context, relayMode int) *dto.TaskError {
var err *dto.TaskError
switch relayMode {
- case relayconstant.RelayModeSunoFetch, relayconstant.RelayModeSunoFetchByID, relayconstant.RelayModeKlingFetchByID:
+ case relayconstant.RelayModeSunoFetch, relayconstant.RelayModeSunoFetchByID, relayconstant.RelayModeVideoFetchByID:
err = relay.RelayTaskFetch(c, relayMode)
default:
err = relay.RelayTaskSubmit(c, relayMode)
diff --git a/controller/task.go b/controller/task.go
index 78674d8b..5fbdb424 100644
--- a/controller/task.go
+++ b/controller/task.go
@@ -75,10 +75,10 @@ func UpdateTaskByPlatform(platform constant.TaskPlatform, taskChannelM map[int][
//_ = UpdateMidjourneyTaskAll(context.Background(), tasks)
case constant.TaskPlatformSuno:
_ = UpdateSunoTaskAll(context.Background(), taskChannelM, taskM)
- case constant.TaskPlatformKling, constant.TaskPlatformJimeng:
- _ = UpdateVideoTaskAll(context.Background(), platform, taskChannelM, taskM)
default:
- common.SysLog("未知平台")
+ if err := UpdateVideoTaskAll(context.Background(), platform, taskChannelM, taskM); err != nil {
+ common.SysLog(fmt.Sprintf("UpdateVideoTaskAll fail: %s", err))
+ }
}
}
diff --git a/middleware/distributor.go b/middleware/distributor.go
index a6889e39..3b04eef0 100644
--- a/middleware/distributor.go
+++ b/middleware/distributor.go
@@ -174,22 +174,13 @@ func getModelRequest(c *gin.Context) (*ModelRequest, bool, error) {
c.Set("relay_mode", relayMode)
} else if strings.Contains(c.Request.URL.Path, "/v1/video/generations") {
err = common.UnmarshalBodyReusable(c, &modelRequest)
- var platform string
- var relayMode int
- if strings.HasPrefix(modelRequest.Model, "jimeng") {
- platform = string(constant.TaskPlatformJimeng)
- relayMode = relayconstant.Path2RelayJimeng(c.Request.Method, c.Request.URL.Path)
- if relayMode == relayconstant.RelayModeJimengFetchByID {
- shouldSelectChannel = false
- }
- } else {
- platform = string(constant.TaskPlatformKling)
- relayMode = relayconstant.Path2RelayKling(c.Request.Method, c.Request.URL.Path)
- if relayMode == relayconstant.RelayModeKlingFetchByID {
- shouldSelectChannel = false
- }
+ relayMode := relayconstant.RelayModeUnknown
+ if c.Request.Method == http.MethodPost {
+ relayMode = relayconstant.RelayModeVideoSubmit
+ } else if c.Request.Method == http.MethodGet {
+ relayMode = relayconstant.RelayModeVideoFetchByID
+ shouldSelectChannel = false
}
- c.Set("platform", platform)
c.Set("relay_mode", relayMode)
} else if strings.HasPrefix(c.Request.URL.Path, "/v1beta/models/") || strings.HasPrefix(c.Request.URL.Path, "/v1/models/") {
// Gemini API 路径处理: /v1beta/models/gemini-2.0-flash:generateContent
diff --git a/relay/constant/relay_mode.go b/relay/constant/relay_mode.go
index 394fc0e9..b1599fd0 100644
--- a/relay/constant/relay_mode.go
+++ b/relay/constant/relay_mode.go
@@ -40,11 +40,8 @@ const (
RelayModeSunoFetchByID
RelayModeSunoSubmit
- RelayModeKlingFetchByID
- RelayModeKlingSubmit
-
- RelayModeJimengFetchByID
- RelayModeJimengSubmit
+ RelayModeVideoFetchByID
+ RelayModeVideoSubmit
RelayModeRerank
@@ -145,23 +142,3 @@ func Path2RelaySuno(method, path string) int {
}
return relayMode
}
-
-func Path2RelayKling(method, path string) int {
- relayMode := RelayModeUnknown
- if method == http.MethodPost && strings.HasSuffix(path, "/video/generations") {
- relayMode = RelayModeKlingSubmit
- } else if method == http.MethodGet && (strings.Contains(path, "/video/generations")) {
- relayMode = RelayModeKlingFetchByID
- }
- return relayMode
-}
-
-func Path2RelayJimeng(method, path string) int {
- relayMode := RelayModeUnknown
- if method == http.MethodPost && strings.HasSuffix(path, "/video/generations") {
- relayMode = RelayModeJimengSubmit
- } else if method == http.MethodGet && strings.Contains(path, "/video/generations/") {
- relayMode = RelayModeJimengFetchByID
- }
- return relayMode
-}
diff --git a/relay/relay_adaptor.go b/relay/relay_adaptor.go
index 2ce12a87..1e9c46e8 100644
--- a/relay/relay_adaptor.go
+++ b/relay/relay_adaptor.go
@@ -1,8 +1,8 @@
package relay
import (
+ "github.com/gin-gonic/gin"
"one-api/constant"
- commonconstant "one-api/constant"
"one-api/relay/channel"
"one-api/relay/channel/ali"
"one-api/relay/channel/aws"
@@ -34,6 +34,7 @@ import (
"one-api/relay/channel/xunfei"
"one-api/relay/channel/zhipu"
"one-api/relay/channel/zhipu_4v"
+ "strconv"
)
func GetAdaptor(apiType int) channel.Adaptor {
@@ -100,16 +101,28 @@ func GetAdaptor(apiType int) channel.Adaptor {
return nil
}
-func GetTaskAdaptor(platform commonconstant.TaskPlatform) channel.TaskAdaptor {
+func GetTaskPlatform(c *gin.Context) constant.TaskPlatform {
+ channelType := c.GetInt("channel_type")
+ if channelType > 0 {
+ return constant.TaskPlatform(strconv.Itoa(channelType))
+ }
+ return constant.TaskPlatform(c.GetString("platform"))
+}
+
+func GetTaskAdaptor(platform constant.TaskPlatform) channel.TaskAdaptor {
switch platform {
//case constant.APITypeAIProxyLibrary:
// return &aiproxy.Adaptor{}
- case commonconstant.TaskPlatformSuno:
+ case constant.TaskPlatformSuno:
return &suno.TaskAdaptor{}
- case commonconstant.TaskPlatformKling:
- return &kling.TaskAdaptor{}
- case commonconstant.TaskPlatformJimeng:
- return &taskjimeng.TaskAdaptor{}
+ }
+ if channelType, err := strconv.ParseInt(string(platform), 10, 64); err == nil {
+ switch channelType {
+ case constant.ChannelTypeKling:
+ return &kling.TaskAdaptor{}
+ case constant.ChannelTypeJimeng:
+ return &taskjimeng.TaskAdaptor{}
+ }
}
return nil
}
diff --git a/relay/relay_task.go b/relay/relay_task.go
index 25f63d40..ce00527b 100644
--- a/relay/relay_task.go
+++ b/relay/relay_task.go
@@ -24,6 +24,9 @@ Task 任务通过平台、Action 区分任务
*/
func RelayTaskSubmit(c *gin.Context, relayMode int) (taskErr *dto.TaskError) {
platform := constant.TaskPlatform(c.GetString("platform"))
+ if platform == "" {
+ platform = GetTaskPlatform(c)
+ }
relayInfo := relaycommon.GenTaskRelayInfo(c)
adaptor := GetTaskAdaptor(platform)
@@ -178,7 +181,7 @@ func RelayTaskSubmit(c *gin.Context, relayMode int) (taskErr *dto.TaskError) {
var fetchRespBuilders = map[int]func(c *gin.Context) (respBody []byte, taskResp *dto.TaskError){
relayconstant.RelayModeSunoFetchByID: sunoFetchByIDRespBodyBuilder,
relayconstant.RelayModeSunoFetch: sunoFetchRespBodyBuilder,
- relayconstant.RelayModeKlingFetchByID: videoFetchByIDRespBodyBuilder,
+ relayconstant.RelayModeVideoFetchByID: videoFetchByIDRespBodyBuilder,
}
func RelayTaskFetch(c *gin.Context, relayMode int) (taskResp *dto.TaskError) {
diff --git a/web/src/components/table/task-logs/TaskLogsColumnDefs.js b/web/src/components/table/task-logs/TaskLogsColumnDefs.js
index 8b066758..f895bf01 100644
--- a/web/src/components/table/task-logs/TaskLogsColumnDefs.js
+++ b/web/src/components/table/task-logs/TaskLogsColumnDefs.js
@@ -39,6 +39,7 @@ import {
Sparkles
} from 'lucide-react';
import { TASK_ACTION_GENERATE, TASK_ACTION_TEXT_GENERATE } from '../../../constants/common.constant';
+import { CHANNEL_OPTIONS } from '../../../constants/channel.constants';
const colors = [
'amber',
@@ -121,6 +122,14 @@ const renderType = (type, t) => {
};
const renderPlatform = (platform, t) => {
+ let option = CHANNEL_OPTIONS.find(opt => String(opt.value) === String(platform));
+ if (option) {
+ return (
+ }>
+ {option.label}
+
+ );
+ }
switch (platform) {
case 'suno':
return (
@@ -128,18 +137,6 @@ const renderPlatform = (platform, t) => {
Suno
);
- case 'kling':
- return (
- }>
- Kling
-
- );
- case 'jimeng':
- return (
- }>
- Jimeng
-
- );
default:
return (
}>