IAMTFRMZA commited on
Commit
bcaf273
Β·
verified Β·
1 Parent(s): 4cc5928

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -17
app.py CHANGED
@@ -54,7 +54,7 @@ show_image = st.sidebar.checkbox("πŸ“– Show Document Image", value=True)
54
 
55
  # ------------------ Assistant Query Function ------------------
56
  def query_assistant(prompt):
57
- st.session_state.messages.insert(0, {"role": "user", "content": prompt}) # Insert at top
58
 
59
  try:
60
  if st.session_state.thread_id is None:
@@ -84,21 +84,22 @@ def query_assistant(prompt):
84
  break
85
  time.sleep(1)
86
 
87
- messages = client.beta.threads.messages.list(thread_id=thread_id)
88
- for message in reversed(messages.data):
89
- if message.role == "assistant":
90
- assistant_message = message.content[0].text.value
91
- st.session_state.messages.insert(0, {"role": "assistant", "content": assistant_message})
92
-
93
- # Extract GitHub image URL if available
94
- image_match = re.search(
95
- r'https://raw\.githubusercontent\.com/AndrewLORTech/surgical-pathology-manual/main/[\w\-/]*\.png',
96
- assistant_message
97
- )
98
- if image_match:
99
- st.session_state.image_url = image_match.group(0)
100
- st.session_state.image_updated = True
101
- return assistant_message
 
102
 
103
  except Exception as e:
104
  st.error(f"❌ Error: {str(e)}")
@@ -116,7 +117,7 @@ with center:
116
  prompt = st.text_input("πŸ’‘ Ask a question about the document:", key="chat_input")
117
  if prompt:
118
  query_assistant(prompt)
119
- st.rerun() # βœ… Updated to current Streamlit standard
120
 
121
  # Show messages: latest at top
122
  for message in st.session_state.messages:
 
54
 
55
  # ------------------ Assistant Query Function ------------------
56
  def query_assistant(prompt):
57
+ st.session_state.messages.insert(0, {"role": "user", "content": prompt})
58
 
59
  try:
60
  if st.session_state.thread_id is None:
 
84
  break
85
  time.sleep(1)
86
 
87
+ # βœ… Only fetch the latest assistant message to avoid infinite loop
88
+ messages = client.beta.threads.messages.list(thread_id=thread_id, limit=1)
89
+ latest_message = messages.data[0]
90
+ if latest_message.role == "assistant":
91
+ assistant_message = latest_message.content[0].text.value
92
+ st.session_state.messages.insert(0, {"role": "assistant", "content": assistant_message})
93
+
94
+ # Extract GitHub image URL if available
95
+ image_match = re.search(
96
+ r'https://raw\.githubusercontent\.com/AndrewLORTech/surgical-pathology-manual/main/[\w\-/]*\.png',
97
+ assistant_message
98
+ )
99
+ if image_match:
100
+ st.session_state.image_url = image_match.group(0)
101
+ st.session_state.image_updated = True
102
+ return assistant_message
103
 
104
  except Exception as e:
105
  st.error(f"❌ Error: {str(e)}")
 
117
  prompt = st.text_input("πŸ’‘ Ask a question about the document:", key="chat_input")
118
  if prompt:
119
  query_assistant(prompt)
120
+ st.rerun() # Rerun to refresh with new message
121
 
122
  # Show messages: latest at top
123
  for message in st.session_state.messages: