다음을 통해 공유


사용자 환경 디자인

적용 대상: SDK v4

텍스트, 단추, 이미지, 회전식 또는 목록 형식으로 표시되는 서식 있는 카드 등의 다양한 기능을 사용하여 봇을 만들 수 있습니다. 그러나 Facebook, Slack 등과 같은 각 채널은 궁극적으로 메시징 클라이언트가 기능을 렌더링하는 방법을 제어합니다. 여러 채널이 기능을 지원하는 경우에도 각 채널은 약간 다른 방식으로 기능을 렌더링할 수 있습니다. 메시지에 채널이 기본적으로 지원하지 않는 기능이 포함된 경우 채널은 메시지 콘텐츠를 텍스트 또는 정적 이미지로 다운 렌더링하려고 시도할 수 있으며, 이는 클라이언트의 메시지 모양에 큰 영향을 줄 수 있습니다. 일부 경우에 채널이 특정 기능을 전혀 지원하지 않을 수도 있습니다. 예를 들어 GroupMe 클라이언트는 입력 표시기를 표시할 수 없습니다.

풍부한 사용자 컨트롤

풍부한 사용자 컨트롤은 봇이 사용자에게 제공하며, 사용자가 선택과 의도를 전달하기 위해 상호작용하는 일반적인 UI 컨트롤로, 단추, 이미지, 캐러셀 및 메뉴 등이 있습니다. 봇은 UI 컨트롤 컬렉션을 사용하여 앱을 모방하거나 앱 내에 포함된 앱을 실행할 수도 있습니다. 봇이 앱 또는 웹 사이트에 포함된 경우 봇을 호스팅하는 앱의 기능을 사용하여 거의 모든 UI 컨트롤을 나타낼 수 있습니다.

애플리케이션 및 웹 사이트 개발자는 사용자가 애플리케이션과 상호 작용할 수 있도록 UI 컨트롤에 의존했습니다. 이러한 동일한 UI 컨트롤은 봇에서도 효과적일 수 있습니다. 예를 들어, 단추는 사용자에게 간단한 선택 항목을 제공하는 유용한 방법입니다. 사용자가 호텔이라는 레이블 이 지정된 단추를 선택하여 "호텔"을 통신하도록 허용하는 것은 사용자가 "호텔 "을 입력하도록 강요하는 것보다 더 쉽고 빠릅니다. 예를 들어 모바일 디바이스에서는 입력보다 선택하는 것이 선호되는 경우가 많습니다.

카드

카드는 다양한 시각적, 오디오, 선택 가능한 메시지를 사용자에게 표시하고 대화 흐름을 지원할 수 있습니다. 사용자가 고정된 항목 집합 중에서 선택해야 할 경우, 각각이 이미지, 텍스트 설명 및 단일 선택 단추를 포함하는 회전식 카드를 표시할 수 있습니다. 사용자에게 단일 항목에 대한 선택 항목 집합이 있는 경우 더 작은 단일 이미지와 다양한 옵션 중에서 선택할 수 있는 단추 컬렉션을 표시할 수 있습니다. 그들은 주제에 대한 자세한 정보를 요청했습니까? 카드는 오디오 또는 비디오 출력이나 쇼핑 경험을 자세히 나타내는 영수증을 사용하여 자세한 정보를 제공할 수 있습니다. 사용자와 봇 간의 대화를 안내하는 데 도움이 되는 다양한 카드 사용이 있습니다. 사용되는 카드 종류는 애플리케이션의 요구 사항에 따라 결정됩니다. 카드, 해당 작업 및 몇 가지 권장 용도를 자세히 살펴보겠습니다.

Azure AI Bot Service 카드는 다양한 채널에서 인식되는 풍부한 사용자 컨트롤의 표준화된 컬렉션을 포함하는 프로그래밍 가능한 개체입니다. 다음 표에는 각 카드 종류에 대해 사용 가능한 카드 및 추천되는 모범 사례 목록이 나와 있습니다.

