JirasakJo commited on
Commit
572cdf9
·
verified ·
1 Parent(s): 5fac735

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -32
app.py CHANGED
@@ -222,47 +222,58 @@ def display_chat_history():
222
  """, unsafe_allow_html=True)
223
 
224
  def submit():
225
- if st.session_state.query_input:
226
- if st.session_state.pipeline is None:
227
- st.error("❌ ไม่สามารถเชื่อมต่อกับระบบได้ กรุณาลองใหม่อีกครั้ง")
228
- return
229
 
230
- # Store user query
231
- user_query = st.session_state.query_input
232
- st.session_state.chat_history.append(("user", user_query))
233
 
234
- # Prevent duplicate runs by checking if a query is already being processed
235
- if 'processing_query' in st.session_state and st.session_state.processing_query:
236
- return
237
 
238
- # Mark that a query is being processed
239
- st.session_state.processing_query = True
 
240
 
241
- # Add loading message as an assistant's response
242
- st.session_state.chat_history.append(("assistant", {"answer": "🔍 กำลังค้นหาคำตอบ...", "documents": [], "query_info": {}}))
243
- st.rerun() # Trigger UI update for spinner
244
 
245
- try:
246
- # Process query
247
- result = st.session_state.pipeline.process_query(user_query)
 
 
 
 
 
 
 
248
 
249
- # Replace loading message with actual response
250
- st.session_state.chat_history[-1] = ("assistant", {
251
- "answer": result["answer"],
252
- "documents": result["documents"],
253
- "query_info": result["query_info"]
254
- })
255
 
256
- except Exception as e:
257
- # Replace spinner with error message
258
- st.session_state.chat_history[-1] = ("assistant", {"answer": f"❌ เกิดข้อผิดพลาด: {str(e)}", "documents": [], "query_info": {}})
 
 
 
 
 
 
 
 
 
 
 
259
 
260
- # Reset input and allow new queries
261
- st.session_state.query_input = ""
262
- st.session_state.processing_query = False
263
- st.rerun()
264
 
265
-
266
  def main():
267
  # Page config
268
  st.set_page_config(
 
222
  """, unsafe_allow_html=True)
223
 
224
  def submit():
225
+ if not st.session_state.query_input:
226
+ st.warning("⚠️ กรุณาระบุคำถาม")
227
+ return
 
228
 
229
+ if st.session_state.pipeline is None:
230
+ st.error("❌ ไม่สามารถเชื่อมต่อกับระบบได้ กรุณาลองใหม่อีกครั้ง")
231
+ return
232
 
233
+ # Store user query
234
+ user_query = st.session_state.query_input
235
+ st.session_state.chat_history.append(("user", user_query))
236
 
237
+ # Avoid infinite reruns
238
+ if "processing_query" in st.session_state and st.session_state.processing_query:
239
+ return
240
 
241
+ st.session_state.processing_query = True
 
 
242
 
243
+ # Display a loading message
244
+ st.session_state.chat_history.append(("assistant", {
245
+ "answer": "🔍 กำลังค้นหาคำตอบ...",
246
+ "documents": [],
247
+ "query_info": {}
248
+ }))
249
+
250
+ # **No `st.rerun()` here yet! Just update chat**
251
+ st.session_state.query_input = "" # Clear input after submission
252
+ st.experimental_rerun() # This will force a refresh once
253
 
254
+ try:
255
+ # Process the query
256
+ result = st.session_state.pipeline.process_query(user_query)
 
 
 
257
 
258
+ # Replace loading message with actual answer
259
+ st.session_state.chat_history[-1] = ("assistant", {
260
+ "answer": result["answer"],
261
+ "documents": result["documents"],
262
+ "query_info": result["query_info"]
263
+ })
264
+
265
+ except Exception as e:
266
+ # Replace with an error message if query fails
267
+ st.session_state.chat_history[-1] = ("assistant", {
268
+ "answer": f"❌ เกิดข้อผิดพลาด: {str(e)}",
269
+ "documents": [],
270
+ "query_info": {}
271
+ })
272
 
273
+ # Reset processing flag
274
+ st.session_state.processing_query = False
275
+ st.experimental_rerun() # Refresh UI once processing is done
 
276
 
 
277
  def main():
278
  # Page config
279
  st.set_page_config(