Improve error handling of /genraw and /gen

- /generate TC backend returns more status/error texts
- Fix /genraw and /gen returning null/undefined
- Logging errors on /genraw if backend throws an error
- Fixes #2836
This commit is contained in:
Wolfsblvt 2024-09-12 22:41:53 +02:00
parent 7c383e3218
commit f5b68893d0
3 changed files with 13 additions and 3 deletions

View File

@ -3265,7 +3265,7 @@ export async function generateRaw(prompt, api, instructOverride, quietToLoud, sy
}
if (data.error) {
throw new Error(data.error);
throw new Error(data.response);
}
const message = cleanUpMessage(extractMessageFromData(data), false, false, true);

View File

@ -2241,7 +2241,7 @@ function setEphemeralStopStrings(value) {
async function generateRawCallback(args, value) {
if (!value) {
console.warn('WARN: No argument provided for /genraw command');
return;
return '';
}
// Prevent generate recursion
@ -2260,12 +2260,16 @@ async function generateRawCallback(args, value) {
setEphemeralStopStrings(resolveVariable(args?.stop));
const result = await generateRaw(value, '', isFalseBoolean(args?.instruct), quietToLoud, systemPrompt, length);
return result;
} catch (err) {
console.error('Error on /genraw generation', err);
toastr.error(err.message, 'Error on Generate');
} finally {
if (lock) {
activateSendButtons();
}
flushEphemeralStoppingStrings();
}
return '';
}
/**
@ -2291,12 +2295,16 @@ async function generateCallback(args, value) {
const name = args?.name;
const result = await generateQuietPrompt(value, quietToLoud, false, '', name, length);
return result;
} catch (err) {
console.error('Error on /genraw generation', err);
toastr.error(err.message, 'Error on Generate');
} finally {
if (lock) {
activateSendButtons();
}
flushEphemeralStoppingStrings();
}
return '';
}
/**

View File

@ -375,7 +375,9 @@ router.post('/generate', jsonParser, async function (request, response) {
}
}
} catch (error) {
let value = { error: true, status: error?.status, response: error?.statusText };
const status = error?.status ?? error?.code ?? 'UNKNOWN';
const text = error?.error ?? error?.statusText ?? error?.message ?? 'Unknown error on /generate endpoint';
let value = { error: true, status: status, response: text };
console.log('Endpoint error:', error);
if (!response.headersSent) {