import gradio as gr RESPONSES = { "hello": "안녕하세요! 무엇을 도와드릴까요?", "가격": "가격 정보는 아직 준비 중이에요.", } def normalize_message(msg): if msg is None: return "" if isinstance(msg, dict) and "content" in msg: return str(msg["content"]) if isinstance(msg, (list, tuple)): try: last = msg[-1] if isinstance(last, dict) and "content" in last: return str(last["content"]) except Exception: pass return " ".join(map(str, msg)) return str(msg) def echo(message, history): text = normalize_message(message).strip() low = text.lower() for k, v in RESPONSES.items(): if k.lower() in low: return v return f"(에코) {text}" demo = gr.ChatInterface( fn=echo, type="messages", # 메시지 포맷 맞추기 chatbot=gr.Chatbot(type="messages", height=420, show_copy_button=True), autofocus=True, ) if __name__ == "__main__": demo.launch(server_name="0.0.0.0", server_port=7860)