플로우를 사용하여 에이전트 빌드

이 가이드에서는 Dialogflow CX 콘솔을 사용하여 흐름에 따라 셔츠 주문 에이전트를 빌드하고 테스트하는 방법을 보여줍니다. 이 에이전트와 상호작용할 때 매장 위치를 묻거나, 영업시간을 확인하거나, 셔츠를 주문할 수 있습니다.

다음 다이어그램은 이 가이드의 완료된 에이전트를 보여줍니다.

에이전트 그래프 스크린샷

시작하기 전에

이 가이드를 읽기 전에 다음 작업을 완료하세요.

에이전트 만들기

이 가이드의 에이전트를 만들려면 다음 안내를 따르세요.

  1. Dialogflow CX 콘솔을 엽니다.
  2. 프로젝트를 만들거나 선택합니다.
  3. 에이전트 만들기를 클릭합니다.
  4. 직접 만들기를 선택합니다.
  5. 기본 에이전트 설정 양식을 작성합니다.
    1. 표시 이름을 입력합니다.
    2. 위치를 선택합니다. 고급 위치 설정을 변경하려면 수정 버튼을 클릭합니다.
    3. 시간대를 선택합니다.
    4. 기본 언어를 선택합니다.
    5. 선택적으로 Cloud Logging을 사용 설정합니다.
  6. 저장을 클릭합니다.

선택적 에이전트 가져오기

이 가이드에서는 셔츠 주문 에이전트를 빌드하는 단계를 안내합니다.

콘솔 단계를 건너뛰려면 에이전트를 다운로드하고 가져오세요.

기본 흐름 및 인텐트

다음 흐름과 인텐트는 자동으로 새 에이전트에 생성됩니다.

관리인텐트를 차례로 클릭하여 인텐트를 찾을 수 있고, 빌드를 클릭하여 흐름을 찾을 수 있습니다.

X 항목
기본 시작 인텐트 기본 시작 인텐트에는 초기 최종 사용자 입력과 일치시키기 위한 'Hi' 또는 'Hello'와 같은 학습 문구가 있습니다. 필요에 따라 이 인텐트를 수정할 수 있습니다.
기본 제외 인텐트 기본 제외 인텐트를 사용하여 이 인텐트에 제외 예시 역할을 하는 학습 문구를 추가할 수 있습니다.
기본 시작 흐름 기본 시작 흐름을 유일한 흐름으로 사용할 수 있습니다. 이 가이드에서 사용되는 유일한 흐름입니다. 보다 복잡한 에이전트의 경우 흐름을 추가할 수 있습니다. 이 흐름에는 인텐트 요구사항인 기본 시작 인텐트가 포함된 기본 인텐트 경로가 있습니다.

기본 환영 응답 메시지 테스트

기본 흐름 및 인텐트는 환영 메시지만 있는 기본 대화를 처리할 수 있습니다.

새 에이전트를 테스트하려면 다음 안내를 따르세요.

  1. 테스트 에이전트 버튼을 클릭하여 시뮬레이터를 엽니다.
  2. 텍스트 필드에 hello를 입력하고 Enter 키를 누릅니다.
  3. 에이전트가 기본 환영 메시지로 응답합니다.
  4. 시뮬레이터를 닫습니다.

시뮬레이터 스크린샷

상담사는 이 최종 사용자 입력을 위해 다음 단계를 수행합니다.

  1. 입력을 제공하면 에이전트가 활성 기본 시작 흐름흐름 시작 페이지의 범위 내에 있는 상태 핸들러를 평가합니다.
  2. 상담사가 기본 시작 인텐트와 일치하는 경로를 식별하고 실행합니다.
  3. 에이전트가 fulfillment 응답 메시지 중 하나를 무작위로 선택하여 응답 큐에 추가합니다.
  4. 경로에 전환 타겟이 없으므로 활성 흐름과 페이지는 변경되지 않습니다.
  5. 에이전트가 응답 대기열의 콘텐츠를 사용자에게 보냅니다.

