mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-11 04:58:51 +01:00
27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
|
|
const { removeNullishValues } = require('librechat-data-provider');
|
||
|
|
const { logger } = require('~/config');
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Loads custom token rates from the user's YAML config, merging with default token rates if available.
|
||
|
|
*
|
||
|
|
* @param {TCustomConfig | undefined} config - The loaded custom configuration.
|
||
|
|
* @param {TConfigDefaults} [configDefaults] - Optional default configuration values.
|
||
|
|
* @returns {TCustomConfig['tokenRates']} - The final token rates configuration.
|
||
|
|
*/
|
||
|
|
function loadTokenRatesConfig(config, configDefaults) {
|
||
|
|
const userTokenRates = removeNullishValues(config?.tokenRates ?? {});
|
||
|
|
|
||
|
|
if (!configDefaults?.tokenRates) {
|
||
|
|
logger.info(`User tokenRates configuration:\n${JSON.stringify(userTokenRates, null, 2)}`);
|
||
|
|
return userTokenRates;
|
||
|
|
}
|
||
|
|
|
||
|
|
/** @type {TCustomConfig['tokenRates']} */
|
||
|
|
const defaultTokenRates = removeNullishValues(configDefaults.tokenRates);
|
||
|
|
const merged = { ...defaultTokenRates, ...userTokenRates };
|
||
|
|
|
||
|
|
logger.info(`Merged tokenRates configuration:\n${JSON.stringify(merged, null, 2)}`);
|
||
|
|
return merged;
|
||
|
|
}
|
||
|
|
|
||
|
|
module.exports = { loadTokenRatesConfig };
|