mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-22 19:30:15 +01:00
refactor: consolidate endpoint loading logic into loadEndpoints function
This commit is contained in:
parent
8525c8df36
commit
89fb9c7e1c
2 changed files with 70 additions and 53 deletions
|
|
@ -12,23 +12,21 @@ const {
|
||||||
} = require('librechat-data-provider');
|
} = require('librechat-data-provider');
|
||||||
const {
|
const {
|
||||||
checkWebSearchConfig,
|
checkWebSearchConfig,
|
||||||
checkAzureVariables,
|
|
||||||
checkVariables,
|
checkVariables,
|
||||||
checkHealth,
|
checkHealth,
|
||||||
checkConfig,
|
checkConfig,
|
||||||
} = require('./start/checks');
|
} = require('./start/checks');
|
||||||
const { ensureDefaultCategories, seedDefaultRoles, initializeRoles } = require('~/models');
|
const { ensureDefaultCategories, seedDefaultRoles, initializeRoles } = require('~/models');
|
||||||
const { azureAssistantsDefaults, assistantsConfigSetup } = require('./start/assistants');
|
|
||||||
const { setCachedTools, setAppConfig, loadCustomConfig } = require('./Config');
|
const { setCachedTools, setAppConfig, loadCustomConfig } = require('./Config');
|
||||||
const { initializeAzureBlobService } = require('./Files/Azure/initialize');
|
const { initializeAzureBlobService } = require('./Files/Azure/initialize');
|
||||||
const { initializeFirebase } = require('./Files/Firebase/initialize');
|
const { initializeFirebase } = require('./Files/Firebase/initialize');
|
||||||
const handleRateLimits = require('./Config/handleRateLimits');
|
const handleRateLimits = require('./Config/handleRateLimits');
|
||||||
const { loadDefaultInterface } = require('./start/interface');
|
const { loadDefaultInterface } = require('./start/interface');
|
||||||
const { loadTurnstileConfig } = require('./start/turnstile');
|
const { loadTurnstileConfig } = require('./start/turnstile');
|
||||||
const { azureConfigSetup } = require('./start/azureOpenAI');
|
|
||||||
const { processModelSpecs } = require('./start/modelSpecs');
|
const { processModelSpecs } = require('./start/modelSpecs');
|
||||||
const { initializeS3 } = require('./Files/S3/initialize');
|
const { initializeS3 } = require('./Files/S3/initialize');
|
||||||
const { loadAndFormatTools } = require('./ToolService');
|
const { loadAndFormatTools } = require('./ToolService');
|
||||||
|
const { loadEndpoints } = require('./start/endpoints');
|
||||||
const paths = require('~/config/paths');
|
const paths = require('~/config/paths');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -121,61 +119,14 @@ const AppService = async () => {
|
||||||
|
|
||||||
checkConfig(config);
|
checkConfig(config);
|
||||||
handleRateLimits(config?.rateLimits);
|
handleRateLimits(config?.rateLimits);
|
||||||
|
const loadedEndpoints = loadEndpoints(config, agentsDefaults);
|
||||||
const endpointLocals = {};
|
|
||||||
const endpoints = config?.endpoints;
|
|
||||||
|
|
||||||
if (endpoints?.[EModelEndpoint.azureOpenAI]) {
|
|
||||||
endpointLocals[EModelEndpoint.azureOpenAI] = azureConfigSetup(config);
|
|
||||||
checkAzureVariables();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (endpoints?.[EModelEndpoint.azureOpenAI]?.assistants) {
|
|
||||||
endpointLocals[EModelEndpoint.azureAssistants] = azureAssistantsDefaults();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (endpoints?.[EModelEndpoint.azureAssistants]) {
|
|
||||||
endpointLocals[EModelEndpoint.azureAssistants] = assistantsConfigSetup(
|
|
||||||
config,
|
|
||||||
EModelEndpoint.azureAssistants,
|
|
||||||
endpointLocals[EModelEndpoint.azureAssistants],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (endpoints?.[EModelEndpoint.assistants]) {
|
|
||||||
endpointLocals[EModelEndpoint.assistants] = assistantsConfigSetup(
|
|
||||||
config,
|
|
||||||
EModelEndpoint.assistants,
|
|
||||||
endpointLocals[EModelEndpoint.assistants],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
endpointLocals[EModelEndpoint.agents] = agentsConfigSetup(config, agentsDefaults);
|
|
||||||
|
|
||||||
const endpointKeys = [
|
|
||||||
EModelEndpoint.openAI,
|
|
||||||
EModelEndpoint.google,
|
|
||||||
EModelEndpoint.bedrock,
|
|
||||||
EModelEndpoint.anthropic,
|
|
||||||
EModelEndpoint.gptPlugins,
|
|
||||||
];
|
|
||||||
|
|
||||||
endpointKeys.forEach((key) => {
|
|
||||||
if (endpoints?.[key]) {
|
|
||||||
endpointLocals[key] = endpoints[key];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (endpoints?.all) {
|
|
||||||
endpointLocals.all = endpoints.all;
|
|
||||||
}
|
|
||||||
|
|
||||||
const appConfig = {
|
const appConfig = {
|
||||||
...defaultConfig,
|
...defaultConfig,
|
||||||
fileConfig: config?.fileConfig,
|
fileConfig: config?.fileConfig,
|
||||||
secureImageLinks: config?.secureImageLinks,
|
secureImageLinks: config?.secureImageLinks,
|
||||||
modelSpecs: processModelSpecs(endpoints, config.modelSpecs, interfaceConfig),
|
modelSpecs: processModelSpecs(config?.endpoints, config.modelSpecs, interfaceConfig),
|
||||||
...endpointLocals,
|
...loadedEndpoints,
|
||||||
};
|
};
|
||||||
|
|
||||||
await setAppConfig(appConfig);
|
await setAppConfig(appConfig);
|
||||||
|
|
|
||||||
66
api/server/services/start/endpoints.js
Normal file
66
api/server/services/start/endpoints.js
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
const { agentsConfigSetup } = require('@librechat/api');
|
||||||
|
const { EModelEndpoint } = require('librechat-data-provider');
|
||||||
|
const { azureAssistantsDefaults, assistantsConfigSetup } = require('./assistants');
|
||||||
|
const { azureConfigSetup } = require('./azureOpenAI');
|
||||||
|
const { checkAzureVariables } = require('./checks');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads custom config endpoints
|
||||||
|
* @param {TCustomConfig} [config]
|
||||||
|
* @param {TCustomConfig['endpoints']['agents']} [agentsDefaults]
|
||||||
|
*/
|
||||||
|
const loadEndpoints = (config, agentsDefaults) => {
|
||||||
|
const loadedEndpoints = {};
|
||||||
|
const endpoints = config?.endpoints;
|
||||||
|
|
||||||
|
if (endpoints?.[EModelEndpoint.azureOpenAI]) {
|
||||||
|
loadedEndpoints[EModelEndpoint.azureOpenAI] = azureConfigSetup(config);
|
||||||
|
checkAzureVariables();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (endpoints?.[EModelEndpoint.azureOpenAI]?.assistants) {
|
||||||
|
loadedEndpoints[EModelEndpoint.azureAssistants] = azureAssistantsDefaults();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (endpoints?.[EModelEndpoint.azureAssistants]) {
|
||||||
|
loadedEndpoints[EModelEndpoint.azureAssistants] = assistantsConfigSetup(
|
||||||
|
config,
|
||||||
|
EModelEndpoint.azureAssistants,
|
||||||
|
loadedEndpoints[EModelEndpoint.azureAssistants],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (endpoints?.[EModelEndpoint.assistants]) {
|
||||||
|
loadedEndpoints[EModelEndpoint.assistants] = assistantsConfigSetup(
|
||||||
|
config,
|
||||||
|
EModelEndpoint.assistants,
|
||||||
|
loadedEndpoints[EModelEndpoint.assistants],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
loadedEndpoints[EModelEndpoint.agents] = agentsConfigSetup(config, agentsDefaults);
|
||||||
|
|
||||||
|
const endpointKeys = [
|
||||||
|
EModelEndpoint.openAI,
|
||||||
|
EModelEndpoint.google,
|
||||||
|
EModelEndpoint.bedrock,
|
||||||
|
EModelEndpoint.anthropic,
|
||||||
|
EModelEndpoint.gptPlugins,
|
||||||
|
];
|
||||||
|
|
||||||
|
endpointKeys.forEach((key) => {
|
||||||
|
if (endpoints?.[key]) {
|
||||||
|
loadedEndpoints[key] = endpoints[key];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (endpoints?.all) {
|
||||||
|
loadedEndpoints.all = endpoints.all;
|
||||||
|
}
|
||||||
|
|
||||||
|
return loadedEndpoints;
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
loadEndpoints,
|
||||||
|
};
|
||||||
Loading…
Add table
Add a link
Reference in a new issue