Spaces:
Sleeping
Sleeping
Add more exception handling
Browse files
app.py
CHANGED
|
@@ -10,6 +10,7 @@ import tempfile
|
|
| 10 |
from typing import List, Union
|
| 11 |
|
| 12 |
import json5
|
|
|
|
| 13 |
import streamlit as st
|
| 14 |
from langchain_community.chat_message_histories import StreamlitChatMessageHistory
|
| 15 |
from langchain_core.messages import HumanMessage
|
|
@@ -198,15 +199,24 @@ def set_up_chat_ui():
|
|
| 198 |
progress_bar = st.progress(0, 'Preparing to call LLM...')
|
| 199 |
response = ''
|
| 200 |
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 209 |
)
|
|
|
|
|
|
|
|
|
|
| 210 |
|
| 211 |
history.add_user_message(prompt)
|
| 212 |
history.add_ai_message(response)
|
|
@@ -272,6 +282,26 @@ def generate_slide_deck(json_str: str) -> Union[pathlib.Path, None]:
|
|
| 272 |
)
|
| 273 |
|
| 274 |
return None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 275 |
|
| 276 |
if DOWNLOAD_FILE_KEY in st.session_state:
|
| 277 |
path = pathlib.Path(st.session_state[DOWNLOAD_FILE_KEY])
|
|
|
|
| 10 |
from typing import List, Union
|
| 11 |
|
| 12 |
import json5
|
| 13 |
+
import requests
|
| 14 |
import streamlit as st
|
| 15 |
from langchain_community.chat_message_histories import StreamlitChatMessageHistory
|
| 16 |
from langchain_core.messages import HumanMessage
|
|
|
|
| 199 |
progress_bar = st.progress(0, 'Preparing to call LLM...')
|
| 200 |
response = ''
|
| 201 |
|
| 202 |
+
try:
|
| 203 |
+
for chunk in _get_llm().stream(formatted_template):
|
| 204 |
+
response += chunk
|
| 205 |
+
|
| 206 |
+
# Update the progress bar
|
| 207 |
+
progress_percentage = min(len(response) / APPROX_TARGET_LENGTH, 0.95)
|
| 208 |
+
progress_bar.progress(
|
| 209 |
+
progress_percentage,
|
| 210 |
+
text='Streaming content...this might take a while...'
|
| 211 |
+
)
|
| 212 |
+
except requests.exceptions.ConnectionError:
|
| 213 |
+
msg = (
|
| 214 |
+
'A connection error occurred while streaming content from the LLM endpoint.'
|
| 215 |
+
' Unfortunately, the slide deck cannot be generated. Please try again later.'
|
| 216 |
)
|
| 217 |
+
logger.error(msg)
|
| 218 |
+
st.error(msg)
|
| 219 |
+
return
|
| 220 |
|
| 221 |
history.add_user_message(prompt)
|
| 222 |
history.add_ai_message(response)
|
|
|
|
| 282 |
)
|
| 283 |
|
| 284 |
return None
|
| 285 |
+
except RecursionError:
|
| 286 |
+
st.error(
|
| 287 |
+
'Encountered an error while parsing JSON...'
|
| 288 |
+
'the slide deck cannot be created, unfortunately ☹'
|
| 289 |
+
'\nPlease try again later.'
|
| 290 |
+
)
|
| 291 |
+
logger.error('Caught RecursionError while parsing JSON. Cannot generate the slide deck!')
|
| 292 |
+
|
| 293 |
+
return None
|
| 294 |
+
except Exception:
|
| 295 |
+
st.error(
|
| 296 |
+
'Encountered an error while parsing JSON...'
|
| 297 |
+
'the slide deck cannot be created, unfortunately ☹'
|
| 298 |
+
'\nPlease try again later.'
|
| 299 |
+
)
|
| 300 |
+
logger.error(
|
| 301 |
+
'Caught ValueError: failed to parse JSON!'
|
| 302 |
+
)
|
| 303 |
+
|
| 304 |
+
return None
|
| 305 |
|
| 306 |
if DOWNLOAD_FILE_KEY in st.session_state:
|
| 307 |
path = pathlib.Path(st.session_state[DOWNLOAD_FILE_KEY])
|