Spaces:
Running
Running
Update app.py
Browse files
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})
|
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 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
|
|
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() #
|
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:
|