mirror of
https://github.com/ParisNeo/lollms-webui.git
synced 2024-12-19 20:37:51 +00:00
beta version of restarting from a specific position
This commit is contained in:
parent
08b8221e7e
commit
cf593c7c52
11
app.py
11
app.py
@ -301,10 +301,10 @@ class Gpt4AllWebUI:
|
||||
self.current_discussion = self.db.load_last_discussion()
|
||||
|
||||
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']}"
|
||||
|
||||
self.current_message_id = message_id
|
||||
# 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
|
||||
return Response(
|
||||
@ -313,12 +313,17 @@ class Gpt4AllWebUI:
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
def run_to(self):
|
||||
data = request.get_json()
|
||||
message_id = data["id"]
|
||||
|
||||
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)
|
||||
# We will first send a json entry that contains the message id and so on, then the text as it goes
|
||||
|
@ -47,15 +47,90 @@ function addMessage(sender, message, id, rank=0, can_edit=false) {
|
||||
resendImg.src = "/static/images/refresh.png";
|
||||
resendImg.classList.add('py-1', 'px-1', 'rounded', 'w-10', 'h-10');
|
||||
resendButton.appendChild(resendImg)
|
||||
rank_up.addEventListener('click', () => {
|
||||
const url = `/message_rank_up?id=${id}`;
|
||||
fetch(url)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('There was a problem updating the message:', error);
|
||||
});
|
||||
resendButton.addEventListener('click', () => {
|
||||
// get user input and clear input field
|
||||
message = userInput.value;
|
||||
userInput.value = '';
|
||||
|
||||
// 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
|
||||
})
|
||||
})
|
||||
.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();
|
||||
});
|
||||
});
|
||||
|
||||
const editButton = document.createElement('button');
|
||||
|
Loading…
Reference in New Issue
Block a user