import gradio as gr import time # 개구리 점프 GIF (상단 UI + 로딩 애니메이션) FROG_GIF = "https://media.giphy.com/media/ICOgUNjpvO0PC/giphy.gif" gr.Image("frog_jump.gif", show_label=False) # ---------------------------------------------------- # 1) LLM 엔진 선택 처리 # ---------------------------------------------------- def switch_engine(engine_name): # 개구리가 점프하는 효과를 주기 위한 출력 frog_html = f"""

🐸 개구리가 {engine_name} 엔진으로 점프 중... gegulgegul...

""" return frog_html # ---------------------------------------------------- # 2) 챗 기능 # ---------------------------------------------------- def chat(engine, history, message): # 메시지 보낼 때 개구리 점프 애니메이션 출력 loading_html = f"""

🐸 개구리가 생각 중... gegulgegul...

""" yield history + [(message, loading_html)] # === LLM 연결은 나중에 키 넣으면 변경 가능 === # 임시로 반응만 출력 time.sleep(0.8) response = f"{engine} 엔진 응답: {message} (임시 Mock 응답)" yield history + [(message, response)] # ---------------------------------------------------- # 3) 최상단 개구리 헤더 HTML # ---------------------------------------------------- header_html = f"""

🐸 Upscale Frog — Multi-LLM RAG Engine

gegulgegul v1.0 — Full Frog Edition

""" # ---------------------------------------------------- # 4) Gradio UI # ---------------------------------------------------- def ui(): with gr.Blocks(css=".gradio-container {background-color: #101010;}") as demo: # 상단 개구리 헤더 gr.HTML(header_html) # LLM 선택 박스 engine_choice = gr.Dropdown( ["GPT-4o-mini", "Gemini-Pro", "Grok-Mixtral"], label="LLM 엔진 선택" ) # 엔진 바꿀 때 개구리 점프 출력 engine_output = gr.HTML() engine_choice.change(fn=switch_engine, inputs=engine_choice, outputs=engine_output) chat_history = gr.Chatbot() message_box = gr.Textbox(label="메시지 입력") # 전송 버튼 send_btn = gr.Button("Send") send_btn.click( fn=chat, inputs=[engine_choice, chat_history, message_box], outputs=chat_history ) return demo demo = ui() demo.launch()