Better parsing of textgen streaming

This commit is contained in:
SillyLossy
2023-04-16 20:11:35 +03:00
parent 8ee8f373ec
commit e337e3be9b
3 changed files with 13 additions and 10 deletions

View File

@ -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;
}
});

View File

@ -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 = '';

View File

@ -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) {