환영 응답 메시지 수정

환영 응답 메시지를 수정하려면 다음 안내를 따르세요.

  1. 빌드 탭을 클릭합니다.
  2. 흐름 섹션에서 기본 시작 흐름을 선택합니다.
  3. 그래프에서 시작 페이지 노드를 클릭합니다.
  4. 인텐트 요구사항으로 기본 시작 인텐트가 있는 경로를 찾아 클릭하여 경로 수정 패널을 엽니다.
  5. 처리 섹션의 에이전트 응답 하위 섹션에서 기존 응답 메시지를 모두 삭제합니다.
  6. Hello, this is a shirt ordering virtual agent. How can I help you?을 유일한 대답으로 추가합니다.
  7. 저장을 클릭합니다.
  8. 경로 수정 패널을 닫습니다.

에이전트 응답 스크린샷

업데이트된 환영 응답 메시지 테스트

업데이트된 응답을 테스트하려면 다음 안내를 따르세요.

  1. 테스트 에이전트 버튼을 클릭하여 시뮬레이터를 엽니다.
  2. 텍스트 필드에 hello를 입력하고 Enter 키를 누릅니다.
  3. 에이전트가 새 메시지로 응답합니다.
  4. 시뮬레이터를 닫습니다.

매장 위치 페이지

Dialogflow CX 대화(세션)를 상태 머신으로 설명하고 시각화할 수 있습니다. CX 세션의 상태는 페이지로 표시됩니다. 페이지가 하나뿐이므로 에이전트가 그다지 유용하지 않습니다. 이 섹션에서는 매장 위치에 대한 질문을 처리하는 다른 페이지를 만듭니다.

위치 인텐트 만들기

인텐트는 한 번의 대화 차례를 위한 최종 사용자의 의도를 분류합니다.

최종 사용자 입력이 매장 위치를 요청할 때 일치하는 인텐트를 만들려면 다음 안내를 따르세요.

  1. 관리 탭을 선택합니다.
  2. 인텐트를 클릭합니다.
  3. 만들기를 클릭합니다.
  4. 인텐트 표시 이름으로 store.location을 입력합니다.
  5. 다음 학습 문구를 입력합니다.
    • Where is the store?
    • Directions
    • Tell me the address
    • Where do I pick up my order?
    • How do I get there?
    • Where is the store located?
    • What street are you on?
    • What is your address?
    • How do I get to your store?
    • Where are you located?
  6. 저장을 클릭합니다.

인텐트 스크린샷

위치 페이지 만들기

새 페이지를 만듭니다. 페이지가 활성화될 때마다 실행되는 항목 fulfillment를 이 페이지에 추가할 수 있습니다. 이 항목 fulfillment에는 매장의 위치를 제공하는 응답 메시지가 있어야 합니다.

매장 위치 페이지를 만드는 방법은 다음과 같습니다.

  1. 빌드 탭을 클릭합니다.
  2. 흐름 섹션에서 기본 시작 흐름을 선택합니다.
  3. 페이지 섹션에서 추가 버튼을 클릭합니다. 페이지 표시 이름에 대한 텍스트 항목이 표시됩니다.
  4. 페이지 표시 이름으로 Store Location을 입력하고 Enter 키를 누릅니다.
  5. 페이지 표시 이름 옆에 있는 more_vert 버튼을 클릭합니다.
  6. 수정을 선택하여 페이지 수정 패널을 엽니다.
  7. fulfillment 입력을 찾아 fulfillment 수정을 클릭합니다.
  8. +대화 대답 추가를 클릭하여 에이전트 대답 섹션의 에이전트 대화 필드에 Our store is located at 1007 Mountain Drive, Gotham City, NJ.를 입력합니다.
  9. 저장을 클릭합니다.
  10. 페이지 수정 패널을 닫습니다.