카드 유형 예제 설명
AdaptiveCard 적응형 카드의 이미지입니다. JSON 개체로 렌더링된 열린 카드 교환 형식입니다. 일반적으로 카드의 채널 간 배포에 사용됩니다. 카드는 각 호스트 채널의 모양과 느낌에 맞게 조정됩니다.
애니메이션 카드 애니메이션 카드의 이미지입니다. 애니메이션 GIF 또는 짧은 비디오를 재생할 수 있는 카드입니다.
오디오카드 오디오 카드의 이미지입니다. 오디오 파일을 재생할 수 있는 카드입니다.
HeroCard 영웅 카드의 이미지입니다. 하나의 큰 이미지, 하나 이상의 단추 및 텍스트가 포함된 카드입니다. 일반적으로 사용자가 선택할 수 있는 항목을 시각적으로 강조 표시하는 데 사용됩니다.
썸네일 카드 썸네일 카드의 이미지입니다. 단일 썸네일 이미지, 하나 이상의 단추 및 텍스트가 포함된 카드입니다. 일반적으로 사용자가 선택할 수 있는 단추를 시각적으로 강조 표시하는 데 사용됩니다.
영수증카드 영수증 카드의 이미지입니다. 봇이 사용자에게 영수증을 제공할 수 있도록 하는 카드입니다. 일반적으로 영수증, 세금 및 총 정보 및 기타 텍스트에 포함할 항목 목록이 포함됩니다.
로그인 카드 로그인 카드의 이미지입니다. 사용자가 로그인할 수 있는 카드입니다. 일반적으로 사용자가 로그인 프로세스를 시작하는 데 사용할 수 있는 하나 이상의 단추와 텍스트가 포함됩니다.
제안된 행동 채팅 내에서 단추로 렌더링된 제안된 작업의 이미지입니다. 사용자에게 사용자 선택을 나타내는 카드 작업 집합을 제공합니다. 제안된 작업을 선택하면 단추가 사라집니다.
비디오 카드 비디오 카드의 이미지입니다. 비디오를 재생할 수 있는 카드입니다. 일반적으로 URL을 열고 사용할 수 있는 비디오를 스트리밍하는 데 사용됩니다.
CardCarousel 카드 캐러셀의 이미지입니다. 사용자가 일련의 가능한 사용자 선택을 쉽게 볼 수 있는 수평 스크롤 가능한 카드 컬렉션입니다.

카드를 사용하면 봇을 한 번 디자인하고 다양한 채널에서 작동하도록 할 수 있습니다. 그러나 모든 카드 유형이 사용 가능한 모든 채널에서 완전히 지원되는 것은 아닙니다.

  • 봇에 카드를 추가하기 위한 자세한 지침은 서식 있는 카드 미디어 첨부 파일 추가 및 메시지에 제안된 작업 추가에서 찾을 수 있습니다.

  • 샘플 코드는 Bot Framework 샘플 리포지토리에서 다음 샘플 봇을 참조하세요.

    샘플 이름 설명
    6 카드 사용 모든 카드 유형의 사용을 보여 줍니다.
    7 적응형 카드 적응형 카드 사용을 보여 줍니다.
    8 제안 작업 제안된 작업의 사용을 보여 줍니다.
    15 첨부 파일 사용자가 제공한 첨부 파일을 수락하는 방법을 보여 줍니다.

봇을 디자인할 때 일반 UI 요소가 스마트하지 않다고 자동으로 무시하지 마세요. 대화형 사용자 환경에서 설명한 대로 봇은 가능한 가장 빠르고 쉬운 방식으로 사용자의 문제를 해결하도록 설계되어야 합니다. 자연어 이해를 통합하여 시작하려는 유혹을 피하십시오. 이는 종종 불필요하고 부당한 복잡성을 도입하기 때문입니다.

먼저 봇이 사용자의 문제를 해결할 수 있도록 하는 최소 UI 컨트롤을 사용하고, 해당 컨트롤이 더 이상 충분하지 않은 경우 나중에 다른 요소를 추가합니다.

텍스트 및 자연어 이해

봇은 사용자의 텍스트 입력을 수락하고 정규식 일치 또는 자연어 이해 API를 사용하여 해당 입력을 구문 분석하려고 시도할 수 있습니다. 사용자가 제공하는 입력 유형에 따라 자연어 이해가 좋은 솔루션일 수도 있으며 그렇지 않을 수도 있습니다.

경우에 따라 봇은 사용자에게 특정 질문을 할 수 있습니다. 예를 들어, 봇이 "What is your name?"이라고 물어보면 사용자는 "John"이라고 이름만 지정하는 텍스트로 답변하거나 “My name is John”이라고 문장으로 답변할 수 있습니다.

특정 질문을 하는 것은 봇이 합리적으로 받을 수 있는 잠재적 응답의 범위를 줄여 응답을 구문 분석하고 이해하는 데 필요한 논리의 복잡성을 줄입니다. 예를 들어 다음과 같은 광범위하고 개방적인 질문을 고려합니다. 이러한 질문에 대한 잠재적인 답변의 가능한 여러 순열을 이해하는 것은 복잡한 작업입니다.

대조적으로, "당신은 고통을 느끼고 있습니까? 예 /아니오"와 "당신은 고통을 느끼는 곳이 어디입니까? 가슴/머리/팔/다리"는 자연어 이해를 구현할 필요 없이 봇이 구문 분석하고 이해할 수 있는 보다 구체적인 답변을 표시할 수 있습니다.

가능하면 응답을 구문 분석하기 위해 자연어 이해 기능이 필요하지 않은 특정 질문을 합니다. 이렇게 하면 봇이 간소화되고 봇이 사용자를 이해하는 데 성공할 수 있습니다.

다른 경우에는 사용자가 특정 명령을 입력할 수 있습니다. 예를 들어, 개발자가 가상 머신을 관리할 수 있도록 하는 DevOps 봇은 "/STOP VM XYZ" 또는 "/START VM XYZ"와 같은 특정 명령을 수락하도록 디자인될 수 있습니다. 이와 같은 명령을 수락하도록 봇을 디자인하면 구문을 학습하기 쉽고 각 명령의 예상되는 결과가 명확하므로 좋은 사용자 환경이 구현될 수 있습니다. 또한 사용자의 입력은 정규식을 사용하여 쉽게 구문 분석할 수 있으므로 봇에는 자연어 이해 기능이 필요하지 않습니다.

사용자의 특정 명령을 요구하도록 봇을 디자인하면 자연어 인식 기능에 대한 필요성을 없애면서 적절한 사용자 환경을 제공할 수 있습니다.

기술 자료 또는 질문 및 답변 봇의 경우 사용자는 일반적인 질문을 할 수 있습니다. 예를 들어 수천 개의 문서 내용에 따라 질문에 대답할 수 있는 봇을 상상해 보세요. Azure AI 서비스와Azure Search 는 모두 이러한 유형의 시나리오를 위해 특별히 설계된 기술입니다. 자세한 내용은 지식 봇 디자인 및 언어 이해를 참조하세요.

데이터베이스, 웹 페이지 또는 문서의 구조화되거나 구조화되지 않은 데이터를 기반으로 질문에 대답하는 봇을 디자인하는 경우 자연어 이해 문제를 해결하기 위해 시도하지 않고 이 시나리오를 해결하기 위해 특별히 설계된 기술을 사용하는 것이 좋습니다.

다른 시나리오에서는 사용자가 자연어에 따라 간단한 요청을 입력할 수 있습니다. 예를 들어 사용자는 "페퍼로니 피자를 원하세요" 또는 "지금 집에서 3마일 이내의 채식 레스토랑이 있습니까?"를 입력할 수 있습니다. 자연어 이해 API는 이와 같은 시나리오에 적합합니다.

이 API를 통해 봇은 사용자 텍스트의 핵심 구성 요소를 추출하여 사용자 의도를 식별할 수 있습니다. 봇에서 자연어 이해 기능을 구현할 때 사용자가 입력에서 제공할 수 있는 세부 수준에 대한 현실적인 기대치를 설정합니다.

자연어 모델을 빌드할 때 사용자가 초기 쿼리에 필요한 모든 정보를 제공할 것이라고 가정하지 마세요. 필요한 경우 일련의 질문을 제기하고 사용자에게 필요한 정보를 구체적으로 제공하도록 요청하는 봇을 디자인합니다.

연설

봇은 음성 입력 및 출력을 사용하여 사용자와 통신할 수 있습니다. 키보드나 모니터가 없는 디바이스를 지원하도록 봇이 설계된 경우 음성은 사용자와 통신하는 유일한 수단입니다.

풍부한 사용자 컨트롤, 텍스트 및 자연어 및 음성 중에서 선택

사람들이 제스처, 음성 및 기호의 조합을 사용하여 서로 통신하는 것처럼 봇은 풍부한 사용자 컨트롤, 텍스트(자연어 포함) 및 음성의 조합을 사용하여 사용자와 통신할 수 있습니다. 이러한 통신 방법을 함께 사용할 수 있으며, 하나를 다른 것보다 선택할 필요가 없습니다.

예를 들어 사용자가 레시피를 사용하는 데 도움이 되는 "요리 봇"을 상상해 보세요. 여기서 봇은 비디오를 재생하거나 일련의 사진을 표시하여 수행해야 할 작업을 설명하여 지침을 제공할 수 있습니다. 일부 사용자는 레시피를 조립하는 동안 음성을 사용하여 레시피의 페이지를 뒤집거나 봇에 질문하는 것을 선호할 수 있습니다. 다른 사용자는 음성을 통해 봇과 상호 작용하는 대신 디바이스의 화면을 터치하는 것을 선호할 수 있습니다. 봇을 디자인할 때 지원하려는 특정 사용 사례를 고려할 때 사용자가 봇과 상호 작용하는 방법을 지원하는 UX 요소를 통합합니다.