Redmind commited on
Commit
47c982e
·
verified ·
1 Parent(s): 72764b9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -0
app.py CHANGED
@@ -51,6 +51,12 @@ load_dotenv()
51
  # langfuse analytics
52
  from langfuse.callback import CallbackHandler
53
 
 
 
 
 
 
 
54
  # LangFuse API keys and host settings
55
  os.environ["LANGFUSE_PUBLIC_KEY"] = os.getenv("LANGFUSE_PUBLIC_KEY")
56
  os.environ["LANGFUSE_SECRET_KEY"] = os.getenv("LANGFUSE_SECRET_KEY")
@@ -550,6 +556,18 @@ iterations = 0
550
 
551
 
552
  def answer_question(user_question, chatbot, audio=None):
 
 
 
 
 
 
 
 
 
 
 
 
553
  global iterations
554
  iterations = 0
555
  # Ensure the temporary chart directory exists
@@ -675,6 +693,17 @@ def handle_dislike(data: gr.LikeData):
675
  def update_message(request: gr.Request):
676
  return f"<h2 style=' font-family: Calibri;'>Welcome, {request.username}</h4>"
677
 
 
 
 
 
 
 
 
 
 
 
 
678
  # CSS for styling the buttons and other elements
679
  css = """
680
  /* Example of custom button styling */
@@ -748,6 +777,9 @@ with gr.Blocks(css=css, theme=gr.themes.Soft()) as demo:
748
  with gr.Column(scale=1):
749
  with gr.Row():
750
  button = gr.Button("Submit", elem_id="submit",elem_classes="gr-button")
 
 
 
751
 
752
  button.click(answer_question, [message, chatbot], [chatbot])
753
  message.submit(answer_question, [message, chatbot], [chatbot])
 
51
  # langfuse analytics
52
  from langfuse.callback import CallbackHandler
53
 
54
+ import multiprocessing
55
+
56
+ # Define global variables to manage the process and queue
57
+ process = None
58
+ queue = None
59
+
60
  # LangFuse API keys and host settings
61
  os.environ["LANGFUSE_PUBLIC_KEY"] = os.getenv("LANGFUSE_PUBLIC_KEY")
62
  os.environ["LANGFUSE_SECRET_KEY"] = os.getenv("LANGFUSE_SECRET_KEY")
 
556
 
557
 
558
  def answer_question(user_question, chatbot, audio=None):
559
+
560
+ #initialize the process
561
+ """
562
+ Starts the agent in a separate process.
563
+ """
564
+ global process
565
+
566
+ # Create a multiprocessing queue to get the result back from the process
567
+ queue = multiprocessing.Queue()
568
+
569
+ process.start()
570
+
571
  global iterations
572
  iterations = 0
573
  # Ensure the temporary chart directory exists
 
693
  def update_message(request: gr.Request):
694
  return f"<h2 style=' font-family: Calibri;'>Welcome, {request.username}</h4>"
695
 
696
+ def stop_agent():
697
+ """
698
+ Stops the agent process if it is still running.
699
+ """
700
+ global process
701
+ if process and process.is_alive():
702
+ process.terminate() # Terminate the process forcefully
703
+ process.join() # Ensure the process is properly terminated
704
+ return "Agent execution stopped."
705
+ return "No active process to stop."
706
+
707
  # CSS for styling the buttons and other elements
708
  css = """
709
  /* Example of custom button styling */
 
777
  with gr.Column(scale=1):
778
  with gr.Row():
779
  button = gr.Button("Submit", elem_id="submit",elem_classes="gr-button")
780
+ # Button to stop the agent process
781
+ stop_button = gr.Button("Stop Agent")
782
+ stop_button.click(stop_agent, [])
783
 
784
  button.click(answer_question, [message, chatbot], [chatbot])
785
  message.submit(answer_question, [message, chatbot], [chatbot])