Skip to content

[refactor] 엉뚱이(QUIRKY) 소재 목록 placeholder 교체 #15

Description

@kite707

배경

엉뚱이(QUIRKY)는 항상 랜덤한 소재를 하나 선택해 먼저 대화를 시작합니다. 사용자의 첫 입력 의도와 관계없이 밥 먹고 싶다, 졸리다처럼 엉뚱하고 헛소리 같은 말을 하는 것이 서비스의 핵심 톤입니다.

다만 사용자가 엉뚱이의 말에 답장한 이후에는, 엉뚱한 분위기는 유지하되 사용자의 답변을 무시하지 않고 의미 있게 이어서 답변해야 합니다.

대상 코드 / 범위

  • src/main/kotlin/com/nexters/gamss/llm/EongttungTopicSelector.kt
  • 엉뚱이의 초기 대화 소재 목록 및 소재 선택 로직
  • 사용자의 답장에 대한 후속 응답 프롬프트/생성 로직(필요한 경우)

현재 문제점

  • 이슈 #4에서 임시로 넣은 10개 소재가 자리채우기용 placeholder입니다.
  • 실제 서비스의 엉뚱하고 유쾌한 톤을 충분히 반영하지 못합니다.
  • 엉뚱이가 사용자의 첫 입력과 무관하게 소재를 던지는 특성과, 사용자가 답장했을 때 의미 있게 반응해야 한다는 대화 규칙이 명확히 정리되어 있지 않습니다.

개선 방향

  1. 임시 소재를 실제 서비스 톤에 맞는 소재로 교체합니다.
    • 일상적이지만 맥락 없이 튀어나오는 주제
    • 엉뚱하고 유쾌한 상상
    • 사용자가 답장하고 싶을 만한 질문 또는 말꼬리
    • 과도하게 공격적이거나 불쾌감을 줄 수 있는 소재는 제외
  2. 엉뚱이의 첫 발화는 사용자의 입력 의도와 무관하게 랜덤 소재를 기반으로 생성합니다.
  3. 사용자가 엉뚱이의 첫 발화에 답장하면:
    • 답변의 핵심 내용이나 감정을 파악하고
    • 엉뚱이 특유의 분위기는 유지하되
    • 사용자의 답변과 직접 연결되는 의미 있는 후속 응답을 생성합니다.
  4. 필요하면 고정 소재 목록을 확장하거나, 카테고리별 랜덤 조합 방식으로 소재 생성 구조를 재검토합니다.

예시

  • 엉뚱이: “감자는 왜 항상 네모난 꿈을 꿀까?”
  • 사용자: “감자가 꿈도 꿔?”
  • 엉뚱이: “그럼! 특히 월요일에는 으깬 감자처럼 축 처지는 꿈을 꾼대.”

사용자의 답변과 무관하게 또 다른 헛소리를 반복하는 것이 아니라, 답변의 내용에 반응하면서 엉뚱한 톤을 이어가야 합니다.

✅ 완료 조건 (DoD)

  • 임시 placeholder 소재를 실제 서비스 톤의 소재로 교체
  • 엉뚱이의 초기 발화가 사용자의 첫 입력과 무관하게 랜덤 소재에서 시작되는 기존 동작 유지
  • 사용자가 답장했을 때 답변의 내용/감정을 반영한 의미 있는 후속 응답 생성
  • 엉뚱한 분위기와 유쾌한 서비스 톤 유지
  • 공격적·차별적·불쾌감을 줄 수 있는 소재 제외
  • 기존 동작에 대한 테스트 통과 및 초기 발화/후속 응답 시나리오 테스트 추가
  • 관련 프롬프트 또는 소재 생성 로직 변경 사항 문서화

우선순위

미정

연관 이슈

관련 #4

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions