본문 바로가기

Dev Stories/AI|ML(인공지능|머신러닝)

다중 의도 처리 (Multi-intent Handling)

반응형

다중 의도(Multi-intent) 처리 방식

순차 실행 (Sequential Execution)

  • 사용자가 한 문장 안에 여러 명령을 말해도 시스템은 이를 분리해서 차례로 실행한다.
  • 예 : 음악을 틀고 불을 꺼줘.  >  [명령1 : 음악 재생]  >  [명령2 : 조명 끄기]

병렬 실행 (Parallel Execution)

  • 시스템이 동시에 여러 명령을 실행할 수 있다면 동시에 처리한다.
  • 다만, 제어나 API 호출이 얽혀 있는 경우 충돌 방지 로직이 필요하다.

다중의도(Multi-intent) 분석 프로세스

대화 관리(Dialog Management) 모듈

의도 분류 (Intent Classification)

  • 사용자 발화를 여러 의도로 분해한다.
  • 예 : "내일 오전 9시에 회의 일정을 잡고, 거실 조명을 꺼줘."
    • 의도1 : 일정 생성
    • 의도2 : 스마트홈 제어

슬롯 추출 (Slot Filling)

  • 각 명령이 필요로 하는 인자를 채운다.
  • 예 : "내일 오전 9시에 회의 일정을 잡아줘"
    • 날짜 = "내일"
    • 시간 = "09:00"
    • 이벤트 = "회의"

실행 정책 (Policy)

  • 어떤 순서로 실행할지 결정한다.
  • 인텐트가 여러 개일 경우 우선순위를 정해 실행하거나, 병렬 실행 가능 여부를 판단하여 실행한다.
    • 독립 실행 가능 > 동시에 실행
    • 종속 관계 > 순차 실행
      • 예 : "문 열고 나가서 불 꺼"

오류 허용성 (Fault Tolerance)

  • 일부 명령이 실패하더라도 시스템이 전체 동작을 멈추지 않고 실행 여부를 결정한다.
  • 부분 실패(Partial Failure)를 견디는 구조이다.
  • 명령 단위 실행을 격리하여 각 인텐트 실행을 독립된 트랙잭션으로 다룬다.
  • 에러 핸들링 정책
    • Continue-on-error : 실패한 명령은 무시하고 나머지 실행
    • Rollback : 실패 시 이전 실행도 취소
    • Compensation : 실패한 명령에 대해 대체 작업 수행

대화적 재확인 (Clarification)

  • 사용자가 다중 명령 중 하나를 모호하게 말했을 때 질문한다.
  • 대화적 재확인 핸들링
    • 슬롯 충전(Slot Filling) : 의도는 파악했지만 필요한 슬롯 정보가 부족하면 질문한다.
    • 모호성 해소(Disambiguation) : 여러 해석 가능성이 있을 때, 사용자에게 선택을 요청한다.
    • 대화 흐름 제어 : 재확인 질문은 자연스럽게 대화 맥락 안에서 이어지도록 설계한다.

실행과 피드백 (Execution and Feedback)

  • 명령을 실행하고 결과를 사용자에게 알려준다.
  • 예 : "내일 9시에 회의 일정을 추가했습니다. 조명은 껐습니다."

반응형