mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Handholding message for broke
This commit is contained in:
@ -440,6 +440,40 @@ function getSystemPrompt(nsfw_toggle_prompt, enhance_definitions_prompt, wiBefor
|
|||||||
return whole_prompt;
|
return whole_prompt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function tryParseStreamingError(str) {
|
||||||
|
try {
|
||||||
|
const data = JSON.parse(str);
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkQuotaError(data);
|
||||||
|
|
||||||
|
if (data.error) {
|
||||||
|
throw new Error(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
// No JSON. Do nothing.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkQuotaError(data) {
|
||||||
|
const errorText = `<h3>You have no credits left to use with this API key.<br>
|
||||||
|
Check your billing details on the
|
||||||
|
<a href="https://platform.openai.com/account/usage" target="_blank">OpenAI website.</a></h3>`;
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data.quota_error) {
|
||||||
|
callPopup(errorText, 'text');
|
||||||
|
throw new Error(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function sendOpenAIRequest(openai_msgs_tosend, signal) {
|
async function sendOpenAIRequest(openai_msgs_tosend, signal) {
|
||||||
// Provide default abort signal
|
// Provide default abort signal
|
||||||
if (!signal) {
|
if (!signal) {
|
||||||
@ -491,9 +525,7 @@ async function sendOpenAIRequest(openai_msgs_tosend, signal) {
|
|||||||
const { done, value } = await reader.read();
|
const { done, value } = await reader.read();
|
||||||
let response = decoder.decode(value);
|
let response = decoder.decode(value);
|
||||||
|
|
||||||
if (response == "{\"error\":true}") {
|
tryParseStreamingError(response);
|
||||||
throw new Error('error during streaming');
|
|
||||||
}
|
|
||||||
|
|
||||||
let eventList = response.split("\n");
|
let eventList = response.split("\n");
|
||||||
|
|
||||||
@ -518,6 +550,8 @@ async function sendOpenAIRequest(openai_msgs_tosend, signal) {
|
|||||||
else {
|
else {
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
|
checkQuotaError(data);
|
||||||
|
|
||||||
if (data.error) {
|
if (data.error) {
|
||||||
throw new Error(data);
|
throw new Error(data);
|
||||||
}
|
}
|
||||||
|
@ -2285,7 +2285,8 @@ app.post("/generate_openai", jsonParser, function (request, response_generate_op
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
response_generate_openai.send({ error: true });
|
const quota_error = error.response.status == 429;
|
||||||
|
response_generate_openai.send({ error: true, quota_error });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user