구조 설명 및 Document 정의
Agent
- 최종 사용자와의 대화를 처리하는 가상 Agent입니다.
- 이는 인간 언어의 미묘한 차이를 이해하는 자연어 이해 모듈입니다.
- Dialogflow는 대화로 이루어진 최종 사용자의 텍스트 또는 오디오를 앱과 서비스가 이해할 수 있는 구조화된 데이터로 변환합니다. 시스템에 필요한 대화 유형을 처리하도록 Dialogflow Agent를 직접 설계하고 빌드할 수 있습니다.
- Dialogflow Agent는 콜센터 상담원과 유사합니다. 둘 다 예상되는 대화 시나리오를 처리하도록 학습해야 하며, 학습이 지나치게 명시적일 필요는 없습니다.
참고 : https://cloud.google.com/dialogflow/es/docs/agents-overview?hl=ko
-
Intents
- 한 번의 대화 차례에 대한 최종 사용자의 의도를 분류. 각 Agents에 대해 결합된 Intents가 전체 대화를 처리할 수 있는 여러 Intents를 정의합니다
- 예)
What's the temperature going to be tomorrow in Seattle
$location = Seattle
$time = tomorrow
- 설명 : 사용자가 질문을 하게 되면 Agents에서 대화 내용을 인식하고 Intents 분류를 합니다. 이때 Intents는 문장의 데이터를 분류하고 매개 변수에 데이터를 입력합니다.
- 기능
- Training phrases : 사용자가 입력한 내용을 구분할 수 있으며 유사한 Intents를 찾도록 합니다. Dialogflow의 기본 Training phrases로 유사한 목록에서 구문으로 확장하므로 가능한 모든 예시를 정의할 필요가 없습니다.
- Action : Intents별로 액션을 정의할 수 있습니다. Intents가 일치하면 Dialogflow는 시스템에 작업을 제공하고 작업을 사용하여 시스템에 정의된 특정 작업을 실행할 수 있습니다.
- Parameters : 런타임에 Intents가 일치하면 Dialogflow는 최종 사용자 표현식에서 추출된 값을 매개변수로 제공합니다. 각 매개 변수에는 데이터가 추출되는 방식을 정확하게 나타내는 Entity 유형이 존재하는데 사용자가 입력한 내용과 달리 일부 논리를 수행하거나 응답을 생성하는데 쉽게 사용할 수 있는 구조화된 데이터입니다. ex) $location or $time
- Responses : 사용자에게 반환할 텍스트, 음성 또는 시각적 응답을 정의합니다. 이때 사용자에게 답변을 제공하거나 사용자에게 추가 정보를 요청하거나 대화를 종료할 수 있습니다.
- 더 복잡한 기능도 수행 가능
- Contexts : Dialogflow Contexts는 자연어 Contexts와 유사합니다. 어떤 사람이 "그들은 주황색입니다."라고 말하면 그 사람이 무엇을 말하는지 이해하기 위해 콘텍스트가 필요합니다. 마찬가지로 Dialogflow가 이와 같은 최종 사용자 표현식을 처리하려면 Intents를 올바르게 일치시키기 위해 Context가 제공되어야 합니다.
- Events : Events를 사용하면 최종 사용자가 통신하는 대신 발생한 일을 기반으로 Intents를 호출할 수 있습니다.
-
Entities
- 각 Intents Parameter에는 Entities라는 유형이 있어서 사용자가 입력한 내용에서 데이터를 추출하는 방법을 정확하게 지정합니다.
- Dialogflow에서는 여러 일반적인 데이터 유형과 일치할 수 있는 사전 정의된 시스템 항목을 제공합니다. ex) 날짜, 시간, 생상, 이메일 주소 등...
- 사전 정의된 내용 말고 Custom Entities를 직접 만들 수 있습니다.
- Entity 용어
- Entity type : 사용자 입력에서 추출하고자 하는 정보의 유형을 정의합니다. 예를 들어 야채는 개체 유형의 이름일 수 있습니다. Dialogflow 콘솔에서 Create Entity를 클릭하면 개체 유형이 생성됩니다.
- Entity entry :각 개체 유형에는 많은 Entity entry이 있습니다. 각 개체 항목은 동일한 것으로 간주되는 일련의 단어 또는 구문을 제공합니다.
- Entity reference value and synonyms : 일부 개체 항목은 위의 Java 예시와 동일한 것으로 간주되는 단어 또는 문구가 여러 개 있습니다. 이러한 항목 입력에는 참조값과 하나 이상의 동의어를 제공합니다.
-
Context
- Dialogflow Context는 자연어 Context와 비슷합니다.
- 누가 여러분에게 '그건 오렌지입니다.'라고 말할 때 무엇을 가리키는 것인지 알려면 Context가 필요합니다. 마찬가지로 Dialogflow가 이러한 최종 사용자 표현을 처리하려면 Intents 정확하게 일치시키기 위해 Context가 제공되어야 합니다.
- 콘텍스트를 사용하여 대화의 흐름을 제어할 수 있습니다. 문자열 이름으로 식별되는 입력 및 출력 컨텍스트를콘텍스트를 설정하여 인텐트의 콘텍스트를 구성할 수 있습니다. 인텐트가 일치하면 해당 인텐트에 대해 구성된 출력 컨텍스트가 활성화됩니다. 활성화된 콘텍스트가 있으면 Dialogflow에서는 현재 활성화된 콘텍스트에 해당하는 입력 컨텍스트로 구성된 인텐트를 일치시킬 가능성이 높습니다.
- 예

