mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
const { CacheKeys, EModelEndpoint } = require('librechat-data-provider');
|
|
const { normalizeEndpointName } = require('~/server/utils');
|
|
const loadCustomConfig = require('./loadCustomConfig');
|
|
const getLogStores = require('~/cache/getLogStores');
|
|
|
|
/**
|
|
* Retrieves the configuration object
|
|
* @function getCustomConfig
|
|
* @returns {Promise<TCustomConfig | null>}
|
|
* */
|
|
async function getCustomConfig() {
|
|
const cache = getLogStores(CacheKeys.CONFIG_STORE);
|
|
let customConfig = await cache.get(CacheKeys.CUSTOM_CONFIG);
|
|
|
|
if (!customConfig) {
|
|
customConfig = await loadCustomConfig();
|
|
}
|
|
|
|
if (!customConfig) {
|
|
return null;
|
|
}
|
|
|
|
return customConfig;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {string | EModelEndpoint} endpoint
|
|
*/
|
|
const getCustomEndpointConfig = async (endpoint) => {
|
|
const customConfig = await getCustomConfig();
|
|
if (!customConfig) {
|
|
throw new Error(`Config not found for the ${endpoint} custom endpoint.`);
|
|
}
|
|
|
|
const { endpoints = {} } = customConfig;
|
|
const customEndpoints = endpoints[EModelEndpoint.custom] ?? [];
|
|
return customEndpoints.find(
|
|
(endpointConfig) => normalizeEndpointName(endpointConfig.name) === endpoint,
|
|
);
|
|
};
|
|
|
|
module.exports = { getCustomConfig, getCustomEndpointConfig };
|