페이지 스크린샷

흐름에 위치 인텐트 경로 추가

이제 매장 위치 페이지가 전환 대상인 경로를 만듭니다. 이 경로가 호출되면 세션이 매장 위치 페이지로 전환됩니다. 이 경로는 기본 시작 흐름에 적용되므로 흐름이 활성화된 상태 동안 범위 내에 있습니다.

단일 흐름 에이전트의 경우 경로가 항상 범위 내에 있습니다. 대화 중 어느 시점에서든지 최종 사용자가 매장 위치를 요청할 수 있으며 이 경로가 호출됩니다.

경로를 만들려면 다음 단계를 따르세요.

  1. 빌드 탭을 클릭합니다.
  2. 흐름 섹션에서 기본 시작 흐름을 선택합니다.
  3. 그래프에서 시작 페이지 노드를 클릭합니다. 기본 시작 흐름의 시작 페이지입니다.
  4. 다음 인텐트 경로를 추가합니다.
    • 의도: store.location
    • 전환 페이지: Store Location
  5. 저장을 클릭합니다.
  6. 인텐트 경로 수정 패널을 닫습니다.

인텐트 경로 스크린샷

수정 패널을 닫으면 새 페이지의 노드가 그래프에 표시됩니다. 시작 노드에서 매장 위치 노드로의 화살표는 세션이 노드 간에 전환되는 방법을 보여줍니다.

매장 위치 페이지 테스트

페이지를 테스트하려면 다음 안내를 따르세요.

  1. 테스트 에이전트 버튼을 클릭하여 시뮬레이터를 엽니다.
  2. What is the store location?를 입력하고 Enter 키를 누릅니다.
  3. 에이전트가 주소를 제공합니다.
  4. 시뮬레이터를 닫습니다.

상담사는 이 최종 사용자 입력을 위해 다음 단계를 수행합니다.

  1. 입력을 제공하면 에이전트가 활성 기본 시작 흐름흐름 시작 페이지의 범위 내에 있는 상태 핸들러를 평가합니다.
  2. 에이전트가 store.location 인텐트와 일치하는 경로를 식별하고 실행합니다.
  3. 경로에 fulfillment 응답 메시지가 없으므로 에이전트는 응답 큐에 아무것도 추가하지 않습니다.
  4. 상담사가 세션을 매장 위치 페이지로 전환합니다.
  5. 에이전트가 매장 위치 페이지의 항목 fulfillment 응답 메시지를 응답 큐에 추가합니다.
  6. 에이전트가 응답 대기열의 콘텐츠를 사용자에게 보냅니다.

인라인 생성을 사용한 매장 영업시간 페이지

이 섹션에서는 매장 영업시간에 대한 최종 사용자의 질문을 처리하는 매장 영업시간 페이지를 만듭니다. 이전에는 빌드관리 탭에서 페이지와 인텐트를 만들었습니다. 이 섹션에서는 인라인 생성을 사용하여 이러한 구성요소를 더 빠르게 만드는 방법을 보여줍니다.

인텐트 경로, 인텐트, 페이지를 인라인으로 만들려면 다음 안내를 따르세요.

  1. 그래프에서 시작 페이지 노드를 클릭합니다.
  2. 경로 옆에 있는 추가를 클릭합니다. 인텐트 경로 수정 패널이 열립니다.
  3. 인텐트 섹션에서 새 인텐트를 선택합니다. 인텐트 수정 패널이 열립니다.
  4. 다음 학습 문구를 사용하여 store.hours 인텐트를 만듭니다.

    • What are your store hours?
    • What time do you close?
  5. 저장을 클릭합니다. 인텐트 수정 패널이 닫힙니다.

  6. 경로 수정 패널의 전환 섹션으로 이동합니다.

  7. 페이지 전환에서 새 페이지를 선택합니다.

  8. 텍스트 입력이 표시되면 Store Hours를 입력합니다.

  9. 저장을 클릭합니다. 이제 새 페이지로 연결되는 전환이 있으므로 그래프에 새 페이지가 나타납니다.

  10. 경로 수정 패널을 닫습니다.

  11. 매장 위치에서와 같이 매장 영업시간을 제공하는 항목 fulfillment를 추가합니다.

  12. 열려 있는 모든 수정 패널을 닫습니다.

