ETC/Dialogflow

Dialogflow 란?[1]

Raconer 2023. 4. 15. 17:34
728x90

일반적인 Action -> Request 동작하는 1:1방 식이 아니라 대화를 하며 대화 내용을 통해 Request가 동작하는 1:N 동작도 가능할 거 같아서 DialogFlow를 공부하였습니다.(개인적인 생각입니다.)

1. DialogFlow란?

Dialogflow는 대화식 사용자 인터페이스를 모바일 앱, 웹 애플리케이션, 기기, 봇, 대화형 음성 응답 시스템 등에 쉽게 설계하고 통합할 수 있는 자연어 이해 플랫폼입니다. Dialogflow를 통해 사용자에게 제품과 상호작용할 수 있는 새롭고 흥미로운 방법을 제공할 수 있습니다.

Dialogflow는 텍스트 또는 오디오 입력(전화 또는 음성 녹음 등)을 포함하여 고객이 제공하는 여러 유형의 입력을 분석할 수 있습니다. 또한 텍스트 또는 합성 음성을 통해 두 가지 방법으로 고객에게 응답할 수 있습니다.

2. 종류

Dialogflow CX : 대규모이거나 매우 복잡한 에이전트에 적합한 고급 에이전트 유형을 제공합니다.

Dialogflow ES : 중소 규모의 단순한 에이전트에 적합한 표준 에이전트 유형을 제공합니다.

비교 : https://cloud.google.com/dialogflow/docs/editions?hl=ko

3. 구조 설명 Document 정의

1.Agent

최종 사용자와의 대화를 처리하는 가상 Agent입니다. 이는 인간 언어의 미묘한 차이를 이해하는 자연어 이해 모듈입니다. Dialogflow는 대화로 이루어진 최종 사용자의 텍스트 또는 오디오를 앱과 서비스가 이해할 수 있는 구조화된 데이터로 변환합니다. 시스템에 필요한 대화 유형을 처리하도록 Dialogflow Agent를 직접 설계하고 빌드할 수 있습니다.

Dialogflow Agent는 콜센터 상담원과 유사합니다. 둘 다 예상되는 대화 시나리오를 처리하도록 학습해야 하며, 학습이 지나치게 명시적일 필요는 없습니다.

참고 : https://cloud.google.com/dialogflow/es/docs/agents-overview?hl=ko

2.Intents

한 번의 대화 차례에 대한 최종 사용자의 의도를 분류합니다. 각 Agents에 대해 결합된 Intents가 전체 대화를 처리할 수 있는 여러 Intents를 정의합니다.

예)

What's the temperature going to be tomorrow in Seattle

$location = Seattle

$time = tomorrow

설명 : 사용자가 질문을 하게 되면 Agents에서 대화 내용을 인식하고 Intents 분류를 합니다.

이때 Intents는 문장의 데이터를 분류하고 매개 변수에 데이터를 입력합니다.

Intents 기능

  1. Training phrases : 사용자가 입력한 내용을 구분할 수 있으며 유사한 Intents를 찾도록 합니다. Dialogflow의 기본 Training phrases로 유사한 목록에서 구문으로 확장하므로 가능한 모든 예시를 정의할 필요가 없습니다.
  2. Action : Intents별로 액션을 정의할 수 있습니다. Intents가 일치하면 Dialogflow는 시스템에 작업을 제공하고 작업을 사용하여 시스템에 정의된 특정 작업을 실행할 수 있습니다.
  3. Parameters : 런타임에 Intents가 일치하면 Dialogflow는 최종 사용자 표현식에서 추출된 값을 매개변수로 제공합니다. 각 매개 변수에는 데이터가 추출되는 방식을 정확하게 나타내는 Entity 유형이 존재하는데 사용자가 입력한 내용과 달리 일부 논리를 수행하거나 응답을 생성하는데 쉽게 사용할 수 있는 구조화된 데이터입니다. ex) $location or $time
  4. Responses : 사용자에게 반환할 텍스트, 음성 또는 시각적 응답을 정의합니다. 이때 사용자에게 답변을 제공하거나 사용자에게 추가 정보를 요청하거나 대화를 종료할 수 있습니다.

더 복잡한 기능도 수행 가능

  1. Contexts : Dialogflow Contexts는 자연어 Contexts와 유사합니다. 어떤 사람이 "그들은 주황색입니다."라고 말하면 그 사람이 무엇을 말하는지 이해하기 위해 콘텍스트가 필요합니다. 마찬가지로 Dialogflow가 이와 같은 최종 사용자 표현식을 처리하려면 Intents를 올바르게 일치시키기 위해 Context가 제공되어야 합니다.
  2. Events : Events를 사용하면 최종 사용자가 통신하는 대신 발생한 일을 기반으로 Intents를 호출할 수 있습니다.

3.Entities

각 Intents Parameter에는 Entities라는 유형이 있어서 사용자가 입력한 내용에서 데이터를 추출하는 방법을 정확하게 지정합니다.

Dialogflow에서는 여러 일반적인 데이터 유형과 일치할 수 있는 사전 정의된 시스템 항목을 제공합니다. ex) 날짜, 시간, 생상, 이메일 주소 등...

사전 정의된 내용 말고 Custom Entities를 직접 만들 수 있습니다.

Entity 용어

  • Entity type : 사용자 입력에서 추출하고자 하는 정보의 유형을 정의합니다. 예를 들어 야채는 개체 유형의 이름일 수 있습니다. Dialogflow 콘솔에서 Create Entity를 클릭하면 개체 유형이 생성됩니다.
  • Entity entry :각 개체 유형에는 많은 Entity entry이 있습니다. 각 개체 항목은 동일한 것으로 간주되는 일련의 단어 또는 구문을 제공합니다. 예) 개발
  • intellij, eclipse
  • Java, Python, C++
  • . Net, Spring
  • Entity reference value and synonyms : 일부 개체 항목은 위의 Java 예시와 동일한 것으로 간주되는 단어 또는 문구가 여러 개 있습니다. 이러한 항목 입력에는 참조값과 하나 이상의 동의어를 제공합니다.

참고 : https://cloud.google.com/dialogflow/docs?hl=ko

728x90

'ETC > Dialogflow' 카테고리의 다른 글

Dialogflow 사용[2]  (0) 2023.04.15
Dialogflow 사용[1]  (0) 2023.04.15
Dialogflow 란?[3]  (0) 2023.04.15
Dialogflow 란?[2]  (0) 2023.04.15