Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,30 +1,116 @@
|
|
1 |
import gradio as gr
|
2 |
|
3 |
-
# 질문 설정 (
|
4 |
questions = [
|
5 |
-
|
6 |
-
"나는
|
7 |
-
"나는
|
8 |
-
"나는
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
]
|
11 |
|
12 |
-
# 결과 계산
|
13 |
def calculate_mbti(responses):
|
14 |
-
e_score = sum([responses[i] for i in
|
15 |
-
|
16 |
-
|
|
|
17 |
|
|
|
18 |
mbti_type = ""
|
19 |
-
mbti_type += "E" if e_score >
|
20 |
-
|
|
|
|
|
21 |
|
22 |
return mbti_type
|
23 |
|
24 |
-
# Gradio 인터페이스
|
25 |
def create_interface():
|
26 |
inputs = [gr.Radio(choices=["매우 아니다", "아니다", "보통이다", "그렇다", "매우 그렇다"], label=questions[i]) for i in range(len(questions))]
|
27 |
-
interface = gr.Interface(fn=calculate_mbti, inputs=inputs, outputs="text", title="MBTI 분석기", description="
|
28 |
return interface
|
29 |
|
30 |
# 인터페이스 실행
|
|
|
1 |
import gradio as gr
|
2 |
|
3 |
+
# 질문 설정 (총 80개)
|
4 |
questions = [
|
5 |
+
# 외향형(Extraversion) vs 내향형(Introversion)
|
6 |
+
"나는 여러 사람들과 함께 있을 때 더 에너지가 난다.",
|
7 |
+
"나는 조용한 시간보다 사람들과 대화하는 시간이 더 소중하다.",
|
8 |
+
"나는 사람들과의 교류를 통해서 아이디어를 얻는 편이다.",
|
9 |
+
"나는 새로운 사람들과 쉽게 친해지는 편이다.",
|
10 |
+
"나는 대규모 모임을 즐긴다.",
|
11 |
+
"나는 스스로를 활발하고 외향적인 사람이라고 생각한다.",
|
12 |
+
"나는 주변에서 일어나는 일들에 자연스럽게 관심이 간다.",
|
13 |
+
"나는 친구들과 만나서 시간을 보내는 것을 선호한다.",
|
14 |
+
"나는 내가 생각하는 것을 쉽게 표현한다.",
|
15 |
+
"나는 외부에서 받은 자극에 빠르게 반응한다.",
|
16 |
+
"나는 혼자서 보내는 시간이 긴장되거나 불편하게 느껴진다.",
|
17 |
+
"나는 친구나 가족과 시간을 많이 보내야 충전이 된다.",
|
18 |
+
"나는 새로운 환경에서 적응이 빠르다.",
|
19 |
+
"나는 갑작스러운 변화에도 쉽게 대응할 수 있다.",
|
20 |
+
"나는 혼자보다는 다른 사람과 함께 있을 때 더 생산적이다.",
|
21 |
+
"나는 다른 사람들의 관심을 즐긴다.",
|
22 |
+
"나는 항상 새로운 사람들과 대화하는 것을 좋아한다.",
|
23 |
+
"나는 생각보다는 행동으로 먼저 나서는 편이다.",
|
24 |
+
"나는 처음 만난 사람에게 먼저 말을 걸기도 한다.",
|
25 |
+
"나는 많은 사람들 사이에서 편안함을 느낀다.",
|
26 |
+
|
27 |
+
# 감각형(Sensing) vs 직관형(Intuition)
|
28 |
+
"나는 구체적이고 현실적인 정보를 선호한다.",
|
29 |
+
"나는 문제를 해결할 때 실용적인 접근 방식을 선호한다.",
|
30 |
+
"나는 새로운 아이디어보다는 현재의 사실에 집중한다.",
|
31 |
+
"나는 과거 경험을 바탕으로 결정을 내리는 편이다.",
|
32 |
+
"나는 세부 사항에 관심이 많고 꼼꼼하다.",
|
33 |
+
"나는 매일의 일상과 규칙을 중시한다.",
|
34 |
+
"나는 기존의 것을 따르는 것이 편안하다.",
|
35 |
+
"나는 눈앞에 있는 현실을 중요하게 생각한다.",
|
36 |
+
"나는 직관보다는 데이터를 더 신뢰한다.",
|
37 |
+
"나는 구체적인 경험에서 배운다.",
|
38 |
+
"나는 규칙적이고 예측 가능한 환경을 좋아한다.",
|
39 |
+
"나는 실험적인 방법보다는 검증된 방법을 따른다.",
|
40 |
+
"나는 변화보다는 안정된 상태를 유지하는 것을 선호한다.",
|
41 |
+
"나는 장기적인 비전보다는 지금 당장 중요한 것에 집중한다.",
|
42 |
+
"나는 실용적인 계획을 세우는 것을 좋아한다.",
|
43 |
+
"나는 아이디어보다는 실행에 더 집중한다.",
|
44 |
+
"나는 새로운 접근보다는 기존의 방식을 개선하는 것이 좋다.",
|
45 |
+
"나는 본능보다는 논리에 의해 더 많이 움직인다.",
|
46 |
+
"나는 일상 속에서 미세한 변화를 쉽게 알아차린다.",
|
47 |
+
"나는 상상력보다는 현실 세계의 경험이 더 중요하다고 생각한다.",
|
48 |
+
|
49 |
+
# 사고형(Thinking) vs 감정형(Feeling)
|
50 |
+
"나는 문제 해결에 있어 논리와 분석을 중시한다.",
|
51 |
+
"나는 감정보다는 사실에 근거해 결정을 내린다.",
|
52 |
+
"나는 의견을 제시할 때 감정보다는 진실을 우선시한다.",
|
53 |
+
"나는 논리적이고 객관적인 결정을 선호한다.",
|
54 |
+
"나는 갈등이 있을 때 감정보다는 해결책을 찾는 데 집중한다.",
|
55 |
+
"나는 논리적으로 생각하고 결론을 내린다.",
|
56 |
+
"나는 감정적으로 영향을 받기보다는 객관적으로 판단하려 한다.",
|
57 |
+
"나는 논쟁을 할 때 개인적인 감정을 배제하고 논리를 따진다.",
|
58 |
+
"나는 결정할 때 항상 장단점을 따져본다.",
|
59 |
+
"나는 어려운 결정을 내릴 때 다른 사람의 의견보다는 나의 분석을 따른다.",
|
60 |
+
"나는 개인적인 감정보다는 공정함을 더 중요시한다.",
|
61 |
+
"나는 사실에 근거한 논의가 감정적인 대화보다 더 의미 있다고 생각한다.",
|
62 |
+
"나는 감정보다는 데이터를 기반으로 계획을 세운다.",
|
63 |
+
"나는 감정이 앞서기보다는 상황을 객관적으로 바라보려 한다.",
|
64 |
+
"나는 결정을 내릴 때 개인적인 관계보다는 결과를 우선시한다.",
|
65 |
+
"나는 비판을 받을 때 감정적으로 반응하기보다는 논리적으로 접근한다.",
|
66 |
+
"나는 감정적으로 흥분하기보다는 차분하게 대처하려 한다.",
|
67 |
+
"나는 상황을 분석하고 원인과 결과를 따지는 것을 좋아한다.",
|
68 |
+
"나는 사람들의 ���분보다 문제 해결에 더 집중하는 편이다.",
|
69 |
+
"나는 공감보다는 진실과 논리를 추구한다.",
|
70 |
+
|
71 |
+
# 판단형(Judging) vs 인식형(Perceiving)
|
72 |
+
"나는 미리 계획하고 일정에 따라 움직이는 것을 좋아한다.",
|
73 |
+
"나는 목표를 달성하기 위해 구체적인 계획을 세우는 편이다.",
|
74 |
+
"나는 일을 마감 기한 전에 끝내는 것을 중요하게 생각한다.",
|
75 |
+
"나는 예측 가능한 상황에서 일하는 것을 선호한다.",
|
76 |
+
"나는 무언가를 결정하고 나면 쉽게 바꾸지 않는다.",
|
77 |
+
"나는 계획을 세우는 것이 일의 반이라고 생각한다.",
|
78 |
+
"나는 모든 일을 체계적으로 처리하려고 노력한다.",
|
79 |
+
"나는 갑작스러운 변화를 좋아하지 않는다.",
|
80 |
+
"나는 계획에 맞춰 일을 마무리하는 것을 중요시한다.",
|
81 |
+
"나는 미리 준비된 상태에서 일을 시작해야 편안하다.",
|
82 |
+
"나는 결정을 내릴 때 확신을 가지고 행동한다.",
|
83 |
+
"나는 하루의 일정을 미리 계획하고 따르는 것을 좋아한다.",
|
84 |
+
"나는 일어날 상황을 미리 예측하고 준비하는 편이다.",
|
85 |
+
"나는 변동성보다는 안정감을 추구한다.",
|
86 |
+
"나는 계획대로 일이 진행되는 것을 선호한다.",
|
87 |
+
"나는 계획에 따라 움직이지 않으면 불안함을 느낀다.",
|
88 |
+
"나는 일을 끝내기 전까지는 다른 일을 시작하지 않는다.",
|
89 |
+
"나는 일과 계획을 미리 세워야 마음이 편하다.",
|
90 |
+
"나는 상황이 불확실하면 스트레스를 받는다.",
|
91 |
+
"나는 언제나 계획대로 일이 진행되길 바란다."
|
92 |
]
|
93 |
|
94 |
+
# 결과 계산 함수
|
95 |
def calculate_mbti(responses):
|
96 |
+
e_score = sum([responses[i] for i in range(20)]) # Extraversion/Introversion 관련 점수
|
97 |
+
s_score = sum([responses[i + 20] for i in range(20)]) # Sensing/Intuition 관련 점수
|
98 |
+
t_score = sum([responses[i + 40] for i in range(20)]) # Thinking/Feeling 관련 점수
|
99 |
+
j_score = sum([responses[i + 60] for i in range(20)]) # Judging/Perceiving 관련 점수
|
100 |
|
101 |
+
# 각 성향에 따른 MBTI 유형 결정
|
102 |
mbti_type = ""
|
103 |
+
mbti_type += "E" if e_score > 50 else "I"
|
104 |
+
mbti_type += "S" if s_score > 50 else "N"
|
105 |
+
mbti_type += "T" if t_score > 50 else "F"
|
106 |
+
mbti_type += "J" if j_score > 50 else "P"
|
107 |
|
108 |
return mbti_type
|
109 |
|
110 |
+
# Gradio 인터페이스 생성
|
111 |
def create_interface():
|
112 |
inputs = [gr.Radio(choices=["매우 아니다", "아니다", "보통이다", "그렇다", "매우 그렇다"], label=questions[i]) for i in range(len(questions))]
|
113 |
+
interface = gr.Interface(fn=calculate_mbti, inputs=inputs, outputs="text", title="MBTI 분석기", description="80개 이상의 질문에 답하고 당신의 MBTI 유형을 확인하세요!")
|
114 |
return interface
|
115 |
|
116 |
# 인터페이스 실행
|