AIQ-3 / app.py
Muhanuri's picture
Rename MBTI to app.py
fc28bd3 verified
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()