@@ -115,25 +115,28 @@ async def on_message(message: cl.Message):
115115
116116 try :
117117 llm_rails = await _get_rails ([config_id ])
118- except ValueError :
118+ except Exception :
119119 log .exception ("Failed to load rails config '%s'" , config_id )
120+ messages .pop ()
121+ cl .user_session .set ("messages" , messages )
120122 await cl .Message (content = f"Error loading guardrails configuration '{ config_id } '. Check server logs." ).send ()
121123 return
122124
123125 response_msg = cl .Message (content = "" )
124126 await response_msg .send ()
125127
126128 full_response = ""
129+ streaming_unsupported = False
127130 try :
128131 try :
129132 async for chunk in llm_rails .stream_async (messages = messages ):
130133 if isinstance (chunk , str ) and chunk :
131134 full_response += chunk
132135 await response_msg .stream_token (chunk )
133136 except StreamingNotSupportedError :
134- full_response = ""
137+ streaming_unsupported = True
135138
136- if not full_response :
139+ if streaming_unsupported :
137140 result = await llm_rails .generate_async (messages = messages )
138141 full_response = result .get ("content" , str (result )) if isinstance (result , dict ) else str (result )
139142 response_msg .content = full_response
@@ -144,5 +147,7 @@ async def on_message(message: cl.Message):
144147
145148 except Exception :
146149 log .exception ("Error generating response for config '%s'" , config_id )
150+ messages .pop ()
151+ cl .user_session .set ("messages" , messages )
147152 response_msg .content = f"An error occurred for configuration '{ config_id } '. Check server logs."
148153 await response_msg .update ()
0 commit comments