에이전트에서 엔터티 및 슬롯 채우기 사용
Copilot Studio에서 에이전트 대화의 중요한 부분은 AI가 사용자의 의도를 이해할 수 있는 능력인 자연어 이해입니다. 예를 들어 사용자가 "기프트 카드를 사용하려고 했지만 작동하지 않습니다"라고 말하면 에이전트는 정확한 구문이 트리거 구문으로 나열되지 않은 경우에도 작동하지 않는 기프트 카드와 관련된 토픽으로 사용자를 라우팅해야 한다는 것을 알고 있습니다.
자연어 이해의 기본 요소 중 하나는 사용자 대화에서 엔터티를 식별하는 것입니다. 엔터티를 시작하려면 비디오를 시청하세요.
엔터티는 전화 번호, 우편 번호, 도시 또는 사람의 이름과 같은 특정 유형의 실제 주제를 나타내는 정보 단위로 생각할 수 있습니다. 에이전트는 엔터티가 제공한 지식을 통해 사용자 입력에서 관련 정보를 지능적으로 인식하고 나중에 사용하기 위해 저장할 수 있습니다.
사전 빌드된 엔터티
에이전트의 엔터티를 통해 유사한 그룹에 정보를 저장할 수 있습니다.
기본적으로 Copilot Studio는 연령, 색상, 숫자 및 이름과 같은 실제 대화에서 가장 일반적으로 사용되는 정보 유형을 나타내는 사전 빌드된 엔터티 집합과 함께 제공됩니다.
에이전트는 엔터티가 제공한 지식을 통해 사용자 입력에서 관련 정보를 지능적으로 인식하고 나중에 사용하기 위해 저장할 수 있습니다.
그 개념을 이해하도록 돕기 위해 금액 엔터티를 예로 사용할 수 있습니다.
Copilot Studio에서 에이전트를 열고 페이지 상단에서 설정을 선택한 다음 메뉴에서 엔터티를 선택합니다.
사용할 수 있는 사전 빌드된 엔터티 목록이 표시됩니다.
금액 엔터티를 선택하여 엔터티에 대한 세부 정보 창을 엽니다.
여기서 이 엔터티에 대한 설명과 사용자 입력에서 이 엔터티를 금액이나 통화와 관련된 정보를 찾는 데 사용할 수 있는 방법을 볼 수 있습니다.
예를 들어, 사용자가 "1000달러 금액"을 입력할 때 에이전트는 이 금액 엔터티를 사용하여 "1000달러"가 금액 유형의 정보를 나타냄을 압니다. 에이전트가 이 엔터티를 추출하여 변수에 저장하면 주변 정보가 텍스트인 경우에도 "1000"을 숫자로 저장합니다.
사용자 지정 엔터티
사전 빌드된 엔터티는 일반적으로 사용되는 정보 유형을 다룹니다. 특정 용도로 사용되는 에이전트를 빌드할 때와 같은 경우에 에이전트의 언어 이해 모델 도메인별 지식을 가르쳐야 할 수 있습니다.
예를 들어 아웃도어 상점을 위한 에이전트를 만들고 싶다고 가정해 봅시다. 이 경우 에이전트에게 대화 상자에서 "아웃도어 장비 제품" 범주를 인식하도록 가르쳐야 합니다.
먼저 사용자 지정 엔터티를 만듭니다. 이 경우 에이전트에게 모든 아웃도어 제품 범주에 대한 지식을 제공하는 엔터티를 만들 수 있습니다.
Copilot Studio에서 에이전트를 열고 페이지 상단에서 설정을 선택한 다음 메뉴에서 엔터티를 선택합니다.
엔터티 추가>새 엔터티를 선택합니다.
닫힌 목록 엔터티 또는 정규식(regex) 엔터티 중에서 원하는 엔터티 유형을 선택합니다
비공개 목록 엔터티
비공개 목록 엔터티를 사용하면 항목 목록을 정의할 수 있습니다. 이러한 엔터티는 관리하기 쉽고 간단한 항목 레이블이 있는 작은 목록에 가장 적합합니다.
엔터티를 만들 때 이 옵션을 선택하면 엔터티의 이름과 설명(선택 사항)을 지정하고 엔터티에 포함할 항목을 입력할 수 있는 창이 표시됩니다.
항목을 입력할 때 다음을 수행할 수 있습니다.
- 각 항목을 선택하고 이름을 변경합니다.
- 목록에서 항목을 삭제하려면 휴지통 아이콘을 선택합니다.
- + 동의어(또는 이미 추가된 경우 나열된 동의어 선택)를 선택하여 동의어 편집 창을 엽니다.
동의어를 추가하여 엔터티 목록의 각 항목에 대한 일치 논리를 수동으로 확장할 수 있습니다. 예를 들어 '하이킹' 항목에는 '트래킹'과 '등산'을 동의어로 추가할 수 있다.
각 엔터티에 대해 스마트 매칭을 사용할 수도 있습니다.
스마트 매칭은 에이전트의 언어 이해 모델이 지원하는 인텔리전스의 일부입니다. 이 옵션을 활성화하면 에이전트는 엔터티에 나열된 항목을 기반으로 퍼지 논리를 사용하여 사용자의 입력을 해석합니다.
특히 에이전트는 맞춤법 오류를 자동으로 수정하고 일치 논리를 의미론적으로 확장할 수 있습니다. 예를 들어 에이전트는 "소프트볼"을 "야구"와 자동으로 일치시킬 수 있습니다.
엔터티 생성 또는 편집을 마쳤으면 저장을 선택하여 저장하고 엔터티 목록으로 돌아갑니다. 변경 사항을 취소하려면 닫기를 선택합니다.
정규식(regex) 엔터티
정규식(regex) 엔터티를 사용하면 입력에서 정보를 일치시키고 추출하는 데 사용할 수 있는 논리적 패턴을 정의할 수 있습니다. Regex 엔터티는 사용자 입력에 대한 복잡한 패턴 일치에 적합하거나 사용자가 대화에서 입력 형식을 지정하거나 입력하는 방법의 특정 변형을 허용해야 하는 경우에 적합합니다.
예를 들어 정규식 엔터티를 사용하여 사용자가 에이전트에 입력하는 문자열에서 추적 ID, 라이선스 번호, 신용 카드 번호 또는 IP 주소와 같은 항목을 식별할 수 있습니다.
이 옵션을 선택한 후 엔터티의 이름, 선택적 설명을 지정하고 입력에서 엔터티 항목을 일치시키고 추출하는 데 사용해야 하는 regex 패턴을 입력할 수 있습니다.
Copilot Studio 정규식 엔터티는 .NET 정규식 구문을 사용합니다.
기본적으로 패턴 일치는 대소문자를 구분합니다. 대소문자를 구분하지 않게 하려면 패턴 문자열에서 (?i)
정규식 옵션을 사용하십시오. 몇 가지 기본 예제가 regex 엔터티 창에 포함되어 있습니다. 구문에 대한 자세한 내용과 더 많은 예제는 정규식 언어 - 빠른 참조를 참조하세요.
여러 패턴을 수용하기 위해 정규식이 필요한 경우 대체 연산자 |
을 사용하여 정규식을 연결할 수 있습니다. 예를 들어 두 개의 정규식 패턴을 결합하여 제품 ID 코드의 이전 형식과 새 형식을 모두 찾을 수 있습니다.
엔터티 생성 또는 편집을 마쳤으면 저장을 선택하여 저장하고 엔터티 목록으로 돌아갑니다. 변경 사항을 취소하려면 닫기를 선택합니다.
대화에서 엔터티 사용
이제 해당 제품 범주 엔터티와 몇 가지 다른 사용자 지정 엔터티를 만들어 에이전트에게 아웃도어 장비에 대한 지식을 제공하는 작업을 완료했으므로 에이전트 대화를 구성할 때 이를 사용할 수 있습니다.
편집하려는 에이전트의 항목 페이지로 이동하세요.
수집하려는 엔터티에 대한 토픽을 엽니다.
노드 추가 아이콘 을 선택한 다음 질문하기를 선택합니다.
식별 아래에 사용자 지정 엔터티에서 만든 엔터티를 선택하십시오.
선택적으로 단추로 표시할 항목을 선택할 수도 있습니다. 예를 들어 일부 범주를 사용자가 입력으로 편리하게 선택할 수 있는 단추로 표시하려는 경우 사용자에 대한 옵션 선택을 선택한 다음 사용자 지정 엔터티를 만들 때 추가한 항목이 포함된 목록에서 해당 항목을 선택하십시오.
필요한 경우 사용자 응답의 출력 변수를 지정하십시오.
슬롯 채우기
슬롯 채우기는 추출된 엔터티를 개체에 저장하는 것을 의미하는 자연어 이해 개념입니다. 그러나 Copilot Studio에서 슬롯 채우기는 추출된 엔터티 값을 변수에 넣는 것을 의미합니다.
테스트 채팅에서 "구매하고 싶습니다"를 입력하면 트리거되는 캠핑 활동 토픽을 예로 들어 보겠습니다.
토픽이 성공적으로 트리거되고 에이전트가 활동 유형을 묻고 질문하기 노드를 작성할 때 지정된 버튼 선택 항목도 표시됩니다. 대화 상자 트리에서 토픽 간 추적은 방금 편집한 질문 노드에서 에이전트가 실행되고 있음을 보여줍니다.
사용자는 버튼 중 하나를 선택하여 사전 정의된 선택 사항을 사용할 수 있습니다. 또는 "트레킹"과 같은 단어를 입력할 수 있으며, 해당 단어가 동의어로 정의되었기 때문에 "하이킹"에 매핑되는 것을 볼 수 있습니다.
토픽 간에 추적할 때 대화가 제품 범주 값이 "하이킹"인 경로로 올바르게 라우팅되었음을 표시합니다. 제작 캔버스 하단의 변수 조사식 창에서 변수 값을 검사할 수 있습니다. 조사 식 창에서 변수 값이 "하이킹"임을 나타냅니다.
기본적으로 추출된 엔터티 "하이킹"을 변수 VarCampType
에 삽입하여 슬롯 채우기가 발생합니다.
사용자가 여러 엔터티에 매핑되는 여러 정보를 지정할 수 있는 "사전 슬롯 채우기"라는 기능을 사용할 수도 있습니다. 에이전트는 어떤 정보가 어떤 엔터티에 속하는지 자동으로 이해할 수 있습니다. 의도한 매핑이 확실하지 않은 경우 선택 사항을 제공하여 사용자에게 보다 구체적으로 묻습니다.
이 예에서 사용자는 "지루하지만 등산을 좋아합니다."라고 썼습니다. 이 메시지에는 사용자가 야외 활동에 대한 도움을 원하는 트리거 문구와 두 번째 정보인 "등산"(엔터티 정의 하이킹 동의어)도 제공됩니다. 이 경우 에이전트는 야외 활동을 선택하기 위한 엔터티와 활동 유형을 모두 채웁니다.
토픽 간 추적에서 에이전트가 이 사용자 입력을 받아들이고 활동 유형을 묻는 질문 노드를 지능적으로 건너뛰는 것을 볼 수 있습니다.
에이전트는 항상 사용자 입력을 적극적으로 듣고 정보를 미리 기억하여 필요에 따라 불필요한 단계를 건너뛸 수 있습니다.
테스트를 다시 시작하고 다른 사례를 시도해 봅시다. 이 라운드에서는 활동에 할애할 수 있는 시간(기간 엔터티 사용) 및 가격 범위(금액 엔터티 사용)와 같은 사항을 묻는 몇 가지 질문 노드를 추가할 수 있습니다.
이번에는 제품 범주 질문이 제시될 때 상담원에게 제품 범주만 알려주는 대신 사용자가 "$100로 하이킹 부츠 한 켤레를 사고 싶습니다"라고 말할 수 있습니다. 이 예에서 에이전트는 올바른 하이킹 제품 범주 경로로 라우팅할 수 있을 뿐만 아니라 하이킹 장비 유형 및 목표 가격대 정보를 요청하는 슬롯을 적극적으로 채울 수 있습니다.
사전 슬롯 채우기는 노드 수준에서 수동으로 제어할 수 있습니다. 슬롯이 이전 사용자 응답으로 채워졌는지 여부에 관계없이 항상 특정 노드 내에서 질문을 묻는 메시지가 표시되도록 하려면 해당 질문 노드에 대한 질문 건너뛰기 옵션을 비활성화할 수 있습니다. 질문 건너뛰기 옵션을 비활성화하려면 다음 단계를 수행하십시오.
질문 노드의 추가 아이콘(…)을 선택한 다음 속성을 선택합니다. 질문 속성 패널이 나타납니다.
질문 속성 패널에서 질문 동작을 선택합니다.
질문 동작 패널의 질문 건너뛰기에서 매번 묻기를 선택한 다음 페이지 상단에서 저장을 선택하세요.