- 최종 사용자가 당좌 예금 계좌에 대한 정보를 요청합니다.
- Dialogflow는 이 최종 사용자 표현을 CheckingInfo Intents와 일치시킵니다. 이 Intents에 Checking출력 Contexts가 있으므로 이 Contexts가 활성화됩니다.
- Agents가 최종 사용자에게 당좌 예금 계좌에 대해 필요한 정보 유형을 요청합니다.
- 최종 사용자가 '내 잔액'이라고 응답합니다.
- Dialogflow는 이 최종 사용자 표현을
CheckingBalance
인텐트와 일치시킵니다. 이 인텐트에는 checking
입력 콘텍스트가 있으며, 이 컨텍스트가 활성화된 상태여야 이 인텐트와 일치시킬 수 있습니다. 유사한 SavingsBalance
인텐트가 있어 savings
컨텍스트가 활성화된 경우 동일한 최종 사용자 표현에 일치시킬 수 있습니다.
- 시스템이 필요한 데이터베이스 쿼리를 수행하면 에이전트가 당좌 예금 잔액으로 응답합니다.
참고 : https://cloud.google.com/dialogflow/es/docs/contexts-overview?hl=ko
-
Events
-
Fulfillment
- 기본적으로 Agent는 정적 응답으로 일치하는 Intents에 응답합니다. Intergration 옵션 중 하나를 사용하는 경우 fulfillment를 사용하여 보다 동적인 응답을 제공할 수 있습니다.

- 최종 사용자가 표현을 입력하거나 말합니다.
- Dialogflow가 최종 사용자 표현을 인텐트와 일치시키고 매개변수를 추출합니다.
- Dialogflow가 웹 훅 서비스에 웹 훅 요청 메시지를 보냅니다. 이 메시지에는 일치하는 인텐트, 작업, 매개변수, 인텐트에 정의된 응답에 대한 정보가 포함됩니다.
- 서비스가 필요에 따라 데이터베이스 쿼리 또는 외부 API 호출과 같은 작업을 수행합니다.
- 서비스에서 Dialogflow에 웹 훅 응답 메시지를 보냅니다. 이 메시지에는 최종 사용자에게 전송되어야 하는 응답이 포함됩니다.
- Dialogflow가 이 응답을 최종 사용자에게 보냅니다.
- 최종 사용자가 응답을 보거나 듣습니다.
-
Intergration
- Dialogflow는 Google Assistant, Slack, Facebook Messenger와 같이 널리 사용되는 많은 대화 플랫폼과 통합됩니다. 이러한 플랫폼 중 하나에 대한 에이전트를 빌드하려면 여러 통합 옵션 중 하나를 사용해야 합니다. 최종 사용자의 직접적인 상호 작용이 자동으로 처리되므로 에이전트 구축에 집중할 수 있습니다. 각 통합은 플랫폼 별 방식으로 최종 사용자 상호 작용을 처리하므로 자세한 내용은 통합 플랫폼 설명서를 참조하십시오.
Document