Event/Instruction 처리
Event가 발생하여 이에 대한 응답으로 Instruction이 처리되는 방식은 다음과 같습니다.
Event 발생
Event는 Service Agent에서 발생할 수 있으며 각 경우에 따라 Event 발생 방식이 다릅니다. Service Agent에서 Event가 발생하는 경우는 다음과 같습니다.
표Service Agent에서 Event 발생 예시구분 | Event |
---|---|
사용자가 음성 인식 버튼을 눌러 발화 시작 | Recognizer.Speech |
볼륨 변경 | Speaker.VolumeChanged |
Pause 버튼 클릭 | PlaybackController.PauseCommanded |
반면 시스템에서의 Event 발생은 디바이스의 전원이 OFF 상태에서 ON 상태로 전환된 경우가 해당하며, 이때 다음의 Event가 발생합니다.
표시스템에서 Event 발생 예시구분 | Event |
---|---|
카카오 i 서버와 동기화 | System.SynchronizeState |
카카오 i 서버가 재생 명령에 따라 오디오 재생을 시작 | AudioPlayer.Started |
카카오 i 서버로 Event 메시지를 전송할 때, Event 자체의 정보뿐만 아니라 Service Agent의 최신 정보를 포함한 State 메시지도 함께 전송할 수 있습니다. 예를 들어 현재 오디오가 재생 여부를 판단하여 조건부 수행을 하는 동작이라면 해당 Event 메시지와 디바이스의 재생 상태 정보를 포함한 State 메시지가 카카오 i 서버로 함께 전달됩니다. 카카오 i 서버는 Service Agent가 전달한 Event 메시지를 처리하기 위해 특정 비즈니스 로직이 구현된 Skill 서버와 인터랙션을 하여 해당 요청을 처리한 후에 Instruction 메시지 형태로 Service Agent에 응답을 전송합니다.
안내
시스템에서 발생하는 Event에는 일정한 규칙이 존재합니다.
- 규칙을 준수하여 Event 메시지를 전송해야 카카오 i 서버에서 관리하는 Context를 항상 최신으로 유지할 수 있습니다.
- 해당 Event를 정확하게 처리할 수 있습니다.
Instruction 처리
Service Agent는 수신한 Instruction을 다음의 방식으로 처리할 수 있습니다.
- 소리(음원)를 발생
- 결과 내용을 디바이스 화면에 표시
- 업데이트된 인스턴스 정보를 갱신