melk2025 commited on
Commit
1df59f3
·
verified ·
1 Parent(s): 6ac8964

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -13
app.py CHANGED
@@ -270,20 +270,20 @@ def chatbot(query):
270
  #demo.queue()
271
  #demo.launch(share=False)
272
  # Initialize chat history with a welcome message
273
- import io
274
 
275
  def save_chat_to_file(chat_history):
276
  timestamp = time.strftime("%Y%m%d-%H%M%S")
277
  filename = f"chat_history_{timestamp}.json"
278
 
279
- # Prepare the file content
280
- file_content = json.dumps(chat_history, ensure_ascii=False, indent=2)
281
-
282
- # Create an in-memory file (using io.BytesIO or io.StringIO)
283
- file_obj = io.StringIO(file_content)
284
-
285
- # Return the file object and filename so Gradio can process it
286
- return (filename, file_obj)
 
287
 
288
  def ask(user_message, chat_history):
289
  if not user_message:
@@ -302,14 +302,12 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
302
  chatbot_ui = gr.Chatbot(value=[initial_message])
303
  question = gr.Textbox(placeholder="Ask me anything about Moodle...", show_label=False)
304
  clear_button = gr.Button("Clear")
305
- save_button = gr.Button("Save Chat") # to save the chat
306
 
307
  question.submit(ask, [question, chat_history], [chatbot_ui, chat_history, question])
308
  clear_button.click(lambda: ([initial_message], [initial_message], ""), None, [chatbot_ui, chat_history, question], queue=False)
309
 
310
- # Clicking the save button will trigger file download
311
- save_button.click(save_chat_to_file, [chat_history], gr.File())
312
 
313
  demo.queue()
314
  demo.launch(share=False)
315
-
 
270
  #demo.queue()
271
  #demo.launch(share=False)
272
  # Initialize chat history with a welcome message
 
273
 
274
  def save_chat_to_file(chat_history):
275
  timestamp = time.strftime("%Y%m%d-%H%M%S")
276
  filename = f"chat_history_{timestamp}.json"
277
 
278
+ # Create a temporary file
279
+ temp_dir = tempfile.gettempdir()
280
+ file_path = os.path.join(temp_dir, filename)
281
+
282
+ # Write the chat history into the file
283
+ with open(file_path, "w", encoding="utf-8") as f:
284
+ json.dump(chat_history, f, ensure_ascii=False, indent=2)
285
+
286
+ return file_path # THIS should be only the path, not a tuple!
287
 
288
  def ask(user_message, chat_history):
289
  if not user_message:
 
302
  chatbot_ui = gr.Chatbot(value=[initial_message])
303
  question = gr.Textbox(placeholder="Ask me anything about Moodle...", show_label=False)
304
  clear_button = gr.Button("Clear")
305
+ save_button = gr.Button("Save Chat")
306
 
307
  question.submit(ask, [question, chat_history], [chatbot_ui, chat_history, question])
308
  clear_button.click(lambda: ([initial_message], [initial_message], ""), None, [chatbot_ui, chat_history, question], queue=False)
309
 
310
+ save_button.click(save_chat_to_file, [chat_history], gr.File(label="Download your chat history"))
 
311
 
312
  demo.queue()
313
  demo.launch(share=False)