| package relay |
|
|
| import ( |
| "strconv" |
|
|
| "github.com/QuantumNous/new-api/constant" |
| "github.com/QuantumNous/new-api/relay/channel" |
| "github.com/QuantumNous/new-api/relay/channel/ali" |
| "github.com/QuantumNous/new-api/relay/channel/aws" |
| "github.com/QuantumNous/new-api/relay/channel/baidu" |
| "github.com/QuantumNous/new-api/relay/channel/baidu_v2" |
| "github.com/QuantumNous/new-api/relay/channel/claude" |
| "github.com/QuantumNous/new-api/relay/channel/cloudflare" |
| "github.com/QuantumNous/new-api/relay/channel/cohere" |
| "github.com/QuantumNous/new-api/relay/channel/coze" |
| "github.com/QuantumNous/new-api/relay/channel/deepseek" |
| "github.com/QuantumNous/new-api/relay/channel/dify" |
| "github.com/QuantumNous/new-api/relay/channel/gemini" |
| "github.com/QuantumNous/new-api/relay/channel/jimeng" |
| "github.com/QuantumNous/new-api/relay/channel/jina" |
| "github.com/QuantumNous/new-api/relay/channel/minimax" |
| "github.com/QuantumNous/new-api/relay/channel/mistral" |
| "github.com/QuantumNous/new-api/relay/channel/mokaai" |
| "github.com/QuantumNous/new-api/relay/channel/moonshot" |
| "github.com/QuantumNous/new-api/relay/channel/ollama" |
| "github.com/QuantumNous/new-api/relay/channel/openai" |
| "github.com/QuantumNous/new-api/relay/channel/palm" |
| "github.com/QuantumNous/new-api/relay/channel/perplexity" |
| "github.com/QuantumNous/new-api/relay/channel/replicate" |
| "github.com/QuantumNous/new-api/relay/channel/siliconflow" |
| "github.com/QuantumNous/new-api/relay/channel/submodel" |
| taskali "github.com/QuantumNous/new-api/relay/channel/task/ali" |
| taskdoubao "github.com/QuantumNous/new-api/relay/channel/task/doubao" |
| taskGemini "github.com/QuantumNous/new-api/relay/channel/task/gemini" |
| "github.com/QuantumNous/new-api/relay/channel/task/hailuo" |
| taskjimeng "github.com/QuantumNous/new-api/relay/channel/task/jimeng" |
| "github.com/QuantumNous/new-api/relay/channel/task/kling" |
| tasksora "github.com/QuantumNous/new-api/relay/channel/task/sora" |
| "github.com/QuantumNous/new-api/relay/channel/task/suno" |
| taskvertex "github.com/QuantumNous/new-api/relay/channel/task/vertex" |
| taskVidu "github.com/QuantumNous/new-api/relay/channel/task/vidu" |
| "github.com/QuantumNous/new-api/relay/channel/tencent" |
| "github.com/QuantumNous/new-api/relay/channel/vertex" |
| "github.com/QuantumNous/new-api/relay/channel/volcengine" |
| "github.com/QuantumNous/new-api/relay/channel/xai" |
| "github.com/QuantumNous/new-api/relay/channel/xunfei" |
| "github.com/QuantumNous/new-api/relay/channel/zhipu" |
| "github.com/QuantumNous/new-api/relay/channel/zhipu_4v" |
| "github.com/gin-gonic/gin" |
| ) |
|
|
| func GetAdaptor(apiType int) channel.Adaptor { |
| switch apiType { |
| case constant.APITypeAli: |
| return &ali.Adaptor{} |
| case constant.APITypeAnthropic: |
| return &claude.Adaptor{} |
| case constant.APITypeBaidu: |
| return &baidu.Adaptor{} |
| case constant.APITypeGemini: |
| return &gemini.Adaptor{} |
| case constant.APITypeOpenAI: |
| return &openai.Adaptor{} |
| case constant.APITypePaLM: |
| return &palm.Adaptor{} |
| case constant.APITypeTencent: |
| return &tencent.Adaptor{} |
| case constant.APITypeXunfei: |
| return &xunfei.Adaptor{} |
| case constant.APITypeZhipu: |
| return &zhipu.Adaptor{} |
| case constant.APITypeZhipuV4: |
| return &zhipu_4v.Adaptor{} |
| case constant.APITypeOllama: |
| return &ollama.Adaptor{} |
| case constant.APITypePerplexity: |
| return &perplexity.Adaptor{} |
| case constant.APITypeAws: |
| return &aws.Adaptor{} |
| case constant.APITypeCohere: |
| return &cohere.Adaptor{} |
| case constant.APITypeDify: |
| return &dify.Adaptor{} |
| case constant.APITypeJina: |
| return &jina.Adaptor{} |
| case constant.APITypeCloudflare: |
| return &cloudflare.Adaptor{} |
| case constant.APITypeSiliconFlow: |
| return &siliconflow.Adaptor{} |
| case constant.APITypeVertexAi: |
| return &vertex.Adaptor{} |
| case constant.APITypeMistral: |
| return &mistral.Adaptor{} |
| case constant.APITypeDeepSeek: |
| return &deepseek.Adaptor{} |
| case constant.APITypeMokaAI: |
| return &mokaai.Adaptor{} |
| case constant.APITypeVolcEngine: |
| return &volcengine.Adaptor{} |
| case constant.APITypeBaiduV2: |
| return &baidu_v2.Adaptor{} |
| case constant.APITypeOpenRouter: |
| return &openai.Adaptor{} |
| case constant.APITypeXinference: |
| return &openai.Adaptor{} |
| case constant.APITypeXai: |
| return &xai.Adaptor{} |
| case constant.APITypeCoze: |
| return &coze.Adaptor{} |
| case constant.APITypeJimeng: |
| return &jimeng.Adaptor{} |
| case constant.APITypeMoonshot: |
| return &moonshot.Adaptor{} |
| case constant.APITypeSubmodel: |
| return &submodel.Adaptor{} |
| case constant.APITypeMiniMax: |
| return &minimax.Adaptor{} |
| case constant.APITypeReplicate: |
| return &replicate.Adaptor{} |
| } |
| return nil |
| } |
|
|
| 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.TaskPlatformSuno: |
| return &suno.TaskAdaptor{} |
| } |
| if channelType, err := strconv.ParseInt(string(platform), 10, 64); err == nil { |
| switch channelType { |
| case constant.ChannelTypeAli: |
| return &taskali.TaskAdaptor{} |
| case constant.ChannelTypeKling: |
| return &kling.TaskAdaptor{} |
| case constant.ChannelTypeJimeng: |
| return &taskjimeng.TaskAdaptor{} |
| case constant.ChannelTypeVertexAi: |
| return &taskvertex.TaskAdaptor{} |
| case constant.ChannelTypeVidu: |
| return &taskVidu.TaskAdaptor{} |
| case constant.ChannelTypeDoubaoVideo: |
| return &taskdoubao.TaskAdaptor{} |
| case constant.ChannelTypeSora, constant.ChannelTypeOpenAI: |
| return &tasksora.TaskAdaptor{} |
| case constant.ChannelTypeGemini: |
| return &taskGemini.TaskAdaptor{} |
| case constant.ChannelTypeMiniMax: |
| return &hailuo.TaskAdaptor{} |
| } |
| } |
| return nil |
| } |
|
|