상품 주문 페이지

다음으로 양식 매개변수를 사용하는 페이지를 만듭니다. 새 셔츠 주문을 요청하면 세션이 이 페이지로 전환되어 셔츠 주문의 크기와 색상을 수집합니다.

셔츠 사이즈에 대한 커스텀 항목 유형 만들기

항목 유형은 최종 사용자 입력에서 데이터를 추출하는 방법을 제어합니다. Dialogflow CX는 날짜, 시간, 색상, 이메일 주소와 같은 일반적인 데이터 유형과 일치하는 사전 정의된 시스템 항목을 제공합니다. 특정 데이터에 대한 맞춤 항목을 만들 수도 있습니다.

이 에이전트에서는 셔츠 색상에 시스템 항목을 사용할 수 있지만 셔츠 사이즈의 커스텀 항목을 만들어야 합니다.

사이즈 항목 유형에는 다음 항목이 있어야 합니다.

항목 동의어
소규모 small, tiny, little
보통 medium, regular, average
크게 large, big, giant

항목을 만들려면 다음 단계를 따르세요.

  1. 관리 탭을 선택합니다.
  2. 항목 유형을 클릭합니다.
  3. 만들기를 클릭합니다.
  4. 표시 이름을 size로 설정합니다.
  5. 표에 나열된 항목을 추가합니다.
  6. 저장을 클릭합니다.

인텐트 매개변수로 주문 인텐트 만들기

최종 사용자가 새 셔츠 주문을 요청할 때 일치시킬 인텐트가 필요합니다. 이 인텐트는 필요한 경우 최종 사용자가 선택한 셔츠 색상 또는 사이즈를 선택적으로 캡처하여 정보를 미리 제공해야 합니다.

파라미터는 세션 중에 최종 사용자가 제공한 값을 캡처하고 참조하는 데 사용됩니다. 각 매개변수에는 표시 이름과 항목 유형이 있습니다. 원시 최종 사용자 입력과 달리 파라미터는 로직을 실행하거나 응답을 생성하는 데 사용할 수 있는 구조화된 데이터입니다.

학습 문구의 일부를 주석 처리하고 관련 인텐트 매개변수를 구성하여 인텐트 일치로 최종 사용자 데이터를 추출하는 방식을 제어할 수 있습니다.

예를 들어 'What is the forecast tomorrow for Tokyo?'와 같은 학습 문구를 가정해 보겠습니다. 'tomorrow'를 date 매개변수로, 'Tokyo'를 location 매개변수로 주석 처리할 수 있습니다. 학습 문구의 일부에 주석을 작성하면 Dialogflow CX는 이러한 부분이 런타임에 최종 사용자가 제공할 수 있는 실제 값의 예시일 뿐임을 인식합니다.

'What is the forecast on Friday for Sydney?(금요일 시드니 날씨는 어때?)'와 같은 최종 사용자 입력의 경우 Dialogflow CX는 'Friday'에서 date 매개변수를, 'Sydney'에서 location 매개변수를 추출할 수 있습니다.

콘솔에서 학습 문구에 주석을 추가하려면 다음 단계를 따르세요.

  1. 주석을 달려는 학습 문구 부분을 강조 표시합니다.
  2. 목록에서 필요한 항목 유형을 선택합니다.
  3. Dialogflow는 다음 매개변수 표에 매개변수를 만듭니다.

