티스토리 뷰
*이 문서는 계속 업데이트 됩니다.
*관련사이트 : https://dialogflow.com/docs
*Docs에서 Overview를 해석한 내용
--------------------------------------
사용하면서 이해/파악한 내용
1. Agents
: 자연어 이해 모듈로 설명된다. 이 모듈은 앱, 웹사이트, 상품 또는 서비스에 include될 수 있고, 텍스트나 말로 전달되는 사용자의 요청을 실행가능한 데이터로 번역한다. 사용자의 말이 agent에 존재하는 intent와 매칭될 때 번역이 가능하다. intent와 매칭되면 사용자에게 응답을 보내는데, 이 응답은 간단한 텍스트, 기존에 언급된 지식, 또는 다른 시스템으로부터 구해진 정보를 포함한 webhook response 등이 될 수 있다.
2. Intents
:Dialogflow에서 대화의 기본 흐름은 사용자의 input, input을 해석하는 agent, agent에서 사용자에게 보내는 응답으로 이루어지는데, intent는 여기에서 사용자의 input과 응답을 매칭하는 역할을 한다. 각각의 intent에서는 다른 intent와 연결되는 사용자의 말(input)의 예를 정하고, 사용자의 말에서 추출되어야 하는 정보와 어떻게 반응할지에 대해 정의한다.
intent는 대화에서 1회의 dialog를 의미한다. (사용자가 말을 하고 intent가 응답하는 것을 dialog 1회로 보면 될 것 같다.)
3. Entities
: 자연어 input으로부터 쓸모있는 데이터를 확인하고 추출하는 기구라고 할 수 있다. intent를 통해 agent가 사용자의 특정한 input에 내포된 의도를 파악할 때, 사용자가 말한(mention)한 정보의 특정 부분을 끄집어 내는 데에 entity들을 사용한다. 거리명, 상품명, 단위의 합계 등등 어떤 부분이든. 사용자의 요청에서 우리가 구하고자 하는 중요한 데이터는 entity와 호응을 이룰 것이다.
-----------------------------------------------------------------------
일종의 단어 그룹(사전?)이라고 할 수 있겠다. 어떤 맥락에서 나온 단어들을 이렇게 해석하면 된다고 먼저 짝지어 놓은 것으로 intent는 이 entity를 참고하여 input과 응답을 매칭한다.
Entity 생성 페이지에서 Enter synonym에는 사용자의 input에 들어올만한 여러가지 비슷한 단어들을 입력하고, Enter reference value에는 그 단어들을 봇에서 어떻게 받아들이면 되는지 비슷한 단어들을 묶어주는 단어를 입력하면 된다.
그리고 intent에서 Training phrases 중 synonym에 해당하는 단어들에 entity를 걸어두면(?) 응답할 때에는 reference value 값을 사용하여 응답을 할 수 있다.
4. Contexts
: 사용자 요청의 현재 상태를 의미하는데, 한 intent에서 다른 intent로 정보를 전달하게 한다. input과 output context의 조합을 이용해서 사용자가 dialog를 통해 이동하는 대화경로를 제어할 수 있다.
-----------------------------------------------------------------------
Context는 intent 사이에 주고받는 parameter 설정을 의미하는 것 같다. intent에 Add followup 을 설정하면 이전 dialog에서 다음 dialog로 parameter를 넘겨주도록 자동으로 Contexts에 인자(*-followup)가 생긴다. 이를 통해 다음 dialog는 이전 dialog에서 사용했던 중요한 단어들을 자신의 차례에서 계속 사용할 수 있게 된다.
5. Events
: 사용자와의 대화 대신에 일어난 사건을 기반으로 intent를 찾게 한다. Dialogflow는 구글어시스턴트, 슬랙 등과 같은 플랫폼들의 (해당 플랫폼에서 이루어진) 사용자 액션에 기반한 events를 지원한다. 또한 fulfillment 또는 detectIntent API를 통해서 custom events를 예약할(trigger) 수 있다.
6. Fulfillment
: webhook으로서 배포된 코드를 뜻한다. webhook은 dialogflow agent이 intent-by-intent에 기반하여 비지니스 로직을 호출할 수 있도록 돕는다. Dialogflow의 자연어 프로세싱은 백엔드에서 동적인 응답 또는 예약된 행위를 생성하여 정보를 추출하는데, fulfillment는 대화화는 동안, 이렇게 추출된 정보를 이용할 수 있게 한다.
'Dialogflow' 카테고리의 다른 글
[Dialogflow] com.google.api.gax.rpc.UnavailableException: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception (0) | 2019.08.26 |
---|---|
Dialogflow - Webhook (0) | 2019.01.25 |