Repared discussion export

This commit is contained in:
Saifeddine ALOUI 2023-04-18 00:23:31 +02:00
parent 714b4d6bb3
commit 39c9af8d68
3 changed files with 26 additions and 4 deletions

2
app.py
View File

@ -178,7 +178,7 @@ class Gpt4AllWebUI(GPT4AllAPI):
return jsonify(self.db.export_to_json())
def export_discussion(self):
return jsonify(self.full_message)
return jsonify({"discussion_text":self.get_discussion_to()})
@stream_with_context

View File

@ -133,7 +133,27 @@ class GPT4AllAPI():
discussion_messages += link_text + self.personality["ai_message_prefix"]
return discussion_messages # Removes the last return
def get_discussion_to(self, message_id=-1):
messages = self.current_discussion.get_messages()
self.full_message_list = []
for message in messages:
if message["id"]<= message_id or message_id==-1:
if message["type"]!=self.db.MSG_TYPE_CONDITIONNING:
if message["sender"]==self.personality["name"]:
self.full_message_list.append(self.personality["ai_message_prefix"]+message["content"])
else:
self.full_message_list.append(self.personality["user_message_prefix"] + message["content"])
link_text = self.personality["link_text"]
if len(self.full_message_list) > self.config["nb_messages_to_remember"]:
discussion_messages = self.personality["personality_conditionning"]+ link_text.join(self.full_message_list[-self.config["nb_messages_to_remember"]:])
else:
discussion_messages = self.personality["personality_conditionning"]+ link_text.join(self.full_message_list)
return discussion_messages # Removes the last return
def new_text_callback(self, text: str):
print(text, end="")
sys.stdout.flush()

View File

@ -184,11 +184,13 @@ function populate_menu(){
exportDiscussionButton.title = "Export discussion to a file";
exportDiscussionButton.addEventListener('click', () => {
fetch(`/export_discussion`)
.then(response => response.text())
.then(response => response.json())
.then(data => {
discussion_text = data["discussion_text"]
copyToClipboard(discussion_text)
const filename = window.prompt('Please enter a filename:', 'discussion.txt');
if (filename !== null) {
const text = data.replace(/\n/g, "\r\n");
const text = discussion_text;
const blob = new Blob([text], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');