다음 단계에 따라 order.new라는 인텐트를 만듭니다.

  1. 색상이 포함된 각 구문에 color 매개변수와 @sys.color 시스템 항목 유형으로 색상을 주석 처리합니다.
  2. 셔츠 크기가 포함된 각 구문에 size 매개변수와 앞서 만든 @size 맞춤 항목 유형으로 크기를 주석 처리합니다.

학습 문구와 매개변수는 다음과 비슷하게 표시됩니다.

인텐트 스크린샷

주문 페이지 만들기

새 주문 페이지를 만듭니다.

  • 표시 이름: New Order
  • 항목 fulfillment: Ok, let's start a new order.

주문 페이지에 양식 추가

페이지마다 최종 사용자로부터 수집해야 하는 파라미터의 목록인 양식을 정의할 수 있습니다. 에이전트는 페이지 매개변수라고도 하는 모든 필수 양식 매개변수를 수집할 때까지 여러 대화 차례에 걸쳐 최종 사용자와 상호작용합니다. 또한 각 양식 매개변수에 대해 에이전트가 최종 사용자에게 해당 정보를 요청하는 데 사용하는 프롬프트를 제공합니다. 이 프로세스를 양식 작성이라고 합니다.

최종 사용자가 인텐트가 일치할 수 있도록 인텐트 매개변수를 제공하면 인텐트 매개변수는 세션 매개변수가 됩니다. 페이지가 처음 활성화되면 모든 양식 매개변수가 이름이 같은 세션 매개변수로 미리 채워집니다. 따라서 order.new 인텐트가 일치될 때 최종 사용자가 크기나 색상을 제공하면 이러한 값이 자동으로 양식에 채워집니다.

New Order 페이지에 필요한 두 가지 양식 매개변수를 정의합니다.

필수 표시 이름 항목 유형 목록 프롬프트
색상 @sys.color What color would you like?(어떤 색상을 원하시나요?)
크기 @size What size do you want?(어떤 크기를 원하시나요?)

이 양식을 추가하려면 다음 안내를 따르세요.

  1. 그래프에서 새 주문 페이지를 클릭합니다.
  2. 매개변수 추가 버튼 을 클릭하여 매개변수 수정 패널을 엽니다.
  3. 위 표에 설명된 대로 매개변수를 추가합니다.
  4. 저장을 클릭합니다.
  5. 매개변수 수정 패널을 닫습니다.

흐름에 주문 인텐트 경로 추가

최종 사용자가 새 주문을 하려는 경우 새 주문 페이지로 전환되는 경로를 기본 시작 흐름에 추가합니다.

  • 인텐트: order.new
  • 전환 타겟 페이지: 새 주문

확인 페이지

마지막 페이지에서 주문을 확인하고 세션을 종료합니다.

확인 페이지 만들기

주문을 확인하기 위해 세션 매개변수를 사용하는 응답으로 확인 페이지를 만듭니다.

  • 표시 이름: Order Confirmation
  • 항목 fulfillment: You can pick up your order for a $session.params.size, $session.params.color shirt in 7 to 10 business days. Goodbye.

주문 페이지에 조건 경로 추가

조건을 사용하여 경로가 호출되었는지 여부를 확인할 수 있습니다. 조건은 일반적으로 양식이 완전한지 확인하는 데 사용되며 평가 시 항상 호출되도록 구성됩니다.

콘솔에서 조건을 설정하려면 조건 설정 문서를 참고하세요.

주문 페이지 양식이 채워질 때 호출되는 주문 페이지에 다음 경로를 추가합니다. 이 조건 경로에서는 최종 사용자에 대한 응답에서 매개변수 참조를 사용하고 세션을 주문 확인 페이지로 전환합니다.

  • 조건: $page.params.status = "FINAL"
  • 상담사 말하기: You have selected a $session.params.size, $session.params.color shirt.
  • 전환 페이지: Order Confirmation

