mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-22 06:00:56 +02:00

* refactor: move `loadAuthValues` to `~/services/Tools/credentials` * feat: add createAxiosInstance function to configure axios with proxy support * WIP: First pass mistral ocr * refactor: replace getConvoFiles with getToolFiles for improved file retrieval logic * refactor: improve document formatting in encodeAndFormat function * refactor: remove unused resendFiles parameter from buildOptions function (this option comes from the agent config) * fix: update getFiles call to include files with `text` property as well * refactor: move file handling to `initializeAgentOptions` * refactor: enhance addImageURLs method to handle OCR text and improve message formatting * refactor: update message formatting to handle OCR text in various content types * refactor: remove unused resendFiles property from compactAgentsSchema * fix: add error handling for Mistral OCR document upload and logging * refactor: integrate OCR capability into file upload options and configuration * refactor: skip processing for text source files in delete request, as they are directly tied to database * feat: add metadata field to ExtendedFile type and update PanelColumns and PanelTable components for localization and metadata handling * fix: source icon styling * wip: first pass, frontend file context agent resources * refactor: add hover card with contextual information for File Context (OCR) in FileContext component * feat: enhance file processing by integrating file retrieval for OCR resources in agent initialization * feat: implement OCR config; fix: agent resource deletion for ocr files * feat: enhance agent initialization by adding OCR capability check in resource priming * ci: fix `~/config` module mock * ci: add OCR property expectation in AppService tests * refactor: simplify OCR config loading by removing environment variable extraction, to be done when OCR is actually performed * ci: add unit test to ensure environment variable references are not parsed in OCR config * refactor: disable base64 image inclusion in OCR request * refactor: enhance OCR configuration handling by validating environment variables and providing defaults * refactor: use file stream from disk for mistral ocr api
56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
const { getUserPluginAuthValue } = require('~/server/services/PluginService');
|
|
|
|
/**
|
|
*
|
|
* @param {Object} params
|
|
* @param {string} params.userId
|
|
* @param {string[]} params.authFields
|
|
* @param {Set<string>} [params.optional]
|
|
* @param {boolean} [params.throwError]
|
|
* @returns
|
|
*/
|
|
const loadAuthValues = async ({ userId, authFields, optional, throwError = true }) => {
|
|
let authValues = {};
|
|
|
|
/**
|
|
* Finds the first non-empty value for the given authentication field, supporting alternate fields.
|
|
* @param {string[]} fields Array of strings representing the authentication fields. Supports alternate fields delimited by "||".
|
|
* @returns {Promise<{ authField: string, authValue: string} | null>} An object containing the authentication field and value, or null if not found.
|
|
*/
|
|
const findAuthValue = async (fields) => {
|
|
for (const field of fields) {
|
|
let value = process.env[field];
|
|
if (value) {
|
|
return { authField: field, authValue: value };
|
|
}
|
|
try {
|
|
value = await getUserPluginAuthValue(userId, field, throwError);
|
|
} catch (err) {
|
|
if (optional && optional.has(field)) {
|
|
return { authField: field, authValue: undefined };
|
|
}
|
|
if (field === fields[fields.length - 1] && !value) {
|
|
throw err;
|
|
}
|
|
}
|
|
if (value) {
|
|
return { authField: field, authValue: value };
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
|
|
for (let authField of authFields) {
|
|
const fields = authField.split('||');
|
|
const result = await findAuthValue(fields);
|
|
if (result) {
|
|
authValues[result.authField] = result.authValue;
|
|
}
|
|
}
|
|
|
|
return authValues;
|
|
};
|
|
|
|
module.exports = {
|
|
loadAuthValues,
|
|
};
|