mirror of
https://github.com/ParisNeo/lollms-webui.git
synced 2024-12-24 22:46:38 +00:00
beta version of restarting from a specific position
This commit is contained in:
parent
08b8221e7e
commit
cf593c7c52
9
app.py
9
app.py
@ -301,10 +301,10 @@ class Gpt4AllWebUI:
|
|||||||
self.current_discussion = self.db.load_last_discussion()
|
self.current_discussion = self.db.load_last_discussion()
|
||||||
|
|
||||||
message_id = self.current_discussion.add_message(
|
message_id = self.current_discussion.add_message(
|
||||||
"user", request.json["message"]
|
"user", request.json["message"], parent=self.current_message_id
|
||||||
)
|
)
|
||||||
message = f"{request.json['message']}"
|
message = f"{request.json['message']}"
|
||||||
|
self.current_message_id = message_id
|
||||||
# Segmented (the user receives the output as it comes)
|
# Segmented (the user receives the output as it comes)
|
||||||
# We will first send a json entry that contains the message id and so on, then the text as it goes
|
# We will first send a json entry that contains the message id and so on, then the text as it goes
|
||||||
return Response(
|
return Response(
|
||||||
@ -319,6 +319,11 @@ class Gpt4AllWebUI:
|
|||||||
message_id = data["id"]
|
message_id = data["id"]
|
||||||
|
|
||||||
self.stop = True
|
self.stop = True
|
||||||
|
message_id = self.current_discussion.add_message(
|
||||||
|
"user", request.json["message"], parent=message_id
|
||||||
|
)
|
||||||
|
|
||||||
|
message = f"{request.json['message']}"
|
||||||
|
|
||||||
# Segmented (the user receives the output as it comes)
|
# Segmented (the user receives the output as it comes)
|
||||||
# We will first send a json entry that contains the message id and so on, then the text as it goes
|
# We will first send a json entry that contains the message id and so on, then the text as it goes
|
||||||
|
@ -47,14 +47,89 @@ function addMessage(sender, message, id, rank=0, can_edit=false) {
|
|||||||
resendImg.src = "/static/images/refresh.png";
|
resendImg.src = "/static/images/refresh.png";
|
||||||
resendImg.classList.add('py-1', 'px-1', 'rounded', 'w-10', 'h-10');
|
resendImg.classList.add('py-1', 'px-1', 'rounded', 'w-10', 'h-10');
|
||||||
resendButton.appendChild(resendImg)
|
resendButton.appendChild(resendImg)
|
||||||
rank_up.addEventListener('click', () => {
|
resendButton.addEventListener('click', () => {
|
||||||
const url = `/message_rank_up?id=${id}`;
|
// get user input and clear input field
|
||||||
fetch(url)
|
message = userInput.value;
|
||||||
.then(response => response.json())
|
userInput.value = '';
|
||||||
.then(data => {
|
|
||||||
|
// add user message to chat window
|
||||||
|
const sendbtn = document.querySelector("#submit-input")
|
||||||
|
const waitAnimation = document.querySelector("#wait-animation")
|
||||||
|
sendbtn.style.display="none";
|
||||||
|
waitAnimation.style.display="block";
|
||||||
|
|
||||||
|
fetch("/run_to", {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
id: id,
|
||||||
|
message: message
|
||||||
})
|
})
|
||||||
.catch(error => {
|
})
|
||||||
console.error('There was a problem updating the message:', error);
|
.then(function(response) {
|
||||||
|
const stream = new ReadableStream({
|
||||||
|
start(controller) {
|
||||||
|
const reader = response.body.getReader();
|
||||||
|
function push() {
|
||||||
|
reader.read().then(function(result) {
|
||||||
|
if (result.done) {
|
||||||
|
sendbtn.style.display="block";
|
||||||
|
waitAnimation.style.display="none";
|
||||||
|
controller.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
controller.enqueue(result.value);
|
||||||
|
push();
|
||||||
|
})
|
||||||
|
}
|
||||||
|
push();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const textDecoder = new TextDecoder();
|
||||||
|
const readableStreamDefaultReader = stream.getReader();
|
||||||
|
let entry_counter = 0
|
||||||
|
function readStream() {
|
||||||
|
readableStreamDefaultReader.read().then(function(result) {
|
||||||
|
if (result.done) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
text = textDecoder.decode(result.value);
|
||||||
|
|
||||||
|
// The server will first send a json containing information about the message just sent
|
||||||
|
if(entry_counter==0)
|
||||||
|
{
|
||||||
|
// We parse it and
|
||||||
|
infos = JSON.parse(text)
|
||||||
|
console.log(infos)
|
||||||
|
addMessage('User', infos.message, infos.id, 0, can_edit=true);
|
||||||
|
elements = addMessage(infos.sender, '', infos.response_id, 0, can_edit=true);
|
||||||
|
messageTextElement=elements['messageTextElement'];
|
||||||
|
hiddenElement=elements['hiddenElement'];
|
||||||
|
entry_counter ++;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
// For the other enrtries, these are just the text of the chatbot
|
||||||
|
for (const char of text) {
|
||||||
|
txt = hiddenElement.innerHTML;
|
||||||
|
if (char != '\f') {
|
||||||
|
txt += char
|
||||||
|
hiddenElement.innerHTML = txt
|
||||||
|
messageTextElement.innerHTML = txt.replace(/\n/g, "<br>")
|
||||||
|
}
|
||||||
|
|
||||||
|
// scroll to bottom of chat window
|
||||||
|
chatWindow.scrollTop = chatWindow.scrollHeight;
|
||||||
|
}
|
||||||
|
entry_counter ++;
|
||||||
|
}
|
||||||
|
|
||||||
|
readStream();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
readStream();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user