| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package channels
- import (
- "fmt"
-
- "github.com/QuantumNous/new-api/common"
- "github.com/QuantumNous/new-api/constant"
- "github.com/QuantumNous/new-api/core/registry"
- "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/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/siliconflow"
- "github.com/QuantumNous/new-api/relay/channel/submodel"
- "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"
- )
- // init 包初始化时自动注册所有Channel插件
- func init() {
- RegisterAllChannels()
- }
- // RegisterAllChannels 注册所有Channel插件
- func RegisterAllChannels() {
- // 包装现有的Adaptor并注册为插件
- channels := []struct {
- channelType int
- adaptor channel.Adaptor
- name string
- }{
- {constant.APITypeOpenAI, &openai.Adaptor{}, "openai"},
- {constant.APITypeAnthropic, &claude.Adaptor{}, "claude"},
- {constant.APITypeGemini, &gemini.Adaptor{}, "gemini"},
- {constant.APITypeAli, &ali.Adaptor{}, "ali"},
- {constant.APITypeBaidu, &baidu.Adaptor{}, "baidu"},
- {constant.APITypeBaiduV2, &baidu_v2.Adaptor{}, "baidu_v2"},
- {constant.APITypeTencent, &tencent.Adaptor{}, "tencent"},
- {constant.APITypeXunfei, &xunfei.Adaptor{}, "xunfei"},
- {constant.APITypeZhipu, &zhipu.Adaptor{}, "zhipu"},
- {constant.APITypeZhipuV4, &zhipu_4v.Adaptor{}, "zhipu_v4"},
- {constant.APITypeOllama, &ollama.Adaptor{}, "ollama"},
- {constant.APITypePerplexity, &perplexity.Adaptor{}, "perplexity"},
- {constant.APITypeAws, &aws.Adaptor{}, "aws"},
- {constant.APITypeCohere, &cohere.Adaptor{}, "cohere"},
- {constant.APITypeDify, &dify.Adaptor{}, "dify"},
- {constant.APITypeJina, &jina.Adaptor{}, "jina"},
- {constant.APITypeCloudflare, &cloudflare.Adaptor{}, "cloudflare"},
- {constant.APITypeSiliconFlow, &siliconflow.Adaptor{}, "siliconflow"},
- {constant.APITypeVertexAi, &vertex.Adaptor{}, "vertex"},
- {constant.APITypeMistral, &mistral.Adaptor{}, "mistral"},
- {constant.APITypeDeepSeek, &deepseek.Adaptor{}, "deepseek"},
- {constant.APITypeMokaAI, &mokaai.Adaptor{}, "mokaai"},
- {constant.APITypeVolcEngine, &volcengine.Adaptor{}, "volcengine"},
- {constant.APITypeXai, &xai.Adaptor{}, "xai"},
- {constant.APITypeCoze, &coze.Adaptor{}, "coze"},
- {constant.APITypeJimeng, &jimeng.Adaptor{}, "jimeng"},
- {constant.APITypeMoonshot, &moonshot.Adaptor{}, "moonshot"},
- {constant.APITypeSubmodel, &submodel.Adaptor{}, "submodel"},
- {constant.APITypePaLM, &palm.Adaptor{}, "palm"},
- // OpenRouter 和 Xinference 使用 OpenAI adaptor
- {constant.APITypeOpenRouter, &openai.Adaptor{}, "openrouter"},
- {constant.APITypeXinference, &openai.Adaptor{}, "xinference"},
- }
-
- registeredCount := 0
- for _, ch := range channels {
- plugin := NewBaseChannelPlugin(
- ch.adaptor,
- ch.name,
- "1.0.0",
- 100, // 默认优先级
- )
-
- if err := registry.RegisterChannel(ch.channelType, plugin); err != nil {
- common.SysError("Failed to register channel plugin: " + ch.name + ", error: " + err.Error())
- } else {
- registeredCount++
- }
- }
-
- common.SysLog(fmt.Sprintf("Registered %d channel plugins", registeredCount))
- }
|