mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-03-10 17:10:14 +01:00
Handle non-streaming errors as 500
This commit is contained in:
parent
c45e212b31
commit
a0a1847634
@ -1,6 +1,5 @@
|
|||||||
const express = require('express');
|
const express = require('express');
|
||||||
const fetch = require('node-fetch').default;
|
const fetch = require('node-fetch').default;
|
||||||
const Readable = require('stream').Readable;
|
|
||||||
|
|
||||||
const { jsonParser } = require('../../express-common');
|
const { jsonParser } = require('../../express-common');
|
||||||
const { CHAT_COMPLETION_SOURCES, GEMINI_SAFETY, BISON_SAFETY, OPENROUTER_HEADERS } = require('../../constants');
|
const { CHAT_COMPLETION_SOURCES, GEMINI_SAFETY, BISON_SAFETY, OPENROUTER_HEADERS } = require('../../constants');
|
||||||
@ -213,7 +212,7 @@ async function sendScaleRequest(request, response) {
|
|||||||
|
|
||||||
if (!generateResponse.ok) {
|
if (!generateResponse.ok) {
|
||||||
console.log(`Scale API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`);
|
console.log(`Scale API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`);
|
||||||
return response.status(generateResponse.status).send({ error: true });
|
return response.status(500).send({ error: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
const generateResponseJson = await generateResponse.json();
|
const generateResponseJson = await generateResponse.json();
|
||||||
@ -422,15 +421,17 @@ async function sendAI21Request(request, response) {
|
|||||||
forwardFetchResponse(generateResponse, response);
|
forwardFetchResponse(generateResponse, response);
|
||||||
} else {
|
} else {
|
||||||
if (!generateResponse.ok) {
|
if (!generateResponse.ok) {
|
||||||
console.log(`AI21 API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`);
|
const errorText = await generateResponse.text();
|
||||||
return response.status(500).send({ error: true });
|
console.log(`AI21 API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
|
||||||
|
const errorJson = tryParse(errorText) ?? { error: true };
|
||||||
|
return response.status(500).send(errorJson);
|
||||||
}
|
}
|
||||||
const generateResponseJson = await generateResponse.json();
|
const generateResponseJson = await generateResponse.json();
|
||||||
console.log('AI21 response:', generateResponseJson);
|
console.log('AI21 response:', generateResponseJson);
|
||||||
return response.send(generateResponseJson);
|
return response.send(generateResponseJson);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log('Error communicating with MistralAI API: ', error);
|
console.log('Error communicating with AI21 API: ', error);
|
||||||
if (!response.headersSent) {
|
if (!response.headersSent) {
|
||||||
response.send({ error: true });
|
response.send({ error: true });
|
||||||
} else {
|
} else {
|
||||||
@ -495,10 +496,10 @@ async function sendMistralAIRequest(request, response) {
|
|||||||
forwardFetchResponse(generateResponse, response);
|
forwardFetchResponse(generateResponse, response);
|
||||||
} else {
|
} else {
|
||||||
if (!generateResponse.ok) {
|
if (!generateResponse.ok) {
|
||||||
console.log(`MistralAI API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`);
|
const errorText = await generateResponse.text();
|
||||||
// a 401 unauthorized response breaks the frontend auth, so return a 500 instead. prob a better way of dealing with this.
|
console.log(`MistralAI API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
|
||||||
// 401s are already handled by the streaming processor and dont pop up an error toast, that should probably be fixed too.
|
const errorJson = tryParse(errorText) ?? { error: true };
|
||||||
return response.status(generateResponse.status === 401 ? 500 : generateResponse.status).send({ error: true });
|
return response.status(500).send(errorJson);
|
||||||
}
|
}
|
||||||
const generateResponseJson = await generateResponse.json();
|
const generateResponseJson = await generateResponse.json();
|
||||||
console.log('MistralAI response:', generateResponseJson);
|
console.log('MistralAI response:', generateResponseJson);
|
||||||
@ -595,7 +596,7 @@ async function sendCohereRequest(request, response) {
|
|||||||
const errorText = await generateResponse.text();
|
const errorText = await generateResponse.text();
|
||||||
console.log(`Cohere API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
|
console.log(`Cohere API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
|
||||||
const errorJson = tryParse(errorText) ?? { error: true };
|
const errorJson = tryParse(errorText) ?? { error: true };
|
||||||
return response.status(generateResponse.status === 401 ? 500 : generateResponse.status).send(errorJson);
|
return response.status(500).send(errorJson);
|
||||||
}
|
}
|
||||||
const generateResponseJson = await generateResponse.json();
|
const generateResponseJson = await generateResponse.json();
|
||||||
console.log('Cohere response:', generateResponseJson);
|
console.log('Cohere response:', generateResponseJson);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user