| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- 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{} // Moonshot uses Claude API
- 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.APITypeAIProxyLibrary:
- // return &aiproxy.Adaptor{}
- 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
- }
|