mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Better parsing of textgen streaming
This commit is contained in:
@ -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;
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -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 = '';
|
||||
|
@ -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) {
|
||||
|
Reference in New Issue
Block a user