ash-171 commited on
Commit
250e3e4
·
verified ·
1 Parent(s): 0ca97bb

Update streamlit_app.py

Browse files
Files changed (1) hide show
  1. streamlit_app.py +51 -24
streamlit_app.py CHANGED
@@ -7,12 +7,7 @@ import os
7
 
8
  st.set_page_config(page_title="Accent Analyzer Agent", page_icon="💬", layout="centered")
9
 
10
- # # Clear chat history only once per session
11
- # if "initialized" not in st.session_state:
12
- # st.session_state.initialized = True
13
- # st.session_state.chat_history = []
14
-
15
- st.warning("⚠️ High latency due to CPU usage. Once migrated to GPU, response time will improve significantly.")
16
 
17
  st.title("English Accent Analyzer (Conversational)")
18
  st.subheader("Ask me to analyze a video URL, e.g.: \n\n> *Analyze this video: https://github.com/ash-171/Data-mp4/raw/refs/heads/main/NWRNVTFlRGlnV0FfNDgwcA_out.mp4*")
@@ -41,28 +36,60 @@ user_input = st.chat_input(prompt_label, key=input_key)
41
  deferred_response = None
42
  deferred_spinner_msg = ""
43
 
44
- if user_input:
45
- st.session_state.chat_history.append(HumanMessage(content=user_input))
46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  if re.search(r'https?://\S+', user_input):
48
  accent_tool_obj.last_transcript = ""
49
- deferred_spinner_msg = "Analyzing new video..."
50
- def run_agent():
51
- return analysis_agent.invoke(st.session_state.chat_history)[-1].content
52
  else:
53
- deferred_spinner_msg = "Responding based on transcript..."
54
- def run_agent():
55
- return follow_up_agent.invoke(st.session_state.chat_history).content
56
-
57
- # Run response generation inside spinner after chat is rendered
58
- def process_response():
59
- with st.spinner(deferred_spinner_msg):
60
- try:
61
- result = run_agent()
62
- except Exception as e:
63
- result = f"Error: {str(e)}"
64
- st.session_state.chat_history.append(AIMessage(content=result))
65
- st.rerun()
 
 
 
 
 
 
 
 
 
 
66
 
67
  # Display full chat history (before running spinner)
68
  for msg in st.session_state.chat_history:
 
7
 
8
  st.set_page_config(page_title="Accent Analyzer Agent", page_icon="💬", layout="centered")
9
 
10
+ st.warning("⚠️ High latency(~11min for 0:59s video) due to CPU usage. Once migrated to GPU, response time will improve significantly.")
 
 
 
 
 
11
 
12
  st.title("English Accent Analyzer (Conversational)")
13
  st.subheader("Ask me to analyze a video URL, e.g.: \n\n> *Analyze this video: https://github.com/ash-171/Data-mp4/raw/refs/heads/main/NWRNVTFlRGlnV0FfNDgwcA_out.mp4*")
 
36
  deferred_response = None
37
  deferred_spinner_msg = ""
38
 
39
+ # if user_input:
40
+ # st.session_state.chat_history.append(HumanMessage(content=user_input))
41
 
42
+ # if re.search(r'https?://\S+', user_input):
43
+ # accent_tool_obj.last_transcript = ""
44
+ # deferred_spinner_msg = "Analyzing new video..."
45
+ # def run_agent():
46
+ # return analysis_agent.invoke(st.session_state.chat_history)[-1].content
47
+ # else:
48
+ # deferred_spinner_msg = "Responding based on transcript..."
49
+ # def run_agent():
50
+ # return follow_up_agent.invoke(st.session_state.chat_history).content
51
+
52
+ # # Run response generation inside spinner after chat is rendered
53
+ # def process_response():
54
+ # with st.spinner(deferred_spinner_msg):
55
+ # try:
56
+ # result = run_agent()
57
+ # except Exception as e:
58
+ # result = f"Error: {str(e)}"
59
+ # st.session_state.chat_history.append(AIMessage(content=result))
60
+ # st.rerun()
61
+
62
+ if user_input and not st.session_state.get("processing_started", False):
63
+ st.session_state.chat_history.append(HumanMessage(content=user_input))
64
+
65
  if re.search(r'https?://\S+', user_input):
66
  accent_tool_obj.last_transcript = ""
67
+ st.session_state.deferred_spinner_msg = "Analyzing new video..."
68
+ st.session_state.run_agent_type = "analysis"
 
69
  else:
70
+ st.session_state.deferred_spinner_msg = "Responding based on transcript..."
71
+ st.session_state.run_agent_type = "followup"
72
+
73
+ st.session_state.processing_started = True
74
+ st.rerun()
75
+
76
+ for msg in st.session_state.chat_history:
77
+ with st.chat_message("user" if isinstance(msg, HumanMessage) else "assistant"):
78
+ st.markdown(msg.content)
79
+
80
+ if st.session_state.get("processing_started", False):
81
+ with st.spinner(st.session_state.deferred_spinner_msg):
82
+ try:
83
+ if st.session_state.run_agent_type == "analysis":
84
+ result = analysis_agent.invoke(st.session_state.chat_history)[-1].content
85
+ else:
86
+ result = follow_up_agent.invoke(st.session_state.chat_history).content
87
+ except Exception as e:
88
+ result = f"Error: {str(e)}"
89
+
90
+ st.session_state.chat_history.append(AIMessage(content=result))
91
+ st.session_state.processing_started = False
92
+ st.rerun()
93
 
94
  # Display full chat history (before running spinner)
95
  for msg in st.session_state.chat_history: