Spaces:
Runtime error
Runtime error
# app.py | |
import gradio as gr | |
import json | |
# TCI 유형 데이터 | |
TCI_TYPES = { | |
"Type1": { | |
"name": "예시 유형1", | |
"description": "이 유형은 ...", | |
"career": ["직업1", "직업2", "직업3"], | |
"compatibility": { | |
"good": {"Type2": "이유..."}, | |
"bad": {"Type3": "이유..."} | |
} | |
}, | |
# 다른 6가지 유형도 동일한 형식으로 추가 | |
# ... | |
} | |
# 질문 리스트 | |
QUESTIONS = [ | |
"질문 1 내용...", | |
"질문 2 내용...", | |
"질문 3 내용...", | |
# 최소 20개 이상의 질문 추가 | |
# ... | |
] | |
# 선택지 | |
OPTIONS = ["매우 그렇다", "그렇다", "보통이다", "아니다", "매우 아니다"] | |
def calculate_tci(responses): | |
# 예시 점수 계산 로직 | |
# 실제 TCI 점수 계산 방식에 맞게 수정 필요 | |
scores = {type_name: 0 for type_name in TCI_TYPES.keys()} | |
for i, response in enumerate(responses): | |
# 각 질문을 특정 유형에 매핑하는 로직 필요 | |
# 예를 들어, 질문 i가 Type1에 해당하면 scores["Type1"] += response 점수 | |
pass | |
# 퍼센트 계산 | |
total = sum(scores.values()) | |
percentages = {k: (v / total * 100) if total > 0 else 0 for k, v in scores.items()} | |
# 최고 점수 유형 선택 | |
selected_type = max(percentages, key=percentages.get) | |
return selected_type, percentages[selected_type] | |
def get_results(responses): | |
selected_type, percentage = calculate_tci(responses) | |
type_info = TCI_TYPES[selected_type] | |
# 형식에 맞는 결과 생성 | |
result = { | |
"유형": type_info["name"], | |
"퍼센트": f"{percentage:.2f}%", | |
"성격 설명": type_info["description"], | |
"추천 직업": ", ".join(type_info["career"]), | |
"좋은 궁합": ", ".join([f"{k}: {v}" for k, v in type_info["compatibility"]["good"].items()]), | |
"나쁜 궁합": ", ".join([f"{k}: {v}" for k, v in type_info["compatibility"]["bad"].items()]) | |
} | |
return result | |
def main(): | |
with gr.Blocks() as demo: | |
gr.Markdown("# TCI 기질 분석기") | |
with gr.Form(): | |
responses = [] | |
for question in QUESTIONS: | |
response = gr.Radio(label=question, choices=OPTIONS, type="index") | |
responses.append(response) | |
submit = gr.Button("결과 보기") | |
output = gr.JSON() | |
submit.click(fn=get_results, inputs=responses, outputs=output) | |
demo.launch() | |
if __name__ == "__main__": | |
main() | |