MBTI_TEST / app.py
honey90's picture
Update app.py
e37398f verified
import gradio as gr
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 in scores:
scores[answer] += 1
# κ°€μž₯ 높은 점수λ₯Ό 가진 MBTI μœ ν˜• κ²°μ •
mbti_type = ""
for dimension in ["EI", "SN", "TF", "JP"]:
if scores[dimension[0]] >= scores[dimension[1]]:
mbti_type += dimension[0]
else:
mbti_type += dimension[1]
# MBTI μœ ν˜•μ— λŒ€ν•œ κ°„λ‹¨ν•œ 해석 제곡
interpretations = {
"ISTJ": "μ‹€μš©μ μ΄κ³  신쀑함",
"ISFJ": "μ„Έμ‹¬ν•˜κ³  λ”°λœ»ν•¨",
"INFJ": "직관적이고 섬세함",
"INTJ": "μ „λž΅μ μ΄κ³  λ…μ°½μ μž„",
# λ‚˜λ¨Έμ§€ MBTI μœ ν˜•μ— λŒ€ν•œ 해석 μΆ”κ°€...
}
# μ‚¬μš©μžμ˜ MBTI μœ ν˜•κ³Ό 해석 λ°˜ν™˜
return f"λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ€ {mbti_type}μž…λ‹ˆλ‹€. {interpretations.get(mbti_type, '해석 쀀비쀑')}."
# 질문 λͺ©λ‘ 생성
questions = [
gr.Radio(["E", "I"], label="1. μƒˆλ‘œμš΄ μ‚¬λžŒλ“€μ„ λ§Œλ‚  λ•Œ 기뢄이 μ–΄λ– μ‹ κ°€μš”?"),
gr.Radio(["S", "N"], label="2. 문제λ₯Ό ν•΄κ²°ν•  λ•Œ 직관을 더 λ”°λ₯΄μ‹œλ‚˜μš”, μ•„λ‹ˆλ©΄ ꡬ체적인 사싀을 더 μ€‘μ‹œν•˜μ‹œλ‚˜μš”?"),
gr.Radio(["T", "F"], label="3. 결정을 내릴 λ•Œ 논리와 이성을 더 μ€‘μ‹œν•˜μ‹œλ‚˜μš”, μ•„λ‹ˆλ©΄ μ‚¬λžŒλ“€μ˜ 감정과 κ°€μΉ˜λ₯Ό 더 μ€‘μ‹œν•˜μ‹œλ‚˜μš”?"),
gr.Radio(["J", "P"], label="4. κ³„νšμ„ μ„Έμš°κ³  κ·Έ κ³„νšμ— 따라 μΌν•˜λŠ” 것을 μ„ ν˜Έν•˜μ‹œλ‚˜μš”, μ•„λ‹ˆλ©΄ μœ μ—°ν•˜κ³  즉ν₯적인 것을 μ„ ν˜Έν•˜μ‹œλ‚˜μš”?"),
# μΆ”κ°€ 질문 ν•„μš” μ‹œ 여기에 μΆ”κ°€
]
# Gradio μΈν„°νŽ˜μ΄μŠ€ 생성 및 μ‹€ν–‰
iface = gr.Interface(fn=calculate_mbti, inputs=questions, outputs="text", title="MBTI 진단 ν…ŒμŠ€νŠΈ")
iface.launch()