🔍 refactor: OCR Fully Optional with Defaults for "Upload as Text" (#9856)

* refactor: move `loadOCRConfig` from `packages/data-provider` to `packages/api` and return `undefined` if not explicitly configured

* fix: loadOCRConfig import from @librechat/api

* refactor: update defaultTextMimeTypes to support virtually all file types for text parsing

* fix: improve OCR capability check and error message for unsupported file types

* ci: remove unnecessary ocr expectation from AppService test
This commit is contained in:
Danny Avila 2025-09-26 11:56:11 -04:00 committed by GitHub
parent 3d7eaf0fcc
commit 4b5b46604c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 15 additions and 20 deletions

View file

@ -594,10 +594,9 @@ const processAgentFileUpload = async ({ req, res, metadata }) => {
const fileConfig = mergeFileConfig(appConfig.fileConfig);
const shouldUseOCR = fileConfig.checkType(
file.mimetype,
fileConfig.ocr?.supportedMimeTypes || [],
);
const shouldUseOCR =
appConfig?.ocr != null &&
fileConfig.checkType(file.mimetype, fileConfig.ocr?.supportedMimeTypes || []);
if (shouldUseOCR && !(await checkCapability(req, AgentCapabilities.ocr))) {
throw new Error('OCR capability is not enabled for Agents');
@ -626,7 +625,7 @@ const processAgentFileUpload = async ({ req, res, metadata }) => {
);
if (!shouldUseText) {
throw new Error(`File type ${file.mimetype} is not supported for OCR or text parsing`);
throw new Error(`File type ${file.mimetype} is not supported for text parsing.`);
}
const { text, bytes } = await parseText({ req, file, file_id });