| package common | |
| import "github.com/QuantumNous/new-api/constant" | |
| // GetEndpointTypesByChannelType 获取渠道最优先端点类型(所有的渠道都支持 OpenAI 端点) | |
| func GetEndpointTypesByChannelType(channelType int, modelName string) []constant.EndpointType { | |
| var endpointTypes []constant.EndpointType | |
| switch channelType { | |
| case constant.ChannelTypeJina: | |
| endpointTypes = []constant.EndpointType{constant.EndpointTypeJinaRerank} | |
| //case constant.ChannelTypeMidjourney, constant.ChannelTypeMidjourneyPlus: | |
| // endpointTypes = []constant.EndpointType{constant.EndpointTypeMidjourney} | |
| //case constant.ChannelTypeSunoAPI: | |
| // endpointTypes = []constant.EndpointType{constant.EndpointTypeSuno} | |
| //case constant.ChannelTypeKling: | |
| // endpointTypes = []constant.EndpointType{constant.EndpointTypeKling} | |
| //case constant.ChannelTypeJimeng: | |
| // endpointTypes = []constant.EndpointType{constant.EndpointTypeJimeng} | |
| case constant.ChannelTypeAws: | |
| fallthrough | |
| case constant.ChannelTypeAnthropic: | |
| endpointTypes = []constant.EndpointType{constant.EndpointTypeAnthropic, constant.EndpointTypeOpenAI} | |
| case constant.ChannelTypeVertexAi: | |
| fallthrough | |
| case constant.ChannelTypeGemini: | |
| endpointTypes = []constant.EndpointType{constant.EndpointTypeGemini, constant.EndpointTypeOpenAI} | |
| case constant.ChannelTypeOpenRouter: // OpenRouter 只支持 OpenAI 端点 | |
| endpointTypes = []constant.EndpointType{constant.EndpointTypeOpenAI} | |
| case constant.ChannelTypeSora: | |
| endpointTypes = []constant.EndpointType{constant.EndpointTypeOpenAIVideo} | |
| default: | |
| if IsOpenAIResponseOnlyModel(modelName) { | |
| endpointTypes = []constant.EndpointType{constant.EndpointTypeOpenAIResponse} | |
| } else { | |
| endpointTypes = []constant.EndpointType{constant.EndpointTypeOpenAI} | |
| } | |
| } | |
| if IsImageGenerationModel(modelName) { | |
| // add to first | |
| endpointTypes = append([]constant.EndpointType{constant.EndpointTypeImageGeneration}, endpointTypes...) | |
| } | |
| return endpointTypes | |
| } | |