다음을 통해 공유


엔터티 및 활동 형식

적용 대상: SDK v4

엔터티는 활동의 일부이며 활동 또는 대화에 대한 추가 정보를 제공합니다.

참고 항목

SDK의 여러 부분에서는 별도의 엔터티 클래스 또는 요소를 정의합니다.

개체

메시지의 엔터티 속성은 채널과 봇 간에 일반적인 컨텍스트 메타데이터를 교환할 수 있는 개방형 schema.org 개체의 배열입니다.

멘션 엔터티

다양한 채널은 봇 또는 사용자가 대화 컨텍스트 내에서 누군가를 "멘션"하기 위한 기능을 지원합니다. 메시지에서 사용자를 멘션 메시지의 엔터티 속성을 멘션 개체로 채웁다. 멘션 개체에는 다음과 같은 속성이 포함됩니다.

속성 설명
Type 엔터티 형식("멘션")
언급 멘션 사용자를 나타내는 채널 계정 개체
Text 멘션 자체를 나타내는 activity.text 속성 내의 텍스트(비어 있거나 null일 수 있음)

이 코드 예제는 엔터티 컬렉션에 멘션 엔터티를 추가하는 방법을 보여줍니다.

var entity = new Entity();
entity.SetAs(new Mention()
{
    Text = "@johndoe",
    Mentioned = new ChannelAccount()
    {
        Name = "John Doe",
        Id = "UV341235"
    }
});
entities.Add(entity);

사용자 의도를 확인하려고 할 때 봇은 멘션 메시지의 해당 부분을 무시하려고 할 수 있습니다. 메서드를 GetMentions 호출하고 응답에서 반환된 Mention 개체를 평가합니다.

개체 배치

메시지의 엔터티 속성을 Place 개체 또는 GeoCoordinates 개체로 채워 메시지 내에서 위치 관련 정보를 전달할 수 있습니다.

장소 개체는 다음 속성을 포함합니다.

속성 설명
Type 엔터티의 형식("Place")
주소 설명 또는 우편 주소 개체(미래)
지역 GeoCoordinates
HasMap map 또는 map 개체에 대한 URL(미래)
이름 장소의 이름

geoCoordinates 개체는 다음 속성을 포함합니다.

속성 설명
Type 엔터티의 형식("GeoCoordinates")
이름 장소의 이름
경도 위치의 경도(WGS 84)
위도 위치의 위도(WGS 84)
권한 상승 위치 상승(WGS 84)

이 코드 예제는 엔터티 컬렉션에 장소 엔터티를 추가하는 방법을 보여줍니다.

var entity = new Entity();
entity.SetAs(new Place()
{
    Geo = new GeoCoordinates()
    {
        Latitude = 32.4141,
        Longitude = 43.1123123,
    }
});
entities.Add(entity);

엔터티 사용

엔터티를 사용하려면 키워드(keyword) 또는 강력한 형식의 클래스를 사용합니다 dynamic .

이 코드 예제는 dynamic 키워드를 사용하여 메시지의 Entities 속성 내에서 엔터티를 처리하는 방법을 보여줍니다.

if (entity.Type == "Place")
{
    dynamic place = entity.Properties;
    if (place.geo.latitude > 34)
        // do something
}

이 코드 예제에서는 강력한 형식의 클래스를 사용하여 메시지의 속성 내에서 엔터티를 Entities 처리하는 방법을 보여줍니다.

if (entity.Type == "Place")
{
    Place place = entity.GetAs<Place>();
    GeoCoordinates geo = place.Geo.ToObject<GeoCoordinates>();
    if (geo.Latitude > 34)
        // do something
}

활동 유형

작업은 몇 가지 다른 형식의 가장 일반적인 메시지일 수 있습니다. 다양한 활동 유형에 대한 설명 및 자세한 내용은 Bot Framework 활동 스키마에서 찾을 수 있습니다.