mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
* refactor: move endpoint services to own directory * refactor: make endpointconfig handling more concise, separate logic, and cache result for subsequent serving * refactor: ModelController gets same treatment as EndpointController, draft OverrideController * wip: flesh out override controller more to return real value * refactor: client/api changes in anticipation of override
27 lines
900 B
JavaScript
27 lines
900 B
JavaScript
const { getLogStores } = require('~/cache');
|
|
const { CacheKeys } = require('~/common/enums');
|
|
const { loadOverrideConfig } = require('~/server/services/Config');
|
|
|
|
async function overrideController(req, res) {
|
|
const cache = getLogStores(CacheKeys.CONFIG);
|
|
let overrideConfig = await cache.get(CacheKeys.OVERRIDE_CONFIG);
|
|
if (overrideConfig) {
|
|
res.send(overrideConfig);
|
|
return;
|
|
} else if (overrideConfig === false) {
|
|
res.send(false);
|
|
return;
|
|
}
|
|
overrideConfig = await loadOverrideConfig();
|
|
const { endpointsConfig, modelsConfig } = overrideConfig;
|
|
if (endpointsConfig) {
|
|
await cache.set(CacheKeys.DEFAULT_CONFIG, endpointsConfig);
|
|
}
|
|
if (modelsConfig) {
|
|
await cache.set(CacheKeys.MODELS_CONFIG, modelsConfig);
|
|
}
|
|
await cache.set(CacheKeys.OVERRIDE_CONFIG, overrideConfig);
|
|
res.send(JSON.stringify(overrideConfig));
|
|
}
|
|
|
|
module.exports = overrideController;
|