Skip to content

[FEAT] 대화 연습 모드 기능 구현 #18

@ParkSangsin

Description

@ParkSangsin

Issue 타입

  • 기능 추가

상세 내용

  • 사용자와 AI가 1대1로 채팅할 수 있습니다.
  • AI의 Persona는 정해진 틀에서 무작위로 결정됩니다.

API

  • 사용자의 연습모드 페르소나를 결정하여 채팅방을 생성하는 API를 구현합니다.
  • 이전 채팅 내역에 맞게, 특정 페르소나를 가진 챗봇의 답변을 생성하는 API를 구현합니다.

Persona Category

SIMULATION_PERSONA_CATEGORIES = {
    "basic_info": {
        "gender": ["남성", "여성"],
        "age_group": [
            "40대 초반",
            "40대 후반",
            "50대 초반",
            "50대 후반",
            "60대 초반",
            "60대 후반",
            "70대 초반",
            "70대 후반",
        ],
        "hometown": [
            "서울",
            "경기",
            "강원도",
            "충청남도",
            "충청북도",
            "전라남도",
            "전라북도",
            "경상남도",
            "경상북도",
            "제주도",
        ],
        "current_residence": ["아파트", "주택", "요양시설", "가족과 함께", "혼자 거주"],
        "religion": ["무교", "기독교", "불교", "천주교", "기타"],
    },
    "relationship_values": {
        "marriage_intent": [
            "결혼까지 생각 있음",
            "좋은 사람 있으면 생각 있음",
            "가벼운 만남 원함",
            "친구부터 천천히",
        ],
        "companion_type": [
            "같이 취미 즐길 사람",
            "마음 나눌 친구",
            "가치관 맞는 배우자감",
            "대화 잘 통하는 사람",
        ],
        "dating_style": [
            "자주 연락하는 편",
            "서로 여유를 존중",
            "감정 표현 많은 편",
            "천천히 가까워짐",
        ],
        "family_acceptance": [
            "상대 자녀/가족도 이해 가능",
            "부담스럽지 않으면 좋음",
            "자녀 간섭 없길 바람",
        ],
        "past_experience": ["해당 없음", "이혼 경험 있음", "사별 경험 있음"],
    },
    "personality_traits": {
        "keyword": [
            "다정함",
            "유쾌함",
            "조용함",
            "듬직함",
            "배려심 많음",
            "말솜씨 좋음",
            "진중함",
            "낙천적임",
        ],
        "conversation_style": [
            "경청 위주",
            "재밌는 이야기 좋아함",
            "정보 나누기 좋아함",
            "가볍게 수다",
        ],
        "personality_type": [
            "낯가림 있음",
            "개방적인 편",
            "신중하게 접근",
            "먼저 다가가는 편",
        ],
    },
    "hobbies_activities": {
        "indoor_hobby": [
            "책 읽기",
            "TV 시청",
            "요리",
            "글쓰기",
            "수공예",
            "음악 감상",
        ],
        "outdoor_hobby": [
            "산책",
            "등산",
            "시장/카페 나들이",
            "여행",
            "사진 찍기",
            "운동",
        ],
        "cultural_activity": [
            "영화 감상",
            "전시회/공연",
            "복지관 프로그램",
            "종교 모임",
            "자원봉사",
        ],
    },
    "lifestyle": {
        "wake_up_time": ["새벽형", "아침형", "늦은 아침형"],
        "eating_habit": [
            "혼자 식사",
            "식사 같이 하고 싶음",
            "건강식 선호",
            "소식하는 편",
        ],
        "outing_frequency": ["매일 외출", "주 2~3회", "주말 중심", "거의 외출 안 함"],
        "daily_rhythm": ["규칙적", "유동적", "낮잠 자주", "활동적"],
    },
    "health_independence": {
        "health_status": [
            "활동에 지장 없음",
            "가벼운 통증/관리 중",
            "도움이 조금 필요",
            "의료기기 사용 중",
        ],
        "independent_living": [
            "혼자 완전 자립",
            "가끔 가족 도움",
            "누군가 곁에 있으면 좋겠음",
        ],
        "transportation": ["운전 가능", "대중교통 이용", "이동 도움 필요"],
    },
    "tech_literacy": {
        "smartphone_usage": [
            "익숙함",
            "카톡/영상통화 정도 가능",
            "자녀 도움 받음",
            "혼자 사용 어려움",
        ],
        "preferred_contact_method": ["카카오톡", "전화 통화", "영상통화", "문자"],
    },
}
PERSONA_EXAMPLE = {
  "basic_info": {
    "name": "박선희",
    "gender": "여성",
    "age_group": "60대 후반",
    "hometown": "전라북도",
    "current_residence": "아파트",
    "religion": "기독교"
  },
  "relationship_values": {
    "marriage_intent": "좋은 사람 있으면 생각 있음",
    "companion_type": "같이 취미 즐길 사람",
    "dating_style": "감정 표현 많은 편",
    "family_acceptance": "상대 자녀/가족도 이해 가능",
    "past_experience": "사별 경험 있음"
  },
  "personality_traits": {
    "keyword": "배려심 많음",
    "conversation_style": "재밌는 이야기 좋아함",
    "personality_type": "먼저 다가가는 편"
  },
  "hobbies_activities": {
    "indoor_hobby": "요리",
    "outdoor_hobby": "산책",
    "cultural_activity": "자원봉사"
  },
  "lifestyle": {
    "wake_up_time": "아침형",
    "eating_habit": "식사 같이 하고 싶음",
    "outing_frequency": "주 2~3회",
    "daily_rhythm": "규칙적"
  },
  "health_independence": {
    "health_status": "가벼운 통증/관리 중",
    "independent_living": "혼자 완전 자립",
    "transportation": "대중교통 이용"
  },
  "tech_literacy": {
    "smartphone_usage": "카톡/영상통화 정도 가능",
    "preferred_contact_method": "카카오톡"
  }
}

일정

  • 추정 시간: 2 day

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions