#!/usr/bin/env python3 """KAIdol A/B Test Arena - Simple Version""" import gradio as gr def chat_response(message, character): """Mock 응답 생성""" thinking = f"{character}의 입장에서 생각해보면... 이 메시지에 어떻게 반응해야 할까?" response = f"안녕~ 반가워! 나는 {character}야~" return f"{thinking}\n\n{response}" # 캐릭터 목록 CHARACTERS = ["강율", "서이안", "이지후", "차도하", "최민"] # 모델 목록 MODELS = [ "hyperclovax-32b-dpo-v5", "qwen2.5-14b-dpo-v5", "qwen2.5-7b-dpo-v5", "exaone-7.8b-dpo-v5", ] with gr.Blocks(title="KAIdol A/B Test Arena") as demo: gr.Markdown("# KAIdol A/B Test Arena") gr.Markdown("K-pop 아이돌 롤플레이 모델 A/B 비교 평가") gr.Markdown("**Mock 모드**: 실제 모델 없이 테스트 응답을 생성합니다.") with gr.Row(): character = gr.Dropdown(choices=CHARACTERS, value="강율", label="캐릭터") model_a = gr.Dropdown(choices=MODELS, value=MODELS[0], label="Model A") model_b = gr.Dropdown(choices=MODELS, value=MODELS[1], label="Model B") with gr.Row(): with gr.Column(): gr.Markdown("### Model A") response_a = gr.Textbox(label="응답", lines=5) with gr.Column(): gr.Markdown("### Model B") response_b = gr.Textbox(label="응답", lines=5) user_input = gr.Textbox(label="메시지", placeholder="아이돌에게 메시지를 보내세요...") submit_btn = gr.Button("전송", variant="primary") def generate(msg, char, ma, mb): return chat_response(msg, char), chat_response(msg, char) submit_btn.click( fn=generate, inputs=[user_input, character, model_a, model_b], outputs=[response_a, response_b] ) if __name__ == "__main__": demo.launch(server_name="0.0.0.0", server_port=7860)