Merge pull request #2838 from SillyTavern/genraw-error-logging Improve error handling of /genraw and /gen

854541f4ba58ccca1f5513c9465031d7a3781566

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
3 files changed, +15 -5Showing whitespace changes
public/script.js+3 -3
@@ -3265,7 +3265,7 @@ export async function generateRaw(prompt, api, instructOverride, quietToLoud, sy
3265 }3265 }
32663266
3267 if (data.error) {3267 if (data.error) {
3268 throw new Error(data.error);3268 throw new Error(data.response);
3269 }3269 }
32703270
3271 const message = cleanUpMessage(extractMessageFromData(data), false, false, true);3271 const message = cleanUpMessage(extractMessageFromData(data), false, false, true);
@@ -4413,9 +4413,9 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro
4413 generatedPromptCache = '';4413 generatedPromptCache = '';
44144414
4415 if (data?.response) {4415 if (data?.response) {
4416 toastr.error(data.response, 'API Error');4416 toastr.error(data.response, 'API Error', { preventDuplicates: true });
4417 }4417 }
4418 throw data?.response;4418 throw new Error(data?.response);
4419 }4419 }
44204420
4421 //const getData = await response.json();4421 //const getData = await response.json();
public/scripts/slash-commands.js+9 -1
@@ -2241,7 +2241,7 @@ function setEphemeralStopStrings(value) {
2241async function generateRawCallback(args, value) {2241async function generateRawCallback(args, value) {
2242 if (!value) {2242 if (!value) {
2243 console.warn('WARN: No argument provided for /genraw command');2243 console.warn('WARN: No argument provided for /genraw command');
2244 return;2244 return '';
2245 }2245 }
22462246
2247 // Prevent generate recursion2247 // Prevent generate recursion
@@ -2260,12 +2260,16 @@ async function generateRawCallback(args, value) {
2260 setEphemeralStopStrings(resolveVariable(args?.stop));2260 setEphemeralStopStrings(resolveVariable(args?.stop));
2261 const result = await generateRaw(value, '', isFalseBoolean(args?.instruct), quietToLoud, systemPrompt, length);2261 const result = await generateRaw(value, '', isFalseBoolean(args?.instruct), quietToLoud, systemPrompt, length);
2262 return result;2262 return result;
2263 } catch (err) {
2264 console.error('Error on /genraw generation', err);
2265 toastr.error(err.message, 'API Error', { preventDuplicates: true });
2263 } finally {2266 } finally {
2264 if (lock) {2267 if (lock) {
2265 activateSendButtons();2268 activateSendButtons();
2266 }2269 }
2267 flushEphemeralStoppingStrings();2270 flushEphemeralStoppingStrings();
2268 }2271 }
2272 return '';
2269}2273}
22702274
2271/**2275/**
@@ -2291,12 +2295,16 @@ async function generateCallback(args, value) {
2291 const name = args?.name;2295 const name = args?.name;
2292 const result = await generateQuietPrompt(value, quietToLoud, false, '', name, length);2296 const result = await generateQuietPrompt(value, quietToLoud, false, '', name, length);
2293 return result;2297 return result;
2298 } catch (err) {
2299 console.error('Error on /gen generation', err);
2300 toastr.error(err.message, 'API Error', { preventDuplicates: true });
2294 } finally {2301 } finally {
2295 if (lock) {2302 if (lock) {
2296 activateSendButtons();2303 activateSendButtons();
2297 }2304 }
2298 flushEphemeralStoppingStrings();2305 flushEphemeralStoppingStrings();
2299 }2306 }
2307 return '';
2300}2308}
23012309
2302/**2310/**
src/endpoints/backends/text-completions.js+3 -1
@@ -375,7 +375,9 @@ router.post('/generate', jsonParser, async function (request, response) {
375 }375 }
376 }376 }
377 } catch (error) {377 } catch (error) {
378 let value = { error: true, status: error?.status, response: error?.statusText };378 const status = error?.status ?? error?.code ?? 'UNKNOWN';
379 const text = error?.error ?? error?.statusText ?? error?.message ?? 'Unknown error on /generate endpoint';
380 let value = { error: true, status: status, response: text };
379 console.log('Endpoint error:', error);381 console.log('Endpoint error:', error);
380382
381 if (!response.headersSent) {383 if (!response.headersSent) {