| | const { Providers } = require('@librechat/agents'); |
| | const { EModelEndpoint } = require('librechat-data-provider'); |
| | const { getCustomEndpointConfig } = require('@librechat/api'); |
| | const initAnthropic = require('~/server/services/Endpoints/anthropic/initialize'); |
| | const getBedrockOptions = require('~/server/services/Endpoints/bedrock/options'); |
| | const initOpenAI = require('~/server/services/Endpoints/openAI/initialize'); |
| | const initCustom = require('~/server/services/Endpoints/custom/initialize'); |
| | const initGoogle = require('~/server/services/Endpoints/google/initialize'); |
| |
|
| | |
| | |
| | |
| | |
| | function isKnownCustomProvider(provider) { |
| | return [Providers.XAI, Providers.DEEPSEEK, Providers.OPENROUTER].includes( |
| | provider?.toLowerCase() || '', |
| | ); |
| | } |
| |
|
| | const providerConfigMap = { |
| | [Providers.XAI]: initCustom, |
| | [Providers.DEEPSEEK]: initCustom, |
| | [Providers.OPENROUTER]: initCustom, |
| | [EModelEndpoint.openAI]: initOpenAI, |
| | [EModelEndpoint.google]: initGoogle, |
| | [EModelEndpoint.azureOpenAI]: initOpenAI, |
| | [EModelEndpoint.anthropic]: initAnthropic, |
| | [EModelEndpoint.bedrock]: getBedrockOptions, |
| | }; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | function getProviderConfig({ provider, appConfig }) { |
| | let getOptions = providerConfigMap[provider]; |
| | let overrideProvider = provider; |
| | |
| | let customEndpointConfig; |
| |
|
| | if (!getOptions && providerConfigMap[provider.toLowerCase()] != null) { |
| | overrideProvider = provider.toLowerCase(); |
| | getOptions = providerConfigMap[overrideProvider]; |
| | } else if (!getOptions) { |
| | customEndpointConfig = getCustomEndpointConfig({ endpoint: provider, appConfig }); |
| | if (!customEndpointConfig) { |
| | throw new Error(`Provider ${provider} not supported`); |
| | } |
| | getOptions = initCustom; |
| | overrideProvider = Providers.OPENAI; |
| | } |
| |
|
| | if (isKnownCustomProvider(overrideProvider) && !customEndpointConfig) { |
| | customEndpointConfig = getCustomEndpointConfig({ endpoint: provider, appConfig }); |
| | if (!customEndpointConfig) { |
| | throw new Error(`Provider ${provider} not supported`); |
| | } |
| | } |
| |
|
| | return { |
| | getOptions, |
| | overrideProvider, |
| | customEndpointConfig, |
| | }; |
| | } |
| |
|
| | module.exports = { |
| | getProviderConfig, |
| | }; |
| |
|