diff --git a/public/script.js b/public/script.js index f79563b49..de51019e9 100644 --- a/public/script.js +++ b/public/script.js @@ -1973,10 +1973,6 @@ async function Generate(type, automatic_trigger, force_name2) { hideSwipeButtons(); let getMessage = await streamingProcessor.generate(); - if (generatedPromtCache.length === 0) { - generatedPromtCache = message_already_generated; - } - if (isMultigenEnabled()) { tokens_already_generated += this_amount_gen; // add new gen amt to any prev gen counter.. message_already_generated += getMessage; @@ -1991,7 +1987,7 @@ async function Generate(type, automatic_trigger, force_name2) { getMessage = message_already_generated; } - if (streamingProcessor.isFinished) { + if (streamingProcessor && !streamingProcessor.isStopped && streamingProcessor.isFinished) { streamingProcessor.onFinishStreaming(streamingProcessor.messageId, getMessage); streamingProcessor = null; } @@ -4981,6 +4977,7 @@ $(document).ready(function () { if (streamingProcessor) { streamingProcessor.isStopped = true; streamingProcessor.onStopStreaming(); + streamingProcessor = null; } }); diff --git a/public/scripts/textgen-settings.js b/public/scripts/textgen-settings.js index 8fb3438e9..2916ec4fd 100644 --- a/public/scripts/textgen-settings.js +++ b/public/scripts/textgen-settings.js @@ -30,7 +30,7 @@ let textgenerationwebui_settings = { truncation_length: 2048, ban_eos_token: false, streaming: false, - fn_index: 29, + fn_index: 34, }; let textgenerationwebui_presets = []; @@ -167,7 +167,13 @@ async function generateTextGenWithStreaming(generate_data) { let delta = ''; try { - delta = JSON.parse(response).delta; + delta = response.split('\n').map(x => { + try { + return JSON.parse(x).delta; + } catch { + return ''; + } + }).join(''); } catch { delta = ''; diff --git a/server.js b/server.js index 480d8481f..fe07a9a6d 100644 --- a/server.js +++ b/server.js @@ -408,9 +408,9 @@ app.post("/generate_textgenerationwebui", jsonParser, async function (request, r return null; } - let result = json5.parse(request.body.data)[0]; + let result = JSON.parse(request.body.data)[0]; let prompt = result; - let stopping_strings = json5.parse(request.body.data)[1].custom_stopping_strings; + let stopping_strings = JSON.parse(request.body.data)[1].custom_stopping_strings; try { for await (const text of readWebsocket()) { @@ -428,7 +428,7 @@ app.post("/generate_textgenerationwebui", jsonParser, async function (request, r const generatedText = result.substring(prompt.length); - response_generate.write(JSON.stringify({ delta: newText })); + response_generate.write(JSON.stringify({ delta: newText }) + '\n'); if (generatedText) { for (const str of stopping_strings) {