mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 17:00:15 +01:00
* wip: first pass, custom endpoint agents * chore: imports * chore: consolidate exports * fix: imports * feat: convert message.content array to strings for legacy format handling (deepseek/groq) * refactor: normalize ollama endpoint name * refactor: update mocking in isDomainAllowed.spec.js * refactor: update deepseekModels in tokens.js and tokens.spec.js
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
const { CacheKeys, EModelEndpoint } = require('librechat-data-provider');
|
|
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) => endpointConfig.name === endpoint);
|
|
};
|
|
|
|
module.exports = { getCustomConfig, getCustomEndpointConfig };
|