Update app.py
Browse files
app.py
CHANGED
|
@@ -21,31 +21,63 @@ model = genai.GenerativeModel(
|
|
| 21 |
generation_config=generation_config,
|
| 22 |
)
|
| 23 |
|
| 24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
|
| 26 |
system_prompt = f"""
|
| 27 |
-
당신은 MBTI 전문가이자 관계 코치입니다. 아래
|
| 28 |
-
|
| 29 |
[대상자 정보]
|
| 30 |
-
- {
|
| 31 |
-
- {
|
|
|
|
|
|
|
| 32 |
[상황]
|
| 33 |
- {situation}
|
| 34 |
-
|
| 35 |
[요청 사항]
|
| 36 |
-
1. **
|
| 37 |
-
- 핵심 가치, 성격적 특징, 강점과 약점, 주의할 점 등을 포함하여 자세히 설명해주세요.
|
| 38 |
-
2. **{partner_name} ({partner_gender})의 MBTI 유형({partner_mbti})에 대한 상세 설명:**
|
| 39 |
- 핵심 가치, 성격적 특징, 강점과 약점, 주의할 점 등을 포함하여 자세히 설명해주세요.
|
| 40 |
-
|
| 41 |
-
-
|
| 42 |
-
- 각
|
| 43 |
-
- 시나리오에
|
| 44 |
-
|
| 45 |
- 각 대상자가 상대방의 MBTI 유형을 이해하고, 더 나은 관계를 형성하기 위한 구체적인 상황과 행동을 예시로 제시해주세요.
|
| 46 |
- 조언에 {my_name}과 {partner_name}의 이름, 성별, MBTI 유형이 모두 반영되어야 합니다.
|
| 47 |
- 그리고 조언의 내용에 상대방에게 하면 좋은 말과 행동의 구체적 예시를 포함해야 합니다.
|
| 48 |
-
---
|
| 49 |
"""
|
| 50 |
|
| 51 |
full_text = ""
|
|
@@ -62,36 +94,35 @@ def generate_date_scenario(my_name, my_gender, my_mbti, partner_name, partner_ge
|
|
| 62 |
|
| 63 |
return full_text
|
| 64 |
|
| 65 |
-
# Streamlit 인터페이스
|
| 66 |
-
st.set_page_config(page_title="MBTI 데이트 시뮬레이터", page_icon="❤️")
|
| 67 |
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
)
|
|
|
|
|
|
|
| 73 |
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
st.
|
| 77 |
-
|
| 78 |
-
my_gender = st.selectbox("내 성별", ["남성", "여성"])
|
| 79 |
-
my_mbti = st.selectbox("내 MBTI 유형", ["ISTJ", "ISFJ", "INFJ", "INTJ", "ISTP", "ISFP", "INFP", "INTP", "ESTP", "ESFP", "ENFP", "ENTP", "ESTJ", "ESFJ", "ENFJ", "ENTJ"])
|
| 80 |
|
| 81 |
-
|
| 82 |
-
partner_name = st.text_input("상대방 이름
|
| 83 |
-
partner_gender = st.
|
| 84 |
-
partner_mbti = st.selectbox("상대방 MBTI 유형",
|
| 85 |
|
| 86 |
-
|
| 87 |
-
|
| 88 |
|
| 89 |
-
|
| 90 |
|
| 91 |
-
# 메인 영역 출력
|
| 92 |
scenario_output_area = st.empty()
|
| 93 |
|
| 94 |
-
if
|
| 95 |
-
full_text =
|
|
|
|
|
|
|
| 96 |
if full_text:
|
| 97 |
scenario_output_area.markdown(markdown.markdown(full_text), unsafe_allow_html=True)
|
|
|
|
| 21 |
generation_config=generation_config,
|
| 22 |
)
|
| 23 |
|
| 24 |
+
# MBTI 유형 정보
|
| 25 |
+
mbti_types = {
|
| 26 |
+
"ISTJ": "청렴결백한 논리주의자",
|
| 27 |
+
"ISFJ": "용감한 수호자",
|
| 28 |
+
"INFJ": "선의의 옹호자",
|
| 29 |
+
"INTJ": "용의주도한 전략가",
|
| 30 |
+
"ISTP": "만능 재주꾼",
|
| 31 |
+
"ISFP": "호기로운 예술가",
|
| 32 |
+
"INFP": "열정적인 중재자",
|
| 33 |
+
"INTP": "논리적인 사색가",
|
| 34 |
+
"ESTP": "모험을 즐기는 사업가",
|
| 35 |
+
"ESFP": "자유로운 영혼의 연예인",
|
| 36 |
+
"ENFP": "재기발랄한 활동가",
|
| 37 |
+
"ENTP": "박학다식한 발명가",
|
| 38 |
+
"ESTJ": "엄격한 관리자",
|
| 39 |
+
"ESFJ": "사교적인 외교관",
|
| 40 |
+
"ENFJ": "정의로운 사회운동가",
|
| 41 |
+
"ENTJ": "대담한 통솔자"
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
# 관계 유형
|
| 45 |
+
relationship_types = {
|
| 46 |
+
"연인": "Romantic Couple",
|
| 47 |
+
"부부": "Married Couple",
|
| 48 |
+
"친구": "Friends",
|
| 49 |
+
"가족": "Family",
|
| 50 |
+
"직장 동료": "Coworkers",
|
| 51 |
+
"기타": "Others"
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
def generate_relationship_scenario(my_name, my_gender, my_mbti, partner_name, partner_gender, partner_mbti, relationship, situation):
|
| 56 |
+
my_type_info = f"{my_name} ({my_gender}): {my_mbti} ({mbti_types.get(my_mbti, '알 수 없는 유형')})"
|
| 57 |
+
partner_type_info = f"{partner_name} ({partner_gender}): {partner_mbti} ({mbti_types.get(partner_mbti, '알 수 없는 유형')})"
|
| 58 |
|
| 59 |
system_prompt = f"""
|
| 60 |
+
당신은 MBTI 전문가이자 관계 코치입니다. 아래 정보를 바탕으로 관계 시나리오를 작성해주세요.
|
| 61 |
+
|
| 62 |
[대상자 정보]
|
| 63 |
+
- {my_type_info}
|
| 64 |
+
- {partner_type_info}
|
| 65 |
+
[관계]
|
| 66 |
+
- {relationship}
|
| 67 |
[상황]
|
| 68 |
- {situation}
|
| 69 |
+
|
| 70 |
[요청 사항]
|
| 71 |
+
1. **각 대상자의 MBTI 유형에 대한 상세 설명:**
|
|
|
|
|
|
|
| 72 |
- 핵심 가치, 성격적 특징, 강점과 약점, 주의할 점 등을 포함하여 자세히 설명해주세요.
|
| 73 |
+
2. **관계 유형과 상황을 고려한 구체적인 시나리오 작성:**
|
| 74 |
+
- 주어진 관계 유형과 상황에 맞는 현실적인 상호작용을 묘사해주세요.
|
| 75 |
+
- 각 인물의 MBTI 유형이 어떻게 반영되는지 명확하게 보여주세요.
|
| 76 |
+
- 시나리오에 모든 입력 정보(이름, 성별, 유형, 관계, 상황)가 포함되어야 합니다.
|
| 77 |
+
3. **서로 이해하고 관계를 개선하기 위한 조언:**
|
| 78 |
- 각 대상자가 상대방의 MBTI 유형을 이해하고, 더 나은 관계를 형성하기 위한 구체적인 상황과 행동을 예시로 제시해주세요.
|
| 79 |
- 조언에 {my_name}과 {partner_name}의 이름, 성별, MBTI 유형이 모두 반영되어야 합니다.
|
| 80 |
- 그리고 조언의 내용에 상대방에게 하면 좋은 말과 행동의 구체적 예시를 포함해야 합니다.
|
|
|
|
| 81 |
"""
|
| 82 |
|
| 83 |
full_text = ""
|
|
|
|
| 94 |
|
| 95 |
return full_text
|
| 96 |
|
|
|
|
|
|
|
| 97 |
|
| 98 |
+
# Streamlit UI
|
| 99 |
+
st.set_page_config(page_title="MBTI 관계 시뮬레이터", page_icon="🤝")
|
| 100 |
+
|
| 101 |
+
st.title("🤝 MBTI 관계 시뮬레이터")
|
| 102 |
+
st.write("두 사람의 MBTI 유형과 관계, 상황을 입력하여 관계 시나리오를 생성해보세요.")
|
| 103 |
+
|
| 104 |
+
tab1, tab2 = st.tabs(["👤 내 정보", "👥 상대방 정보"])
|
| 105 |
|
| 106 |
+
with tab1:
|
| 107 |
+
my_name = st.text_input("내 이름/닉네임", "나")
|
| 108 |
+
my_gender = st.radio("내 성별", ["남성", "여성"])
|
| 109 |
+
my_mbti = st.selectbox("내 MBTI 유형", list(mbti_types.keys()))
|
|
|
|
|
|
|
| 110 |
|
| 111 |
+
with tab2:
|
| 112 |
+
partner_name = st.text_input("상대방 이름/닉네임", "상대방")
|
| 113 |
+
partner_gender = st.radio("상대방 성별", ["남성", "여성"])
|
| 114 |
+
partner_mbti = st.selectbox("상대방 MBTI 유형", list(mbti_types.keys()))
|
| 115 |
|
| 116 |
+
relationship = st.selectbox("관계 유형", list(relationship_types.keys()))
|
| 117 |
+
situation = st.text_area("상황 (예: 갈등 상황, 특별한 이벤트 등)", height=150)
|
| 118 |
|
| 119 |
+
generate_button = st.button("시나리오 생성 ➡️")
|
| 120 |
|
|
|
|
| 121 |
scenario_output_area = st.empty()
|
| 122 |
|
| 123 |
+
if generate_button:
|
| 124 |
+
full_text = generate_relationship_scenario(
|
| 125 |
+
my_name, my_gender, my_mbti, partner_name, partner_gender, partner_mbti, relationship, situation
|
| 126 |
+
)
|
| 127 |
if full_text:
|
| 128 |
scenario_output_area.markdown(markdown.markdown(full_text), unsafe_allow_html=True)
|