Download api/server/middleware/validateModel.js from Zhitomir/chat: direct link, hf CLI and curl.
- Browser
- Download file 1.39 kB
-
https://huggingface.co/spaces/Zhitomir/chat/resolve/main/api/server/middleware/validateModel.js
- Command line
-
hf download hf://spaces/Zhitomir/chat/api/server/middleware/validateModel.js
-
curl -L -o validateModel.js https://huggingface.co/spaces/Zhitomir/chat/resolve/main/api/server/middleware/validateModel.js
1.39 kB
| const { ViolationTypes } = require('librechat-data-provider'); | |
| const { getModelsConfig } = require('~/server/controllers/ModelController'); | |
| const { handleError } = require('~/server/utils'); | |
| const { logViolation } = require('~/cache'); | |
| /** | |
| * Validates the model of the request. | |
| * | |
| * @async | |
| * @param {Express.Request} req - The Express request object. | |
| * @param {Express.Response} res - The Express response object. | |
| * @param {Function} next - The Express next function. | |
| */ | |
| const validateModel = async (req, res, next) => { | |
| const { model, endpoint } = req.body; | |
| if (!model) { | |
| return handleError(res, { text: 'Model not provided' }); | |
| } | |
| const modelsConfig = await getModelsConfig(req); | |
| if (!modelsConfig) { | |
| return handleError(res, { text: 'Models not loaded' }); | |
| } | |
| const availableModels = modelsConfig[endpoint]; | |
| if (!availableModels) { | |
| return handleError(res, { text: 'Endpoint models not loaded' }); | |
| } | |
| let validModel = !!availableModels.find((availableModel) => availableModel === model); | |
| if (validModel) { | |
| return next(); | |
| } | |
| const { ILLEGAL_MODEL_REQ_SCORE: score = 5 } = process.env ?? {}; | |
| const type = ViolationTypes.ILLEGAL_MODEL_REQUEST; | |
| const errorMessage = { | |
| type, | |
| }; | |
| await logViolation(req, res, type, errorMessage, score); | |
| return handleError(res, { text: 'Illegal model request' }); | |
| }; | |
| module.exports = validateModel; | |