| | const { logger } = require('@librechat/data-schemas'); |
| | const { CacheKeys } = require('librechat-data-provider'); |
| | const { loadDefaultModels, loadConfigModels } = require('~/server/services/Config'); |
| | const { getLogStores } = require('~/cache'); |
| |
|
| | |
| | |
| | |
| | |
| | const getModelsConfig = async (req) => { |
| | const cache = getLogStores(CacheKeys.CONFIG_STORE); |
| | let modelsConfig = await cache.get(CacheKeys.MODELS_CONFIG); |
| | if (!modelsConfig) { |
| | modelsConfig = await loadModels(req); |
| | } |
| |
|
| | return modelsConfig; |
| | }; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | async function loadModels(req) { |
| | const cache = getLogStores(CacheKeys.CONFIG_STORE); |
| | const cachedModelsConfig = await cache.get(CacheKeys.MODELS_CONFIG); |
| | if (cachedModelsConfig) { |
| | return cachedModelsConfig; |
| | } |
| | const defaultModelsConfig = await loadDefaultModels(req); |
| | const customModelsConfig = await loadConfigModels(req); |
| |
|
| | const modelConfig = { ...defaultModelsConfig, ...customModelsConfig }; |
| |
|
| | await cache.set(CacheKeys.MODELS_CONFIG, modelConfig); |
| | return modelConfig; |
| | } |
| |
|
| | async function modelController(req, res) { |
| | try { |
| | const modelConfig = await loadModels(req); |
| | res.send(modelConfig); |
| | } catch (error) { |
| | logger.error('Error fetching models:', error); |
| | res.status(500).send({ error: error.message }); |
| | } |
| | } |
| |
|
| | module.exports = { modelController, loadModels, getModelsConfig }; |
| |
|