diff --git a/modules/html_generator.py b/modules/html_generator.py
index 2c3a3e70..5b694ea4 100644
--- a/modules/html_generator.py
+++ b/modules/html_generator.py
@@ -528,32 +528,40 @@ def generate_instruct_html(history, last_message_only=False):
for i in range(start_idx, end_idx):
row_visible = history['visible'][i]
row_internal = history['internal'][i]
- converted_visible = [convert_to_markdown_wrapped(entry, message_id=i, use_cache=i != len(history['visible']) - 1) for entry in row_visible]
- # Get timestamps and attachments
- user_timestamp = format_message_timestamp(history, "user", i)
+ # Only convert what we need
+ if last_message_only:
+ converted_visible = [None, convert_to_markdown_wrapped(row_visible[1], message_id=i, use_cache=i != len(history['visible']) - 1)]
+ else:
+ converted_visible = [convert_to_markdown_wrapped(entry, message_id=i, use_cache=i != len(history['visible']) - 1) for entry in row_visible]
+
+ # Get assistant timestamps and attachments (always needed)
assistant_timestamp = format_message_timestamp(history, "assistant", i)
- user_attachments = format_message_attachments(history, "user", i)
assistant_attachments = format_message_attachments(history, "assistant", i)
- # Create info buttons for timestamps if they exist
- info_message_user = ""
- if user_timestamp:
- tooltip_text = get_message_tooltip(history, "user", i)
- info_message_user = info_button.replace('title="message"', f'title="{html.escape(tooltip_text)}"')
+ # Only compute user-related variables and generate user message when needed
+ if not last_message_only and converted_visible[0]:
+ user_timestamp = format_message_timestamp(history, "user", i)
+ user_attachments = format_message_attachments(history, "user", i)
- info_message_assistant = ""
- if assistant_timestamp:
- tooltip_text = get_message_tooltip(history, "assistant", i)
- info_message_assistant = info_button.replace('title="message"', f'title="{html.escape(tooltip_text)}"')
+ # Create info button for user timestamp if it exists
+ info_message_user = ""
+ if user_timestamp:
+ tooltip_text = get_message_tooltip(history, "user", i)
+ info_message_user = info_button.replace('title="message"', f'title="{html.escape(tooltip_text)}"')
- # Generate user message if not empty
- if converted_visible[0] and not last_message_only:
+ # Generate user message
output += generate_instruct_message_html(
"user", converted_visible[0], row_internal[0], i,
user_attachments, actions_html(history, i, "user", info_message_user)
)
+ # Create info button for assistant timestamp if it exists
+ info_message_assistant = ""
+ if assistant_timestamp:
+ tooltip_text = get_message_tooltip(history, "assistant", i)
+ info_message_assistant = info_button.replace('title="message"', f'title="{html.escape(tooltip_text)}"')
+
# Generate assistant message
output += generate_instruct_message_html(
"assistant", converted_visible[1], row_internal[1], i,
@@ -577,10 +585,6 @@ def generate_cai_chat_html(history, name1, name2, style, character, reset_cache=
f'
'
if Path("user_data/cache/pfp_character_thumb.png").exists() else ''
)
- img_me = (
- f'
'
- if Path("user_data/cache/pfp_me.png").exists() else ''
- )
# Determine range - either last message only or all messages
start_idx = len(history['visible']) - 1 if last_message_only else 0
@@ -589,16 +593,28 @@ def generate_cai_chat_html(history, name1, name2, style, character, reset_cache=
for i in range(start_idx, end_idx):
row_visible = history['visible'][i]
row_internal = history['internal'][i]
- converted_visible = [convert_to_markdown_wrapped(entry, message_id=i, use_cache=i != len(history['visible']) - 1) for entry in row_visible]
- # Get timestamps and attachments
- user_timestamp = format_message_timestamp(history, "user", i, tooltip_include_timestamp=False)
+ # Only convert what we need
+ if last_message_only:
+ converted_visible = [None, convert_to_markdown_wrapped(row_visible[1], message_id=i, use_cache=i != len(history['visible']) - 1)]
+ else:
+ converted_visible = [convert_to_markdown_wrapped(entry, message_id=i, use_cache=i != len(history['visible']) - 1) for entry in row_visible]
+
+ # Get assistant timestamps and attachments (always needed)
assistant_timestamp = format_message_timestamp(history, "assistant", i, tooltip_include_timestamp=False)
- user_attachments = format_message_attachments(history, "user", i)
assistant_attachments = format_message_attachments(history, "assistant", i)
- # Generate user message if not empty
- if converted_visible[0] and not last_message_only:
+ # Only compute user-related variables and generate user message when needed
+ if not last_message_only and converted_visible[0]:
+ img_me = (
+ f'
'
+ if Path("user_data/cache/pfp_me.png").exists() else ''
+ )
+
+ user_timestamp = format_message_timestamp(history, "user", i, tooltip_include_timestamp=False)
+ user_attachments = format_message_attachments(history, "user", i)
+
+ # Generate user message
output += generate_cai_message_html(
"user", converted_visible[0], row_internal[0], i,
user_attachments, actions_html(history, i, "user"),
@@ -631,32 +647,40 @@ def generate_chat_html(history, name1, name2, reset_cache=False, last_message_on
for i in range(start_idx, end_idx):
row_visible = history['visible'][i]
row_internal = history['internal'][i]
- converted_visible = [convert_to_markdown_wrapped(entry, message_id=i, use_cache=i != len(history['visible']) - 1) for entry in row_visible]
- # Get timestamps and attachments
- user_timestamp = format_message_timestamp(history, "user", i)
+ # Only convert what we need
+ if last_message_only:
+ converted_visible = [None, convert_to_markdown_wrapped(row_visible[1], message_id=i, use_cache=i != len(history['visible']) - 1)]
+ else:
+ converted_visible = [convert_to_markdown_wrapped(entry, message_id=i, use_cache=i != len(history['visible']) - 1) for entry in row_visible]
+
+ # Get assistant timestamps and attachments (always needed)
assistant_timestamp = format_message_timestamp(history, "assistant", i)
- user_attachments = format_message_attachments(history, "user", i)
assistant_attachments = format_message_attachments(history, "assistant", i)
- # Create info buttons for timestamps if they exist
- info_message_user = ""
- if user_timestamp:
- tooltip_text = get_message_tooltip(history, "user", i)
- info_message_user = info_button.replace('title="message"', f'title="{html.escape(tooltip_text)}"')
+ # Only compute user-related variables and generate user message when needed
+ if not last_message_only and converted_visible[0]:
+ user_timestamp = format_message_timestamp(history, "user", i)
+ user_attachments = format_message_attachments(history, "user", i)
- info_message_assistant = ""
- if assistant_timestamp:
- tooltip_text = get_message_tooltip(history, "assistant", i)
- info_message_assistant = info_button.replace('title="message"', f'title="{html.escape(tooltip_text)}"')
+ # Create info button for user timestamp if it exists
+ info_message_user = ""
+ if user_timestamp:
+ tooltip_text = get_message_tooltip(history, "user", i)
+ info_message_user = info_button.replace('title="message"', f'title="{html.escape(tooltip_text)}"')
- # Generate user message if not empty
- if converted_visible[0] and not last_message_only:
+ # Generate user message
output += generate_wpp_message_html(
"user", converted_visible[0], row_internal[0], i,
user_attachments, actions_html(history, i, "user", info_message_user)
)
+ # Create info button for assistant timestamp if it exists
+ info_message_assistant = ""
+ if assistant_timestamp:
+ tooltip_text = get_message_tooltip(history, "assistant", i)
+ info_message_assistant = info_button.replace('title="message"', f'title="{html.escape(tooltip_text)}"')
+
# Generate assistant message
output += generate_wpp_message_html(
"assistant", converted_visible[1], row_internal[1], i,