mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-09-29 14:46:38 +08:00
51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package providers
|
|
|
|
import (
|
|
"one-api/common"
|
|
"one-api/providers/ali"
|
|
"one-api/providers/azure"
|
|
"one-api/providers/baidu"
|
|
"one-api/providers/base"
|
|
"one-api/providers/claude"
|
|
"one-api/providers/openai"
|
|
"one-api/providers/palm"
|
|
"one-api/providers/tencent"
|
|
"one-api/providers/xunfei"
|
|
"one-api/providers/zhipu"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func GetProvider(channelType int, c *gin.Context) base.ProviderInterface {
|
|
switch channelType {
|
|
case common.ChannelTypeOpenAI:
|
|
return openai.CreateOpenAIProvider(c, "")
|
|
case common.ChannelTypeAzure:
|
|
return azure.CreateAzureProvider(c)
|
|
case common.ChannelTypeAli:
|
|
return ali.CreateAliAIProvider(c)
|
|
case common.ChannelTypeTencent:
|
|
return tencent.CreateTencentProvider(c)
|
|
case common.ChannelTypeBaidu:
|
|
return baidu.CreateBaiduProvider(c)
|
|
case common.ChannelTypeAnthropic:
|
|
return claude.CreateClaudeProvider(c)
|
|
case common.ChannelTypePaLM:
|
|
return palm.CreatePalmProvider(c)
|
|
case common.ChannelTypeZhipu:
|
|
return zhipu.CreateZhipuProvider(c)
|
|
case common.ChannelTypeXunfei:
|
|
return xunfei.CreateXunfeiProvider(c)
|
|
default:
|
|
baseURL := common.ChannelBaseURLs[channelType]
|
|
if c.GetString("base_url") != "" {
|
|
baseURL = c.GetString("base_url")
|
|
}
|
|
if baseURL != "" {
|
|
return openai.CreateOpenAIProvider(c, baseURL)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
}
|