Pop user message from multiturn if error is encountered #198
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If a user has multiturn enabled but encounters an error, they are permanently stuck in a state where there are 2+ consecutive user messages in the conversation which prevents them from using the app at all unless they reload the page.
One option to fix this is to only save messages if the content can be successfully parsed. As such, if an error is encountered and we couldn't parse the assistant message, we remove the user message from the Streamlit session state.
Here is an example of the behavior, locally I've forced the API call to intermittently return an error. Note that we run into an error but are able to send later messages successfully, preserving multiturn context:
CleanShot.2024-10-24.at.15.25.05.mp4
Single-turn example:
CleanShot.2024-10-24.at.15.26.40.mp4