Fix immediate user message display and ensure high DPI in exec environment
Browse files- User messages now appear in blue immediately without rerun delay
- Removed style file dependency in exec environment for reliable DPI
- Manual matplotlib configuration ensures 1200 DPI is always applied
- Fixed chat history to avoid message duplication during processing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
app.py
CHANGED
|
@@ -526,8 +526,13 @@ def show_custom_response(response):
|
|
| 526 |
|
| 527 |
|
| 528 |
# Chat history
|
| 529 |
-
# Display chat history
|
| 530 |
for response_id, response in enumerate(st.session_state.responses):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 531 |
status = show_custom_response(response)
|
| 532 |
|
| 533 |
# Show feedback section for assistant responses
|
|
@@ -626,6 +631,15 @@ if prompt and not st.session_state.get("processing"):
|
|
| 626 |
prompt = None
|
| 627 |
|
| 628 |
if prompt:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 629 |
# Add user input to chat history
|
| 630 |
user_response = get_from_user(prompt)
|
| 631 |
st.session_state.responses.append(user_response)
|
|
@@ -634,9 +648,6 @@ if prompt and not st.session_state.get("processing"):
|
|
| 634 |
st.session_state.processing = True
|
| 635 |
st.session_state.current_model = model_name
|
| 636 |
st.session_state.current_question = prompt
|
| 637 |
-
|
| 638 |
-
# Rerun to show user message with proper styling
|
| 639 |
-
st.rerun()
|
| 640 |
|
| 641 |
# Process the question if we're in processing state
|
| 642 |
if st.session_state.get("processing"):
|
|
|
|
| 526 |
|
| 527 |
|
| 528 |
# Chat history
|
| 529 |
+
# Display chat history (skip last user message if currently processing to avoid duplication)
|
| 530 |
for response_id, response in enumerate(st.session_state.responses):
|
| 531 |
+
# Skip showing the last user message if we're processing (already shown above)
|
| 532 |
+
if (st.session_state.get("processing") and
|
| 533 |
+
response_id == len(st.session_state.responses) - 1 and
|
| 534 |
+
response["role"] == "user"):
|
| 535 |
+
continue
|
| 536 |
status = show_custom_response(response)
|
| 537 |
|
| 538 |
# Show feedback section for assistant responses
|
|
|
|
| 631 |
prompt = None
|
| 632 |
|
| 633 |
if prompt:
|
| 634 |
+
# Show user message immediately with blue styling
|
| 635 |
+
st.markdown(f"""
|
| 636 |
+
<div style='display: flex; justify-content: flex-end; margin: 1rem 0;'>
|
| 637 |
+
<div class='user-message'>
|
| 638 |
+
{prompt}
|
| 639 |
+
</div>
|
| 640 |
+
</div>
|
| 641 |
+
""", unsafe_allow_html=True)
|
| 642 |
+
|
| 643 |
# Add user input to chat history
|
| 644 |
user_response = get_from_user(prompt)
|
| 645 |
st.session_state.responses.append(user_response)
|
|
|
|
| 648 |
st.session_state.processing = True
|
| 649 |
st.session_state.current_model = model_name
|
| 650 |
st.session_state.current_question = prompt
|
|
|
|
|
|
|
|
|
|
| 651 |
|
| 652 |
# Process the question if we're in processing state
|
| 653 |
if st.session_state.get("processing"):
|
src.py
CHANGED
|
@@ -145,11 +145,14 @@ def ask_question(model_name, question):
|
|
| 145 |
"""Safely execute generated code and handle errors"""
|
| 146 |
local_vars = {}
|
| 147 |
|
| 148 |
-
# Force matplotlib to use high resolution settings in exec environment
|
| 149 |
-
|
| 150 |
plt.rcParams['figure.dpi'] = 1200
|
| 151 |
-
plt.rcParams['savefig.dpi'] = 1200
|
| 152 |
plt.rcParams['figure.figsize'] = [12, 7]
|
|
|
|
|
|
|
|
|
|
| 153 |
plt.rcParams['font.size'] = 11
|
| 154 |
plt.rcParams['axes.titlesize'] = 14
|
| 155 |
plt.rcParams['axes.labelsize'] = 12
|
|
|
|
| 145 |
"""Safely execute generated code and handle errors"""
|
| 146 |
local_vars = {}
|
| 147 |
|
| 148 |
+
# Force matplotlib to use ULTRA high resolution settings in exec environment
|
| 149 |
+
# Skip style file and set everything manually to ensure it works
|
| 150 |
plt.rcParams['figure.dpi'] = 1200
|
| 151 |
+
plt.rcParams['savefig.dpi'] = 1200
|
| 152 |
plt.rcParams['figure.figsize'] = [12, 7]
|
| 153 |
+
plt.rcParams['figure.facecolor'] = 'white'
|
| 154 |
+
plt.rcParams['savefig.facecolor'] = 'white'
|
| 155 |
+
plt.rcParams['savefig.bbox'] = 'tight'
|
| 156 |
plt.rcParams['font.size'] = 11
|
| 157 |
plt.rcParams['axes.titlesize'] = 14
|
| 158 |
plt.rcParams['axes.labelsize'] = 12
|