import gradio as gr # 질문 리스트 questions = [ "새로운 사람들과 만날 때 주로 어떻게 행동하나요?", "계획을 세우는 것보다 spontaneity를 선호하나요?", "세부적인 사실보다는 큰 그림을 보는 것을 선호하나요?", "결정을 내릴 때 논리와 이성을 더 중시하나요, 아니면 사람들의 감정과 의견을 더 중시하나요?", "프로젝트를 시작할 때 바로 실행에 옮기기보다는 계획을 세우는 것을 선호하나요?", "새로운 아이디어보다는 검증된 아이디어에 더 의존하는 편인가요?", "사람들과 어울릴 때 에너지를 얻나요, 아니면 혼자 있을 때 에너지를 얻나요?", "실용적인 해결책을 선호하나요, 아니면 창의적인 해결책을 선호하나요?", "감정을 표현하는 것에 있어서 솔직한 편인가요, 아니면 조심스러운 편인가요?", "계획에 따라 일하는 것을 선호하나요, 아니면 유연하게 일하는 것을 선호하나요?" ] # 선택지 choices = ["매우 그렇다", "그렇다", "아니다", "전혀 아니다"] # MBTI 유형 계산 함수 def calculate_mbti(*answers): # 각 MBTI 축에 대한 점수를 계산합니다. scores = {"E": 0, "I": 0, "S": 0, "N": 0, "T": 0, "F": 0, "J": 0, "P": 0} # 답변에 따라 점수를 할당합니다. (여기서는 단순화를 위해 모든 답변에 동일한 가중치를 적용합니다.) for answer in answers: if answer == "매우 그렇다": scores["E"] += 2 elif answer == "그렇다": scores["I"] += 1 elif answer == "아니다": scores["N"] += 1 elif answer == "전혀 아니다": scores["S"] += 2 # 가장 높은 점수를 가진 축을 기반으로 MBTI 유형을 결정합니다. mbti_type = "" mbti_type += "E" if scores["E"] >= scores["I"] else "I" mbti_type += "S" if scores["S"] >= scores["N"] else "N" mbti_type += "T" if scores["T"] >= scores["F"] else "F" mbti_type += "J" if scores["J"] >= scores["P"] else "P" # MBTI 유형에 따른 해석 interpretations = { "INTJ": "전략가, 독창적이고 독립적인 사고를 가진 사람입니다.", # 나머지 15개 유형에 대한 해석 추가... } return f"당신의 MBTI 유형은 {mbti_type}입니다. {interpretations.get(mbti_type, '해석 준비 중입니다.')}" # Gradio 인터페이스 iface = gr.Interface( fn=calculate_mbti, inputs=[gr.Radio(choices, label=question) for question in questions], outputs="text", title="MBTI 진단 테스트", description="다음 질문에 답하여 당신의 MBTI 유형을 알아보세요." ) iface.launch()