New parser
This commit is contained in:
parent
220be1485f
commit
1641d3b2d0
@ -23,16 +23,41 @@ async function sendGen() {
|
|||||||
async function readResponse(response) {
|
async function readResponse(response) {
|
||||||
const reader = response.body.getReader();
|
const reader = response.body.getReader();
|
||||||
const decoder = new TextDecoder('utf-8');
|
const decoder = new TextDecoder('utf-8');
|
||||||
let done = false;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
while (!done) {
|
// Recursive function to read the stream
|
||||||
const { value, done: readerDone } = await reader.read();
|
function read() {
|
||||||
done = readerDone;
|
reader.read().then(({ value, done }) => {
|
||||||
const chunk = decoder.decode(value, { stream: true });
|
if (done) {
|
||||||
outputArea.innerHTML += chunk;
|
console.log("Stream complete");
|
||||||
outputArea.scrollTop = outputArea.scrollHeight;
|
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) {
|
} catch (error) {
|
||||||
outputArea.innerHTML = `<span class="text-red-500">Error: ${error.message}</span>`;
|
outputArea.innerHTML = `<span class="text-red-500">Error: ${error.message}</span>`;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user