mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-03-22 23:56:34 +01:00
🩺 refactor: Surface Descriptive OCR Error Messages to Client (#12344)
* fix: pass along error message when OCR fails Right now, if OCR fails, it just says "Error processing file" which isn't very helpful. The `error.message` does has helpful information in it, but our filter wasn't including the right case to pass it along. Now it does! * fix: extract shared upload error filter, apply to images route The 'Unable to extract text from' error was only allowlisted in the files route but not the images route, which also calls processAgentFileUpload. Extract the duplicated error filter logic into a shared resolveUploadErrorMessage utility in packages/api so both routes stay in sync. --------- Co-authored-by: Dan Lew <daniel@mightyacorn.com>
This commit is contained in:
parent
676d297cb4
commit
365a0dc0f6
4 changed files with 91 additions and 25 deletions
|
|
@ -2,7 +2,7 @@ const fs = require('fs').promises;
|
|||
const express = require('express');
|
||||
const { EnvVar } = require('@librechat/agents');
|
||||
const { logger } = require('@librechat/data-schemas');
|
||||
const { verifyAgentUploadPermission } = require('@librechat/api');
|
||||
const { verifyAgentUploadPermission, resolveUploadErrorMessage } = require('@librechat/api');
|
||||
const {
|
||||
Time,
|
||||
isUUID,
|
||||
|
|
@ -394,21 +394,9 @@ router.post('/', async (req, res) => {
|
|||
|
||||
return await processAgentFileUpload({ req, res, metadata });
|
||||
} catch (error) {
|
||||
let message = 'Error processing file';
|
||||
const message = resolveUploadErrorMessage(error);
|
||||
logger.error('[/files] Error processing file:', error);
|
||||
|
||||
if (error.message?.includes('file_ids')) {
|
||||
message += ': ' + error.message;
|
||||
}
|
||||
|
||||
if (
|
||||
error.message?.includes('Invalid file format') ||
|
||||
error.message?.includes('No OCR result') ||
|
||||
error.message?.includes('exceeds token limit')
|
||||
) {
|
||||
message = error.message;
|
||||
}
|
||||
|
||||
try {
|
||||
await fs.unlink(req.file.path);
|
||||
cleanup = false;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ const path = require('path');
|
|||
const fs = require('fs').promises;
|
||||
const express = require('express');
|
||||
const { logger } = require('@librechat/data-schemas');
|
||||
const { verifyAgentUploadPermission } = require('@librechat/api');
|
||||
const { verifyAgentUploadPermission, resolveUploadErrorMessage } = require('@librechat/api');
|
||||
const { isAssistantsEndpoint } = require('librechat-data-provider');
|
||||
const {
|
||||
processAgentFileUpload,
|
||||
|
|
@ -43,15 +43,7 @@ router.post('/', async (req, res) => {
|
|||
// TODO: delete remote file if it exists
|
||||
logger.error('[/files/images] Error processing file:', error);
|
||||
|
||||
let message = 'Error processing file';
|
||||
|
||||
if (
|
||||
error.message?.includes('Invalid file format') ||
|
||||
error.message?.includes('No OCR result') ||
|
||||
error.message?.includes('exceeds token limit')
|
||||
) {
|
||||
message = error.message;
|
||||
}
|
||||
const message = resolveUploadErrorMessage(error);
|
||||
|
||||
try {
|
||||
const filepath = path.join(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue