File size: 2,934 Bytes
06fc1c1
 
 
 
 
24eb1e0
06fc1c1
c560726
24eb1e0
 
 
 
 
 
 
 
 
 
 
06fc1c1
 
24eb1e0
 
 
 
06fc1c1
 
24eb1e0
 
06fc1c1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c560726
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import gradio as gr

def mbti_diagnosis(*answers):
    dimension_scores = {'E': 0, 'I': 0, 'N': 0, 'S': 0, 'T': 0, 'F': 0, 'J': 0, 'P': 0}
    
    # 각 문항에 따라 차원 점수λ₯Ό μ—…λ°μ΄νŠΈ (λ³΄μ •λœ 둜직)
    for i, answer in enumerate(answers):
        score = 1 if answer == "예" else 0
        if i in [0, 1, 4, 5, 8, 9, 12, 13, 16, 17]: # E, N, T, J 차원에 ν•΄λ‹Ήν•˜λŠ” λ¬Έν•­ 인덱슀
            if i % 2 == 0: # E, N
                dimension_scores['E' if i < 8 else 'N'] += score
            else: # I, S
                dimension_scores['I' if i < 8 else 'S'] += score
        else: # T, F, J, P 차원에 ν•΄λ‹Ήν•˜λŠ” λ¬Έν•­ 인덱슀
            if i % 2 == 0: # T, J
                dimension_scores['T' if i < 16 else 'J'] += score
            else: # F, P
                dimension_scores['F' if i < 16 else 'P'] += score

    # MBTI μœ ν˜• κ²°μ •
    mbti_type = ''
    mbti_type += 'E' if dimension_scores['E'] > dimension_scores['I'] else 'I'
    mbti_type += 'N' if dimension_scores['N'] > dimension_scores['S'] else 'S'
    mbti_type += 'T' if dimension_scores['T'] > dimension_scores['F'] else 'F'
    mbti_type += 'J' if dimension_scores['J'] > dimension_scores['P'] else 'P'
    
    return mbti_type


questions = [
    "μ‚¬λžŒλ“€κ³Ό μ–΄μšΈλ¦¬λŠ” 것을 μ’‹μ•„ν•˜λ‚˜μš”?",
    "ꡬ체적인 μ‚¬μ‹€λ³΄λ‹€λŠ” 아이디어에 더 관심이 λ§Žλ‚˜μš”?",
    "결정을 내릴 λ•Œ 논리와 이성을 μ€‘μš”μ‹œν•˜λ‚˜μš”?",
    "κ³„νšμ„ μ„Έμš°κ³  그에 따라 ν–‰λ™ν•˜λŠ” 것을 μ„ ν˜Έν•˜λ‚˜μš”?",
    "μ†Œκ·œλͺ¨ κ·Έλ£Ήμ΄λ‚˜ 혼자 μžˆλŠ” μ‹œκ°„μ„ μ„ ν˜Έν•˜λ‚˜μš”?",
    "ν˜„μ‹€μ μΈ 해결책을 μ„ ν˜Έν•˜λ‚˜μš”?",
    "κ°μ •λ³΄λ‹€λŠ” 사싀에 κΈ°λ°˜ν•˜μ—¬ μ˜μ‚¬κ²°μ •μ„ ν•˜λ‚˜μš”?",
    "μœ΅ν†΅μ„± 있게 κ³„νšμ„ λ³€κ²½ν•˜λŠ” 것에 νŽΈμ•ˆν•¨μ„ λŠλΌλ‚˜μš”?",
    "μƒˆλ‘œμš΄ μ‚¬λžŒλ“€μ„ λ§Œλ‚˜λŠ” 것에 ν₯λΆ„ν•˜λ‚˜μš”?",
    "상상λ ₯을 자주 μ‚¬μš©ν•˜λ‚˜μš”?",
    "μΉœκ΅¬λ‚˜ λ™λ£Œμ˜ 감정을 κ³ λ €ν•˜λŠ” νŽΈμΈκ°€μš”?",
    "λͺ©ν‘œλ₯Ό μ„€μ •ν•˜κ³  그것을 λ‹¬μ„±ν•˜κΈ° μœ„ν•΄ 일정을 κ΄€λ¦¬ν•˜λ‚˜μš”?",
    "혼자만의 μ‹œκ°„μ„ μ€‘μš”ν•˜κ²Œ μƒκ°ν•˜λ‚˜μš”?",
    "μ„ΈλΆ€ μ‚¬ν•­λ³΄λ‹€λŠ” 전체적인 그림을 λ³΄λŠ” 것을 μ„ ν˜Έν•˜λ‚˜μš”?",
    "νƒ€μΈμ˜ μž…μž₯을 μ΄ν•΄ν•˜λ €κ³  λ…Έλ ₯ν•˜λ‚˜μš”?",
    "κ°‘μž‘μŠ€λŸ¬μš΄ λ³€ν™”λ₯Ό 잘 λ°›μ•„λ“€μ΄λ‚˜μš”?",
    "λŒ€ν™”λ³΄λ‹€λŠ” 관찰을 μ„ ν˜Έν•˜λ‚˜μš”?",
    "μ‹€μ œ κ²½ν—˜μ„ 톡해 λ°°μš°λŠ” 것을 μ’‹μ•„ν•˜λ‚˜μš”?",
    "곡정성과 μ •μ˜λ₯Ό μ€‘μš”μ‹œν•˜λ‚˜μš”?",
    "κ³„νšμ— 따라 μΌν•˜λŠ” 것이 μ•ˆμ •κ°μ„ μ€λ‚˜μš”?"
]

# Gradio μΈν„°νŽ˜μ΄μŠ€ μ„€μ •
interface = gr.Interface(
    fn=mbti_diagnosis,
    inputs=[gr.Radio(["예", "μ•„λ‹ˆμ˜€"], label=question) for question in questions],
    outputs="text",
    title="MBTI μœ ν˜• 진단",
    description="λ‹€μŒ 문항에 λŒ€ν•œ 닡변을 톡해 λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ„ μ•Œμ•„λ³΄μ„Έμš”."
)

# μΈν„°νŽ˜μ΄μŠ€ μ‹€ν–‰
interface.launch()