From 09f794938fd1841b21ef8b6f9e1a13dfe72531ae Mon Sep 17 00:00:00 2001 From: Taksh Date: Wed, 24 Jun 2026 15:56:40 +0530 Subject: [PATCH] Fix arena moderation skipping right model conversation history In side-by-side arena modes, moderation was reading states[0] twice instead of states[1] for the right model, and vision anony passed only the current user message instead of full conversation history. Co-authored-by: Cursor --- fastchat/serve/gradio_block_arena_anony.py | 2 +- fastchat/serve/gradio_block_arena_vision_anony.py | 7 ++++++- fastchat/serve/gradio_block_arena_vision_named.py | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/fastchat/serve/gradio_block_arena_anony.py b/fastchat/serve/gradio_block_arena_anony.py index 625c69c44..90048ead2 100644 --- a/fastchat/serve/gradio_block_arena_anony.py +++ b/fastchat/serve/gradio_block_arena_anony.py @@ -307,7 +307,7 @@ def add_text( model_list = [states[i].model_name for i in range(num_sides)] # turn on moderation in battle mode all_conv_text_left = states[0].conv.get_prompt() - all_conv_text_right = states[0].conv.get_prompt() + all_conv_text_right = states[1].conv.get_prompt() all_conv_text = ( all_conv_text_left[-1000:] + all_conv_text_right[-1000:] + "\nuser: " + text ) diff --git a/fastchat/serve/gradio_block_arena_vision_anony.py b/fastchat/serve/gradio_block_arena_vision_anony.py index d4d4d484e..63cf65f6a 100644 --- a/fastchat/serve/gradio_block_arena_vision_anony.py +++ b/fastchat/serve/gradio_block_arena_vision_anony.py @@ -308,11 +308,16 @@ def add_text( ) model_list = [states[i].model_name for i in range(num_sides)] + all_conv_text_left = states[0].conv.get_prompt() + all_conv_text_right = states[1].conv.get_prompt() + all_conv_text = ( + all_conv_text_left[-1000:] + all_conv_text_right[-1000:] + "\nuser: " + text + ) images = convert_images_to_conversation_format(images) text, image_flagged, csam_flag = moderate_input( - state0, text, text, model_list, images, ip + state0, text, all_conv_text, model_list, images, ip ) conv = states[0].conv diff --git a/fastchat/serve/gradio_block_arena_vision_named.py b/fastchat/serve/gradio_block_arena_vision_named.py index 7c653acf3..334686773 100644 --- a/fastchat/serve/gradio_block_arena_vision_named.py +++ b/fastchat/serve/gradio_block_arena_vision_named.py @@ -242,7 +242,7 @@ def add_text( model_list = [states[i].model_name for i in range(num_sides)] all_conv_text_left = states[0].conv.get_prompt() - all_conv_text_right = states[0].conv.get_prompt() + all_conv_text_right = states[1].conv.get_prompt() all_conv_text = ( all_conv_text_left[-1000:] + all_conv_text_right[-1000:] + "\nuser: " + text )