diff --git a/api/server/middleware/buildEndpointOption.js b/api/server/middleware/buildEndpointOption.js index 8394223b5e..f3138bf6e9 100644 --- a/api/server/middleware/buildEndpointOption.js +++ b/api/server/middleware/buildEndpointOption.js @@ -1,11 +1,11 @@ +const { logger } = require('@librechat/data-schemas'); const { - parseCompactConvo, + EndpointURLs, EModelEndpoint, isAgentsEndpoint, - EndpointURLs, + parseCompactConvo, } = require('librechat-data-provider'); const azureAssistants = require('~/server/services/Endpoints/azureAssistants'); -const { getModelsConfig } = require('~/server/controllers/ModelController'); const assistants = require('~/server/services/Endpoints/assistants'); const gptPlugins = require('~/server/services/Endpoints/gptPlugins'); const { processFiles } = require('~/server/services/Files/process'); @@ -36,6 +36,9 @@ async function buildEndpointOption(req, res, next) { try { parsedBody = parseCompactConvo({ endpoint, endpointType, conversation: req.body }); } catch (error) { + logger.warn( + `Error parsing conversation for endpoint ${endpoint}${error?.message ? `: ${error.message}` : ''}`, + ); return handleError(res, { text: 'Error parsing conversation' }); } @@ -77,6 +80,7 @@ async function buildEndpointOption(req, res, next) { conversation: currentModelSpec.preset, }); } catch (error) { + logger.error(`Error parsing model spec for endpoint ${endpoint}`, error); return handleError(res, { text: 'Error parsing model spec' }); } } @@ -84,20 +88,23 @@ async function buildEndpointOption(req, res, next) { try { const isAgents = isAgentsEndpoint(endpoint) || req.baseUrl.startsWith(EndpointURLs[EModelEndpoint.agents]); - const endpointFn = buildFunction[isAgents ? EModelEndpoint.agents : (endpointType ?? endpoint)]; - const builder = isAgents ? (...args) => endpointFn(req, ...args) : endpointFn; + const builder = isAgents + ? (...args) => buildFunction[EModelEndpoint.agents](req, ...args) + : buildFunction[endpointType ?? endpoint]; // TODO: use object params req.body.endpointOption = await builder(endpoint, parsedBody, endpointType); - // TODO: use `getModelsConfig` only when necessary - const modelsConfig = await getModelsConfig(req); - req.body.endpointOption.modelsConfig = modelsConfig; if (req.body.files && !isAgents) { req.body.endpointOption.attachments = processFiles(req.body.files); } + next(); } catch (error) { + logger.error( + `Error building endpoint option for endpoint ${endpoint} with type ${endpointType}`, + error, + ); return handleError(res, { text: 'Error building endpoint option' }); } }