diff --git a/public/scripts/custom-request.js b/public/scripts/custom-request.js index 4f81b7cdb..250e74f11 100644 --- a/public/scripts/custom-request.js +++ b/public/scripts/custom-request.js @@ -149,7 +149,7 @@ export class TextCompletionService { if (!response.ok) { const text = await response.text(); - tryParseStreamingError(response, text, true); + tryParseStreamingError(response, text, { quiet: true }); throw new Error(`Got response status ${response.status}`); } @@ -166,7 +166,7 @@ export class TextCompletionService { if (done) return; if (value.data === '[DONE]') return; - tryParseStreamingError(response, value.data, true); + tryParseStreamingError(response, value.data, { quiet: true }); let data = JSON.parse(value.data); @@ -389,7 +389,7 @@ export class ChatCompletionService { if (!response.ok) { const text = await response.text(); - tryParseStreamingError(response, text, true); + tryParseStreamingError(response, text, { quiet: true }); throw new Error(`Got response status ${response.status}`); } @@ -406,7 +406,7 @@ export class ChatCompletionService { if (done) return; const rawData = value.data; if (rawData === '[DONE]') return; - tryParseStreamingError(response, rawData, true); + tryParseStreamingError(response, rawData, { quiet: true }); const parsed = JSON.parse(rawData); const reply = getStreamingReply(parsed, state, { diff --git a/public/scripts/openai.js b/public/scripts/openai.js index 583742cbc..3764563f5 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -1444,9 +1444,10 @@ export async function prepareOpenAIMessages({ * Handles errors during streaming requests. * @param {Response} response * @param {string} decoded - response text or decoded stream data - * @param {boolean?} [quiet=false] + * @param {object} [options] + * @param {boolean?} [options.quiet=false] Suppress toast messages */ -export function tryParseStreamingError(response, decoded, quiet = false) { +export function tryParseStreamingError(response, decoded, { quiet = false } = {}) { try { const data = JSON.parse(decoded); @@ -1454,8 +1455,8 @@ export function tryParseStreamingError(response, decoded, quiet = false) { return; } - checkQuotaError(data, quiet); - checkModerationError(data, quiet); + checkQuotaError(data, { quiet }); + checkModerationError(data, { quiet }); // these do not throw correctly (equiv to Error("[object Object]")) // if trying to fix "[object Object]" displayed to users, start here @@ -1478,11 +1479,12 @@ export function tryParseStreamingError(response, decoded, quiet = false) { /** * Checks if the response contains a quota error and displays a popup if it does. * @param data - * @param {boolean?} [quiet=false] + * @param {object} [options] + * @param {boolean?} [options.quiet=false] Suppress toast messages * @returns {void} * @throws {object} - response JSON */ -function checkQuotaError(data, quiet = false) { +function checkQuotaError(data, { quiet = false } = {}) { if (!data) { return; } @@ -1498,9 +1500,10 @@ function checkQuotaError(data, quiet = false) { /** * @param {any} data - * @param {boolean?} [quiet=false] + * @param {object} [options] + * @param {boolean?} [options.quiet=false] Suppress toast messages */ -function checkModerationError(data, quiet = false) { +function checkModerationError(data, { quiet = false } = {}) { const moderationError = data?.error?.message?.includes('requires moderation'); if (moderationError && !quiet) { const moderationReason = `Reasons: ${data?.error?.metadata?.reasons?.join(', ') ?? '(N/A)'}`;