/
alt3rmann
/
LibreChat
Обзор
Документация
Войти
/
alt3rmann
/
LibreChat
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
api/server/controllers/ModelController.js
49 строк
1 KB
Danny Avila
🚀 feat: Enhance Model Handling, Logging & xAI Agent Support (#6182)
05 мар 2025, 20:04
Не верифицирован
05 мар 2025, 20:04
00b2d02
Код
Авторство
О чём код?
const { CacheKeys } = require('librechat-data-provider'); const { loadDefaultModels, loadConfigModels } = require('~/server/services/Config'); const { getLogStores } = require('~/cache'); const { logger } = require('~/config'); /** * @param {ServerRequest} req */ 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; }; /** * Loads the models from the config. * @param {ServerRequest} req - The Express request object. * @returns {Promise<TModelsConfig>} The models config. */ 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 };