New parser
This commit is contained in:
		
							parent
							
								
									220be1485f
								
							
						
					
					
						commit
						1641d3b2d0
					
				@ -23,16 +23,41 @@ async function sendGen() {
 | 
			
		||||
async function readResponse(response) {
 | 
			
		||||
    const reader = response.body.getReader();
 | 
			
		||||
    const decoder = new TextDecoder('utf-8');
 | 
			
		||||
    let done = false;
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
        while (!done) {
 | 
			
		||||
            const { value, done: readerDone } = await reader.read();
 | 
			
		||||
            done = readerDone;
 | 
			
		||||
            const chunk = decoder.decode(value, { stream: true });
 | 
			
		||||
            outputArea.innerHTML += chunk;
 | 
			
		||||
            outputArea.scrollTop = outputArea.scrollHeight;
 | 
			
		||||
        // Recursive function to read the stream
 | 
			
		||||
        function read() {
 | 
			
		||||
            reader.read().then(({ value, done }) => {
 | 
			
		||||
                if (done) {
 | 
			
		||||
                    console.log("Stream complete");
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // Decode the stream chunk and split into lines
 | 
			
		||||
                const chunk = decoder.decode(value, { stream: true });
 | 
			
		||||
                const lines = chunk.split(/\r?\n/); // Split by newlines
 | 
			
		||||
 | 
			
		||||
                // Process each line
 | 
			
		||||
                for (const line of lines) {
 | 
			
		||||
                    if (line.trim()) { // Skip empty lines
 | 
			
		||||
                        try {
 | 
			
		||||
                            const json = JSON.parse(line); // Parse each line as JSON
 | 
			
		||||
                            if (json.response) {
 | 
			
		||||
                                textbox.value += json.response; // Append response text to the textbox
 | 
			
		||||
                            }
 | 
			
		||||
                        } catch (err) {
 | 
			
		||||
                            console.error("Failed to parse JSON:", err, line);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // Continue reading
 | 
			
		||||
                read();
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Start reading
 | 
			
		||||
        read();
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
        outputArea.innerHTML = `<span class="text-red-500">Error: ${error.message}</span>`;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user