import gradio as gr # 질문 리스트 questions = [ "질문 1: 새로운 환경에서 당신은 어떻게 행동하나요?", "질문 2: 문제를 해결할 때 당신의 접근 방식은 무엇인가요?", "질문 3: 여가 시간을 보낼 때 당신의 선호는 무엇인가요?", "질문 4: 결정을 내릴 때 중요하게 생각하는 것은 무엇인가요?", "질문 5: 프로젝트를 수행할 때 당신의 스타일은 어떤가요?", "질문 6: 스트레스를 받을 때 당신의 대처 방식은?", "질문 7: 다른 사람과의 관계에서 당신은 어떤 타입인가요?", "질문 8: 새로운 아이디어나 이론을 접할 때 당신의 반응은?", "질문 9: 일상적인 결정을 내릴 때 당신은 어떻게 하나요?", "질문 10: 팀 프로젝트에서 당신의 역할은 주로 무엇인가요?" ] # 객관식 옵션 options = [ ["계획대로 움직인다", "상황에 따라 유연하게 대응한다"], ["논리적으로 분석한다", "직관에 의존한다"], ["친구들과 시간을 보낸다", "혼자만의 시간을 선호한다"], ["사실과 데이터", "사람들의 감정과 의견"], ["철저한 계획에 따른다", "즉흥적으로 움직인다"], ["문제를 해결하기 위해 분석한다", "감정을 표현하거나 상담한다"], ["사교적이고 활동적", "조용하고 내성적"], ["호기심을 가지고 탐구한다", "실용적인 측면을 우선 고려한다"], ["계획을 세워서 결정한다", "직감적으로 결정한다"], ["리더십을 발휘한다", "팀원으로서 지원한다"] ] # MBTI 유형 계산 함수 def calculate_mbti(*answers): # 단순화된 예시 로직: 선택된 옵션의 인덱스를 기반으로 MBTI 유형 결정 mbti_type = "INFP" # 예시 결과 mbti_interpretation = "당신은 이상적이고, 열정적이며, 창의적인 사람입니다." # 예시 해석 return mbti_type, mbti_interpretation # Gradio 인터페이스 구성 iface = gr.Interface( fn=calculate_mbti, inputs=[gr.Radio(options[i], label=questions[i]) for i in range(10)], outputs=[ gr.Textbox(label="당신의 MBTI 유형"), gr.Textbox(label="유형 해석") ], title="MBTI 진단 테스트", description="10개의 질문에 답하여 당신의 MBTI 유형을 알아보세요." ) # 인터페이스 실행 if __name__ == "__main__": iface.launch()