aitest / app.py
taeyeol's picture
Create app.py
d98be9d verified
raw
history blame
10.4 kB
import gradio as gr
# MBTI μœ ν˜•λ³„ 해석
mbti_interpretations = {
"INTJ": "μ „λž΅κ°€, 독창적이고 독립적인 사고λ₯Ό 가진 μ‚¬λžŒ",
"INTP": "논리적인 사색가, 이둠적인 문제λ₯Ό ν•΄κ²°ν•˜λŠ”λ° λŠ₯μˆ™",
# λ‚˜λ¨Έμ§€ 14개 μœ ν˜•μ— λŒ€ν•œ 해석 μΆ”κ°€...
}
# μ‚¬μš©μž 응닡을 기반으둜 MBTI μœ ν˜• κ²°μ •
def determine_mbti(*answers):
# 여기에 각 μ§ˆλ¬Έμ— λŒ€ν•œ 응닡을 λΆ„μ„ν•˜κ³  MBTI μœ ν˜•μ„ κ²°μ •ν•˜λŠ” 둜직 κ΅¬ν˜„
mbti_type = "INTJ" # μ˜ˆμ‹œλ‘œ INTJλ₯Ό λ°˜ν™˜ν•˜λ„λ‘ μ„€μ •
interpretation = mbti_interpretations[mbti_type]
return f"λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ€ {mbti_type}μž…λ‹ˆλ‹€. {interpretation}"
# Gradio μΈν„°νŽ˜μ΄μŠ€ ꡬ성
questions = [
"당신은 μƒˆλ‘œμš΄ μ‚¬λžŒλ“€μ„ λ§Œλ‚  λ•Œ 주둜 μ–΄λ–»κ²Œ ν–‰λ™ν•˜λ‚˜μš”?",
# λ‚˜λ¨Έμ§€ 9개 질문 μΆ”κ°€...
]
options = [["μ˜΅μ…˜ 1", "μ˜΅μ…˜ 2", "μ˜΅μ…˜ 3", "μ˜΅μ…˜ 4"]] * 10 # 각 μ§ˆλ¬Έμ— λŒ€ν•œ μ˜΅μ…˜
iface = gr.Interface(
fn=determine_mbti,
inputs=[gr.Radio(options[i], label=question) for i, question in enumerate(questions)],
outputs="text",
title="MBTI 진단 ν…ŒμŠ€νŠΈ",
description="10개의 μ§ˆλ¬Έμ— λ‹΅ν•˜μ—¬ λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ„ μ•Œμ•„λ³΄μ„Έμš”."
)
iface.launch()
requirements.txt 파일 μ˜ˆμ‹œ
gradio
huggingface_hub
이 μ½”λ“œμ™€ requirements.txt νŒŒμΌμ„ μ‚¬μš©ν•˜μ—¬ Hugging Face Spaces에 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 배포할 수 μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©μžλŠ” μ›Ή μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 μ§ˆλ¬Έμ— λ‹΅ν•˜κ³ , 그에 λ”°λ₯Έ MBTI μœ ν˜•κ³Ό κ°„λ‹¨ν•œ 해석을 λ°›κ²Œ λ©λ‹ˆλ‹€.
10개 λͺ¨λ‘ μ±„μ›Œμ„œ μ „μ²΄μ½”λ“œ 좜λ ₯ν•˜λΌ
μ•„λž˜λŠ” 10개의 MBTI 진단 질문과 각 μœ ν˜•μ— λŒ€ν•œ κ°„λ‹¨ν•œ 해석을 ν¬ν•¨ν•œ 전체 μ½”λ“œμž…λ‹ˆλ‹€. 이 μ½”λ“œλŠ” Gradioλ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„λ˜μ—ˆμœΌλ©°, μ‚¬μš©μžκ°€ 10개의 μ§ˆλ¬Έμ— λ‹΅ν•œ ν›„ 그에 λ”°λ₯Έ MBTI μœ ν˜•κ³Ό 해석을 좜λ ₯ν•©λ‹ˆλ‹€.
import gradio as gr
# MBTI μœ ν˜•λ³„ 해석
mbti_interpretations = {
"INTJ": "μ „λž΅κ°€, 독창적이고 독립적인 사고λ₯Ό 가진 μ‚¬λžŒ",
"INTP": "논리적인 사색가, 이둠적인 문제λ₯Ό ν•΄κ²°ν•˜λŠ”λ° λŠ₯μˆ™",
"ENTJ": "λŒ€λ‹΄ν•œ ν†΅μ†”μž, ν™œλ™μ μ΄κ³  지도λ ₯이 μžˆλŠ” μ‚¬λžŒ",
"ENTP": "뜨거운 λ…ΌμŸμ„ μ¦κΈ°λŠ” λ³€λ‘ κ°€, 지적 ν˜ΈκΈ°μ‹¬μ΄ λ§Žμ€ μ‚¬λžŒ",
"INFJ": "μ„ μ˜μ˜ 옹호자, μ‘°μš©ν•˜κ³  μ‹ λΉ„λ‘œμš΄, μ˜κ°μ„ μ£ΌλŠ” μ‚¬λžŒ",
"INFP": "열정적인 μ€‘μž¬μž, 창의적이고 μΉœμ ˆν•œ μ‚¬λžŒ",
"ENFJ": "사ꡐ적인 μ„ μƒλ‹˜, 타인을 λ•κ³ μž ν•˜λŠ” μ‚¬λžŒ",
"ENFP": "μž¬κΈ°λ°œλž„ν•œ ν™œλ™κ°€, 열정적이고 창의적인 μ‚¬λžŒ",
"ISTJ": "μ²­λ ΄κ²°λ°±ν•œ λ…Όλ¦¬μ£Όμ˜μž, μ‹€μš©μ μ΄κ³  사싀에 κΈ°λ°˜ν•œ μ‚¬λžŒ",
"ISFJ": "μš©κ°ν•œ 수호자, λ³΄ν˜Έν•˜κ³ μž ν•˜λŠ” μ‚¬λžŒ",
"ESTJ": "μ—„κ²©ν•œ κ΄€λ¦¬μž, μ§ˆμ„œμ™€ 전톡을 μ€‘μ‹œν•˜λŠ” μ‚¬λžŒ",
"ESFJ": "사ꡐ적인 외ꡐ관, μΉœμ ˆν•˜κ³  양심적인 μ‚¬λžŒ",
"ISTP": "만λŠ₯ 재주꾼, ν˜ΈκΈ°μ‹¬ 많고 μ‹€μš©μ μΈ μ‚¬λžŒ",
"ISFP": "ν˜ΈκΈ°μ‹¬ λ§Žμ€ μ˜ˆμˆ κ°€, μœ μ—°ν•˜κ³  맀λ ₯적인 μ‚¬λžŒ",
"ESTP": "λͺ¨ν—˜μ„ μ¦κΈ°λŠ” 사업가, μ—λ„ˆμ§€κ°€ λ„˜μΉ˜λŠ” μ‚¬λžŒ",
"ESFP": "자유둜운 영혼의 μ—°μ˜ˆμΈ, 즐거움을 μΆ”κ΅¬ν•˜λŠ” μ‚¬λžŒ"
}
# μ‚¬μš©μž 응닡을 기반으둜 MBTI μœ ν˜• κ²°μ •
def determine_mbti(*answers):
# 여기에 각 μ§ˆλ¬Έμ— λŒ€ν•œ 응닡을 λΆ„μ„ν•˜κ³  MBTI μœ ν˜•μ„ κ²°μ •ν•˜λŠ” 둜직 κ΅¬ν˜„
# 이 μ˜ˆμ œμ—μ„œλŠ” λ‹¨μˆœν™”λ₯Ό μœ„ν•΄ λͺ¨λ“  응닡을 "INTJ"둜 μ„€μ •
mbti_type = "INTJ"
interpretation = mbti_interpretations[mbti_type]
return f"λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ€ {mbti_type}μž…λ‹ˆλ‹€. {interpretation}"
# Gradio μΈν„°νŽ˜μ΄μŠ€ ꡬ성
questions = [
"μƒˆλ‘œμš΄ μ‚¬λžŒλ“€μ„ λ§Œλ‚  λ•Œ 주둜 μ–΄λ–»κ²Œ ν–‰λ™ν•˜λ‚˜μš”?",
"문제λ₯Ό ν•΄κ²°ν•  λ•Œ λ‹Ήμ‹ μ˜ μ ‘κ·Ό 방식은?",
"μ—¬κ°€ μ‹œκ°„μ„ 보낼 λ•Œ μ„ ν˜Έν•˜λŠ” ν™œλ™μ€?",
"μ˜μ‚¬ 결정을 ν•  λ•Œ κ°€μž₯ μ€‘μš”ν•˜κ²Œ μƒκ°ν•˜λŠ” 것은?",
"슀트레슀λ₯Ό 받을 λ•Œ 주둜 μ–΄λ–»κ²Œ λŒ€μ²˜ν•˜λ‚˜μš”?",
"μƒˆλ‘œμš΄ ν”„λ‘œμ νŠΈλ₯Ό μ‹œμž‘ν•  λ•Œ λ‹Ήμ‹ μ˜ νƒœλ„λŠ”?",
"νŒ€ ν”„λ‘œμ νŠΈμ—μ„œ λ‹Ήμ‹ μ˜ 역할은 주둜 λ¬΄μ—‡μΈκ°€μš”?",
"λ³€ν™”λ₯Ό λŒ€ν•  λ•Œ λ‹Ήμ‹ μ˜ νƒœλ„λŠ”?",
"ν•™μŠ΅ν•  λ•Œ μ„ ν˜Έν•˜λŠ” 방식은?",
"μΉœκ΅¬λ“€κ³Όμ˜ κ΄€κ³„μ—μ„œ 당신은 μ–΄λ–€ μ‚¬λžŒμΈκ°€μš”?"
]
options = [
["μ˜€ν”ˆ λ§ˆμΈλ“œλ‘œ μ ‘κ·Όν•œλ‹€", "μ‘°μ‹¬μŠ€λŸ½κ²Œ μ ‘κ·Όν•œλ‹€", "상황을 κ΄€μ°°ν•œλ‹€", "적극적으둜 μ°Έμ—¬ν•œλ‹€"],
["λ…Όλ¦¬μ μœΌλ‘œ λΆ„μ„ν•œλ‹€", "직관을 λ”°λ₯Έλ‹€", "κ²½ν—˜μ— μ˜μ‘΄ν•œλ‹€", "감정에 λ”°λ₯Έλ‹€"],
["혼자만의 μ‹œκ°„μ„ μ„ ν˜Έν•œλ‹€", "μΉœκ΅¬λ“€κ³Ό μ–΄μšΈλ¦°λ‹€", "μƒˆλ‘œμš΄ ν™œλ™μ„ νƒμƒ‰ν•œλ‹€", "μ΅μˆ™ν•œ ν™œλ™μ„ 즐긴닀"],
["사싀과 데이터", "직관과 κ°€λŠ₯μ„±", "νƒ€μΈμ˜ 의견", "개인의 κ°€μΉ˜"],
["ν™œλ™μ μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν•œλ‹€", "혼자만의 μ‹œκ°„μ„ κ°–λŠ”λ‹€", "μΉœκ΅¬λ“€κ³Ό μ΄μ•ΌκΈ°ν•œλ‹€", "감정을 ν‘œν˜„ν•œλ‹€"],
["κ³„νšμ„ μ„Έμš΄λ‹€", "즉ν₯적으둜 ν–‰λ™ν•œλ‹€", "아이디어λ₯Ό λͺ¨μ€λ‹€", "κ²½ν—˜μ— μ˜μ‘΄ν•œλ‹€"],
["리더", "μ‘°μ–Έμž", "μ‹€ν–‰μž", "μ§€μ›μž"],
["λ³€ν™”λ₯Ό ν™˜μ˜ν•œλ‹€", "변화에 μ €ν•­ν•œλ‹€", "상황에 따라 λ‹€λ₯΄λ‹€", "λ¬΄κ΄€μ‹¬ν•˜λ‹€"],
["μ‹œκ°μ  자료", "청각적 자료", "μ‹€μŠ΅", "ν† λ‘ κ³Ό λŒ€ν™”"],
["리더", "μ‘°μ–Έμž", "λΆ„μœ„κΈ° 메이컀", "λ“¬μ§ν•œ μ§€μ›μž"]
]
iface = gr.Interface(
fn=determine_mbti,
inputs=[gr.Radio(options[i], label=question) for i, question in enumerate(questions)],
outputs="text",
title="MBTI 진단 ν…ŒμŠ€νŠΈ",
description="10개의 μ§ˆλ¬Έμ— λ‹΅ν•˜μ—¬ λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ„ μ•Œμ•„λ³΄μ„Έμš”."
)
iface.launch()
이 μ½”λ“œλŠ” μ‚¬μš©μžκ°€ 10개의 μ§ˆλ¬Έμ— λŒ€ν•΄ μ„ νƒν•œ 닡변을 기반으둜 MBTI μœ ν˜•μ„ κ²°μ •ν•˜κ³ , ν•΄λ‹Ή μœ ν˜•μ— λŒ€ν•œ κ°„λ‹¨ν•œ 해석을 μ œκ³΅ν•©λ‹ˆλ‹€. μ‹€μ œ MBTI μœ ν˜•μ„ κ²°μ •ν•˜λŠ” λ‘œμ§μ€ λ³΅μž‘ν•˜λ©°, μ—¬κΈ°μ„œλŠ” μ˜ˆμ‹œλ‘œ λͺ¨λ“  응닡을 "INTJ"둜 μ„€μ •ν–ˆμŠ΅λ‹ˆλ‹€. μ‹€μ œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” μ‚¬μš©μžμ˜ 응닡을 λΆ„μ„ν•˜μ—¬ λ‹€μ–‘ν•œ MBTI μœ ν˜• 쀑 ν•˜λ‚˜λ₯Ό κ²°μ •ν•˜λŠ” λ‘œμ§μ„ κ΅¬ν˜„ν•΄μ•Ό ν•©λ‹ˆλ‹€.
객관식 μ„ νƒμ—μ„œ μœ ν˜•μ„ ν‘œμ‹œν•˜μ§€ 말ꡬ 좜λ ₯ν•΄μ€˜
μ•„λž˜λŠ” μˆ˜μ •λœ μ½”λ“œμž…λ‹ˆλ‹€. μ΄λ²ˆμ—λŠ” 각 μ§ˆλ¬Έμ— λŒ€ν•œ 객관식 μ„ νƒμ§€μ—μ„œ MBTI μœ ν˜•μ„ 직접 ν‘œμ‹œν•˜μ§€ μ•Šκ³ , μ‚¬μš©μžκ°€ μ„ νƒν•œ 닡변을 기반으둜 MBTI μœ ν˜•μ„ κ²°μ •ν•˜λŠ” λ‘œμ§μ„ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. μœ ν˜• κ²°μ • λ‘œμ§μ€ μ˜ˆμ‹œλ‘œ κ°„λ‹¨ν•˜κ²Œ μ²˜λ¦¬λ˜μ—ˆμœΌλ©°, μ‹€μ œλ‘œλŠ” 더 λ³΅μž‘ν•œ μ•Œκ³ λ¦¬μ¦˜μ΄ ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
import gradio as gr
# MBTI μœ ν˜•λ³„ 해석
mbti_interpretations = {
"INTJ": "μ „λž΅κ°€, 독창적이고 독립적인 사고λ₯Ό 가진 μ‚¬λžŒ",
"INTP": "논리적인 사색가, 이둠적인 문제λ₯Ό ν•΄κ²°ν•˜λŠ”λ° λŠ₯μˆ™",
"ENTJ": "λŒ€λ‹΄ν•œ ν†΅μ†”μž, ν™œλ™μ μ΄κ³  지도λ ₯이 μžˆλŠ” μ‚¬λžŒ",
"ENTP": "뜨거운 λ…ΌμŸμ„ μ¦κΈ°λŠ” λ³€λ‘ κ°€, 지적 ν˜ΈκΈ°μ‹¬μ΄ λ§Žμ€ μ‚¬λžŒ",
"INFJ": "μ„ μ˜μ˜ 옹호자, μ‘°μš©ν•˜κ³  μ‹ λΉ„λ‘œμš΄, μ˜κ°μ„ μ£ΌλŠ” μ‚¬λžŒ",
"INFP": "열정적인 μ€‘μž¬μž, 창의적이고 μΉœμ ˆν•œ μ‚¬λžŒ",
"ENFJ": "사ꡐ적인 μ„ μƒλ‹˜, 타인을 λ•κ³ μž ν•˜λŠ” μ‚¬λžŒ",
"ENFP": "μž¬κΈ°λ°œλž„ν•œ ν™œλ™κ°€, 열정적이고 창의적인 μ‚¬λžŒ",
"ISTJ": "μ²­λ ΄κ²°λ°±ν•œ λ…Όλ¦¬μ£Όμ˜μž, μ‹€μš©μ μ΄κ³  사싀에 κΈ°λ°˜ν•œ μ‚¬λžŒ",
"ISFJ": "μš©κ°ν•œ 수호자, λ³΄ν˜Έν•˜κ³ μž ν•˜λŠ” μ‚¬λžŒ",
"ESTJ": "μ—„κ²©ν•œ κ΄€λ¦¬μž, μ§ˆμ„œμ™€ 전톡을 μ€‘μ‹œν•˜λŠ” μ‚¬λžŒ",
"ESFJ": "사ꡐ적인 외ꡐ관, μΉœμ ˆν•˜κ³  양심적인 μ‚¬λžŒ",
"ISTP": "만λŠ₯ 재주꾼, ν˜ΈκΈ°μ‹¬ 많고 μ‹€μš©μ μΈ μ‚¬λžŒ",
"ISFP": "ν˜ΈκΈ°μ‹¬ λ§Žμ€ μ˜ˆμˆ κ°€, μœ μ—°ν•˜κ³  맀λ ₯적인 μ‚¬λžŒ",
"ESTP": "λͺ¨ν—˜μ„ μ¦κΈ°λŠ” 사업가, μ—λ„ˆμ§€κ°€ λ„˜μΉ˜λŠ” μ‚¬λžŒ",
"ESFP": "자유둜운 영혼의 μ—°μ˜ˆμΈ, 즐거움을 μΆ”κ΅¬ν•˜λŠ” μ‚¬λžŒ"
}
# μ‚¬μš©μž 응닡을 기반으둜 MBTI μœ ν˜• κ²°μ •
def determine_mbti(*answers):
# 여기에 각 μ§ˆλ¬Έμ— λŒ€ν•œ 응닡을 λΆ„μ„ν•˜κ³  MBTI μœ ν˜•μ„ κ²°μ •ν•˜λŠ” 둜직 κ΅¬ν˜„
# 이 μ˜ˆμ œμ—μ„œλŠ” λ‹¨μˆœν™”λ₯Ό μœ„ν•΄ λͺ¨λ“  응닡을 "INTJ"둜 μ„€μ •
mbti_type = "INTJ"
interpretation = mbti_interpretations[mbti_type]
return f"λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ€ {mbti_type}μž…λ‹ˆλ‹€. {interpretation}"
# Gradio μΈν„°νŽ˜μ΄μŠ€ ꡬ성
questions = [
"μƒˆλ‘œμš΄ μ‚¬λžŒλ“€μ„ λ§Œλ‚  λ•Œ 주둜 μ–΄λ–»κ²Œ ν–‰λ™ν•˜λ‚˜μš”?",
"문제λ₯Ό ν•΄κ²°ν•  λ•Œ λ‹Ήμ‹ μ˜ μ ‘κ·Ό 방식은?",
"μ—¬κ°€ μ‹œκ°„μ„ 보낼 λ•Œ μ„ ν˜Έν•˜λŠ” ν™œλ™μ€?",
"μ˜μ‚¬ 결정을 ν•  λ•Œ κ°€μž₯ μ€‘μš”ν•˜κ²Œ μƒκ°ν•˜λŠ” 것은?",
"슀트레슀λ₯Ό 받을 λ•Œ 주둜 μ–΄λ–»κ²Œ λŒ€μ²˜ν•˜λ‚˜μš”?",
"μƒˆλ‘œμš΄ ν”„λ‘œμ νŠΈλ₯Ό μ‹œμž‘ν•  λ•Œ λ‹Ήμ‹ μ˜ νƒœλ„λŠ”?",
"νŒ€ ν”„λ‘œμ νŠΈμ—μ„œ λ‹Ήμ‹ μ˜ 역할은 주둜 λ¬΄μ—‡μΈκ°€μš”?",
"λ³€ν™”λ₯Ό λŒ€ν•  λ•Œ λ‹Ήμ‹ μ˜ νƒœλ„λŠ”?",
"ν•™μŠ΅ν•  λ•Œ μ„ ν˜Έν•˜λŠ” 방식은?",
"μΉœκ΅¬λ“€κ³Όμ˜ κ΄€κ³„μ—μ„œ 당신은 μ–΄λ–€ μ‚¬λžŒμΈκ°€μš”?"
]
options = [
["μ˜€ν”ˆ λ§ˆμΈλ“œλ‘œ μ ‘κ·Όν•œλ‹€", "μ‘°μ‹¬μŠ€λŸ½κ²Œ μ ‘κ·Όν•œλ‹€", "상황을 κ΄€μ°°ν•œλ‹€", "적극적으둜 μ°Έμ—¬ν•œλ‹€"],
["λ…Όλ¦¬μ μœΌλ‘œ λΆ„μ„ν•œλ‹€", "직관을 λ”°λ₯Έλ‹€", "κ²½ν—˜μ— μ˜μ‘΄ν•œλ‹€", "감정에 λ”°λ₯Έλ‹€"],
["혼자만의 μ‹œκ°„μ„ μ„ ν˜Έν•œλ‹€", "μΉœκ΅¬λ“€κ³Ό μ–΄μšΈλ¦°λ‹€", "μƒˆλ‘œμš΄ ν™œλ™μ„ νƒμƒ‰ν•œλ‹€", "μ΅μˆ™ν•œ ν™œλ™μ„ 즐긴닀"],
["사싀과 데이터", "직관과 κ°€λŠ₯μ„±", "νƒ€μΈμ˜ 의견", "개인의 κ°€μΉ˜"],
["ν™œλ™μ μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν•œλ‹€", "혼자만의 μ‹œκ°„μ„ κ°–λŠ”λ‹€", "μΉœκ΅¬λ“€κ³Ό μ΄μ•ΌκΈ°ν•œλ‹€", "감정을 ν‘œν˜„ν•œλ‹€"],
["κ³„νšμ„ μ„Έμš΄λ‹€", "즉ν₯적으둜 ν–‰λ™ν•œλ‹€", "아이디어λ₯Ό λͺ¨μ€λ‹€", "κ²½ν—˜μ— μ˜μ‘΄ν•œλ‹€"],
["리더", "μ‘°μ–Έμž", "μ‹€ν–‰μž", "μ§€μ›μž"],
["λ³€ν™”λ₯Ό ν™˜μ˜ν•œλ‹€", "변화에 μ €ν•­ν•œλ‹€", "상황에 따라 λ‹€λ₯΄λ‹€", "λ¬΄κ΄€μ‹¬ν•˜λ‹€"],
["μ‹œκ°μ  자료", "청각적 자료", "μ‹€μŠ΅", "ν† λ‘ κ³Ό λŒ€ν™”"],
["리더", "μ‘°μ–Έμž", "λΆ„μœ„κΈ° 메이컀", "λ“¬μ§ν•œ μ§€μ›μž"]
]
iface = gr.Interface(
fn=determine_mbti,
inputs=[gr.Radio(options[i], label=question) for i, question in enumerate(questions)],
outputs="text",
title="MBTI 진단 ν…ŒμŠ€νŠΈ",
description="10개의 μ§ˆλ¬Έμ— λ‹΅ν•˜μ—¬ λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ„ μ•Œμ•„λ³΄μ„Έμš”."
)
iface.launch()