Download api/server/services/start/azureOpenAI.js from Zhitomir/chat: direct link, hf CLI and curl.
- Browser
- Download file 2.26 kB
-
https://huggingface.co/spaces/Zhitomir/chat/resolve/main/api/server/services/start/azureOpenAI.js
- Command line
-
hf download hf://spaces/Zhitomir/chat/api/server/services/start/azureOpenAI.js
-
curl -L -o azureOpenAI.js https://huggingface.co/spaces/Zhitomir/chat/resolve/main/api/server/services/start/azureOpenAI.js
2.26 kB
| const { | |
| EModelEndpoint, | |
| validateAzureGroups, | |
| mapModelToAzureConfig, | |
| } = require('librechat-data-provider'); | |
| const { logger } = require('~/config'); | |
| /** | |
| * Sets up the Azure OpenAI configuration from the config (`librechat.yaml`) file. | |
| * @param {TCustomConfig} config - The loaded custom configuration. | |
| * @returns {TAzureConfig} The Azure OpenAI configuration. | |
| */ | |
| function azureConfigSetup(config) { | |
| const { groups, ...azureConfiguration } = config.endpoints[EModelEndpoint.azureOpenAI]; | |
| /** @type {TAzureConfigValidationResult} */ | |
| const { isValid, modelNames, modelGroupMap, groupMap, errors } = validateAzureGroups(groups); | |
| if (!isValid) { | |
| const errorString = errors.join('\n'); | |
| const errorMessage = 'Invalid Azure OpenAI configuration:\n' + errorString; | |
| logger.error(errorMessage); | |
| throw new Error(errorMessage); | |
| } | |
| const assistantModels = []; | |
| const assistantGroups = new Set(); | |
| for (const modelName of modelNames) { | |
| mapModelToAzureConfig({ modelName, modelGroupMap, groupMap }); | |
| const groupName = modelGroupMap?.[modelName]?.group; | |
| const modelGroup = groupMap?.[groupName]; | |
| let supportsAssistants = modelGroup?.assistants || modelGroup?.[modelName]?.assistants; | |
| if (supportsAssistants) { | |
| assistantModels.push(modelName); | |
| !assistantGroups.has(groupName) && assistantGroups.add(groupName); | |
| } | |
| } | |
| if (azureConfiguration.assistants && assistantModels.length === 0) { | |
| throw new Error( | |
| 'No Azure models are configured to support assistants. Please remove the `assistants` field or configure at least one model to support assistants.', | |
| ); | |
| } | |
| if ( | |
| azureConfiguration.assistants && | |
| process.env.ENDPOINTS && | |
| !process.env.ENDPOINTS.includes(EModelEndpoint.azureAssistants) | |
| ) { | |
| logger.warn( | |
| `Azure Assistants are configured, but the endpoint will not be accessible as it's not included in the ENDPOINTS environment variable. | |
| Please add the value "${EModelEndpoint.azureAssistants}" to the ENDPOINTS list if expected.`, | |
| ); | |
| } | |
| return { | |
| modelNames, | |
| modelGroupMap, | |
| groupMap, | |
| assistantModels, | |
| assistantGroups: Array.from(assistantGroups), | |
| ...azureConfiguration, | |
| }; | |
| } | |
| module.exports = { azureConfigSetup }; | |