Spaces:
Sleeping
Sleeping
File size: 7,335 Bytes
69d0bc7 e140027 6d5e2f0 e140027 6d5e2f0 5750935 6d5e2f0 e140027 4a0bd58 6d5e2f0 5750935 b11ddcd 8ce5137 4a0bd58 8ce5137 4a0bd58 77c17c9 6d5e2f0 4a0bd58 6d5e2f0 4a0bd58 7450f4e 5750935 77c17c9 4a0bd58 8ce5137 6d5e2f0 77c17c9 e140027 77c17c9 69d0bc7 |
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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
이코드를 적용하라
한국어로 답하라
아래 코드를 (OOOOO 자세한 설명)개선하려고한다. 코드를 생성하라
요청한 사항외 절대 다른 코드는 수정하지마라
import gradio as gr
# 질문 설정 (총 20개로 축소)
questions = [
"나는 다른 사람들과 함께 있을 때 에너지를 얻는다.",
"나는 새로운 사람들과 쉽게 친해지는 편이다.",
"나는 대규모 모임을 즐긴다.",
"나는 혼자 보내는 시간이 편하다.",
"나는 친구들과 대화하는 시간이 즐겁다.",
"나는 현실적이고 구체적인 정보를 선호한다.",
"나는 과거의 경험을 바탕으로 결정을 내린다.",
"나는 큰 그림보다는 세부사항에 집중한다.",
"나는 새로운 아이디어보다는 실질적인 것을 선호한다.",
"나는 직관보다는 자료에 의존하는 편이다.",
"나는 감정보다는 논리적으로 판단하려 한다.",
"나는 갈등 상황에서 공정함을 중시한다.",
"나는 결정을 내릴 때 사람들의 감정보다는 사실에 집중한다.",
"나는 문제 해결에 있어 논리적 접근을 선호한다.",
"나는 비판을 받더라도 감정적으로 반응하지 않으려 한다.",
"나는 계획에 따라 일하는 것을 선호한다.",
"나는 마감 기한 전에 일을 마무리하려 노력한다.",
"나는 일의 세부 계획을 미리 세워놓는다.",
"나는 예측 가능한 일정을 선호한다.",
"나는 변화보다는 안정된 상태를 선호한다."
]
# MBTI 성격 유형 설명 데이터
mbti_details = {
"ESTJ": {
"성격 성향": "실용적이고 조직적, 리더십 강함",
"기질 설명": "현실적이며 체계적인 접근을 좋아함",
"추천 직업": ["경영자", "프로젝트 매니저", "군인"],
"좋은 궁합": ["ISFJ", "ISTJ"],
"나쁜 궁합": ["INFP", "ENFP"],
"궁합 이유": {
"좋은": "비슷한 현실주의 성향과 체계적인 사고를 공유하기 때문에 잘 어울림.",
"나쁜": "감정적으로 충돌할 가능성이 높고, 자유로운 성향이 충돌할 수 있음."
}
},
"ENTJ": {
"성격 성향": "전략적이고 결단력 있음",
"기질 설명": "리더십을 중시하고 목표 지향적임",
"추천 직업": ["CEO", "변호사", "컨설턴트"],
"좋은 궁합": ["INTP", "ENFP"],
"나쁜 궁합": ["ISFP", "INFP"],
"궁합 이유": {
"좋은": "자유로운 사고를 존중하며, 문제 해결 능력이 잘 어우러짐.",
"나쁜": "감정적으로 충돌하고, 세부 사항을 무시하는 경향이 문제를 일으킬 수 있음."
}
},
# 다른 MBTI 유형 설명 추가
}
# MBTI 결과에 따른 설명 제공 함수
def get_mbti_details(mbti_type):
details = mbti_details.get(mbti_type, None)
if details:
description = f"성격 성향: {details['성격 성향']}\n"
description += f"기질 설명: {details['기질 설명']}\n"
description += f"추천 직업: {', '.join(details['추천 직업'])}\n"
description += f"좋은 궁합: {', '.join(details['좋은 궁합'])}\n"
description += f"나쁜 궁합: {', '.join(details['나쁜 궁합'])}\n"
description += f"좋은 궁합 이유: {details['궁합 이유']['좋은']}\n"
description += f"나쁜 궁합 이유: {details['궁합 이유']['나쁜']}\n"
return description
return "알 수 없는 MBTI 유형입니다."
# 결과 계산 함수
def calculate_mbti(responses):
# 각 성향 점수 계산
score_mapping = {
"매우 아니다": 1,
"아니다": 2,
"보통이다": 3,
"그렇다": 4,
"매우 그렇다": 5
}
scores = [score_mapping[response] for response in responses]
e_score = sum([scores[i] for i in range(5)]) # Extraversion/Introversion 관련 점수
s_score = sum([scores[i + 5] for i in range(5)]) # Sensing/Intuition 관련 점수
t_score = sum([scores[i + 10] for i in range(5)]) # Thinking/Feeling 관련 점수
j_score = sum([scores[i + 15] for i in range(5)]) # Judging/Perceiving 관련 점수
mbti_type = ""
mbti_type += "E" if e_score > 15 else "I"
mbti_type += "S" if s_score > 15 else "N"
mbti_type += "T" if t_score > 15 else "F"
mbti_type += "J" if j_score > 15 else "P"
# 유형이 얼마나 맞는지 계산 (%)
total_score = e_score + s_score + t_score + j_score
percentage = round(total_score / 100 * 100, 2)
description = get_mbti_details(mbti_type)
return f"당신의 MBTI 유형은 {mbti_type}입니다. 이 유형이 맞을 확률은 {percentage}%입니다.\n\n{description}"
# Gradio 인터페이스 생성
def create_interface():
# 라디오 버튼을 "매우 아니다" ~ "매우 그렇다" 값으로 설정
choices = ["매우 아니다", "아니다", "보통이다", "그렇다", "매우 그렇다"]
inputs = [gr.Radio(choices=choices, label=questions[i]) for i in range(len(questions))]
# Gradio 인터페이스 설정
interface = gr.Interface(fn=calculate_mbti, inputs=inputs, outputs="text", title="MBTI 분석기", description="20개의 질문에 답하고 당신의 MBTI 유형과 그 설명을 확인하세요!")
return interface
# 인터페이스 실행
interface = create_interface()
interface.launch()
===== Application Startup at 2024-08-22 10:52:55 =====
/usr/local/lib/python3.10/site-packages/gradio/utils.py:1002: UserWarning: Expected 1 arguments for function <function calculate_mbti at 0x7f1d47a79510>, received 20.
warnings.warn(
/usr/local/lib/python3.10/site-packages/gradio/utils.py:1010: UserWarning: Expected maximum 1 arguments for function <function calculate_mbti at 0x7f1d47a79510>, received 20.
warnings.warn(
Running on local URL: http://0.0.0.0:7860
To create a public link, set `share=True` in `launch()`.
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/gradio/queueing.py", line 536, in process_events
response = await route_utils.call_process_api(
File "/usr/local/lib/python3.10/site-packages/gradio/route_utils.py", line 288, in call_process_api
output = await app.get_blocks().process_api(
File "/usr/local/lib/python3.10/site-packages/gradio/blocks.py", line 1931, in process_api
result = await self.call_function(
File "/usr/local/lib/python3.10/site-packages/gradio/blocks.py", line 1516, in call_function
prediction = await anyio.to_thread.run_sync( # type: ignore
File "/usr/local/lib/python3.10/site-packages/anyio/to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 2177, in run_sync_in_worker_thread
return await future
File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 859, in run
result = context.run(func, *args)
File "/usr/local/lib/python3.10/site-packages/gradio/utils.py", line 826, in wrapper
response = f(*args, **kwargs)
TypeError: calculate_mbti() takes 1 positional argument but 20 were given |