주문 페이지에 다음 경로를 추가합니다. 이 경로는 페이지가 활성화되고 조건 경로가 평가되는 동안 각 대화 차례에 실행됩니다. 위 조건을 평가하고 호출하면 페이지가 비활성화되므로 이 true 조건 경로가 평가되지 않습니다.

  • 조건: true
  • 상담사 말하기: I'd like to collect a bit more information from you.

세션을 종료하는 조건 경로 만들기

다음 조건 경로를 주문 확인 페이지에 추가하여 페이지가 활성화되고 항목 fulfillment가 처리되면 세션을 종료합니다.

  • 조건: true
  • 전환 타겟 페이지: End Session

완료된 에이전트 테스트

다음 대화상자를 사용하여 에이전트를 테스트합니다.

대화 설명
최종 사용자: Hi(안녕하세요.)
에이전트: Hello, this is a shirt ordering virtual agent(안녕하세요. 셔츠 주문 가상 에이전트입니다.) How can I help you?(무엇을 도와드릴까요?)
  1. 기본 시작 흐름기본 시작 인텐트 경로가 호출됩니다.
  2. 상태 핸들러의 fulfillment('Hello, this...')가 응답 큐에 추가됩니다.
  3. 에이전트가 응답 큐를 최종 사용자에게 보냅니다.
최종 사용자: I want to buy a blue shirt(파란색 셔츠를 사고 싶습니다.)
에이전트: Ok, let's start a new order.(네, 새 주문을 시작하겠습니다.)
에이전트: I'd like to collect a bit more information from you.(조금 더 많은 정보를 수집하고자 합니다.)
에이전트: What size do you want?(원하시는 사이즈는 무엇인가요?)
  1. 기본 시작 흐름order.new 인텐트 경로가 평가됩니다.
  2. order.new 인텐트가 일치되고 color 인텐트 매개변수가 'blue'로 설정됩니다.
  3. 세션이 새 주문 페이지로 전환되고 color 인텐트 매개변수가 세션 매개변수가 됩니다.
  4. 새 주문 페이지에 항목 fulfillment가 있습니다('Ok, let's start...'). 그러면 응답 큐에 추가됩니다.
  5. 색상 세션 매개변수는 비슷한 이름의 양식 매개변수를 채우는 데 사용됩니다.
  6. 새 주문 페이지의 true 조건 경로가 평가되고 호출됩니다. 응답 메시지('I'd like to collect..')가 있습니다. 그러면 응답 큐에 추가됩니다.
  7. 페이지의 양식이 채워지지 않으므로 에이전트는 사이즈 프롬프트('What size...')를 사용합니다. 그런 다음 응답 큐에 추가합니다.
  8. 에이전트가 응답 큐를 최종 사용자에게 보냅니다.
최종 사용자: large(라지요.)
에이전트: You have selected a large, blue shirt.(라지 파란색 셔츠를 선택했습니다.)
에이전트: You can pick up your order for a large blue shirt in 7 to 10 business days.(영업일 기준 7~10 일 이내에 라지 파란색 셔츠를 픽업할 수 있습니다.) 감사합니다.
  1. 최종 사용자 입력은 이전 대화 차례에서 에이전트가 요청한 크기 매개변수를 채웁니다.
  2. 새 주문 페이지의 양식 완성 경로가 평가되고 호출됩니다. 최종 사용자가 제공한 실제 값으로 해석된 매개변수 참조가 있는 응답 큐에 추가된 fulfillment('You have selected...')가 선택됩니다.
  3. 세션이 주문 확인 페이지로 전환됩니다.
  4. 주문 확인 페이지에는 응답 큐에 추가된 항목 fulfillment('You can pick up...')가 있습니다.
  5. 에이전트가 응답 큐를 최종 사용자에게 보냅니다.
  6. 세션이 세션 종료로 전환됩니다.

프로덕션 준비

프로덕션에서 에이전트를 실행하기 전에 프로덕션 권장사항을 구현하세요.