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