2017-12-02 11 views
1

Where is the data context in Dialog Flow (API.ai)에서 사용자 별 데이터를 유지하는 법을 물었습니다. 예를 들어 사용자가 도시 목록을 요청하고 webhook 서비스가 무작위로 3 개를 선택합니다. 나중에이 목록에있는 도시를 참조하려면 어떻게 든 저장해야합니다. 이 문제에 대한 해답은 상황에서 앞뒤로 전송 될 수 있다는 것이 었습니다.대화 흐름에서 사용자 엔터티를 사용해야 할 때?

이제 설명서의 사용자 엔티티에 대해 읽었습니다. 이것은 나에게 알려지지 않은 개념이었다. 내 질문은 지금이다 : 우리는 또한 그러한 흐름에 사용자 엔티티를 사용할 수 있습니까? 예 :

  1. 사용자가 3 개 도시를 요청합니다.
  2. Webhook이 호출되고 임의의 3 개 도시가 선택됩니다. 현재 webhook 서비스는 REST API를 통해 진행중인 세션에 대한 사용자 엔터티 @user-cities을 만듭니다. 우리는 심지어 SQL 식별자를 키로 사용하고 도시 이름을 가능한 동의어로 사용할 수도 있습니다.
  3. 나중에 인 텐트에서 매개 변수는 @user-cities입니다. 이전 도시 목록을 기반으로 유효한 도시가 webhook 서비스에 제공되면 식별자가 제공됩니다. Webhook 서비스는이 식별자를 사용하여 도시에 대한 추가 정보를 제공 할 수 있습니다.

예 흐름 :

User: Please provide me some interesting cities. 
Agent: What about New York, Berlin and Barcelona? 
User: Please tell me more about Barcelona! 
Agent: Sure, Barcelona is ... 

나는 아직이 시도하지 않은, 그러나 이것은 사용자 단체의 좋은 applicaiton인지 궁금 무엇입니까? 후속 질문은 다음과 같습니다. 사용자 엔터티를 언제 사용하고 데이터를 컨텍스트에 보관합니까?

답변

2

이것은 작동하지만 실제로는 사용자 엔티티의 좋은 응용 프로그램이 아닙니다. 가장 큰 문제는 "this"또는 "that"또는 "that first one"과 같은 용어에 대한 별칭을 만들기 위해 API 호출을한다는 것입니다. 또한 오래된 별칭을 제거하고 새 별칭을 설정하는 것을 포함하여 해당 엔터티 정의를 계속 변경하고 있습니다.

사용자 엔티티는 다른 사용자와 다른 사용자에 대해 사용자가 알고있는 것에 가장 적합합니다. 예를 들어 도시를 사용하려면 사용자 엔티티를 사용하여 사용자가 선호하는 도시 또는 해당 도시에 대한 별명을 저장할 수 있습니다. 사용자가 로그인하면 @user_cities을 설정하고 도시에 대한 별명을 사용할 수 있습니다.

업데이트 다시 도시 프레임 워크를 사용하십시오.

특정 도시에 대한 기능 및 별칭이 선택되면 사용자 엔터티를 변경할 수 있습니다. 따라서 사용자가 "시드니"를 선택한 경우 오페라 하우스 또는 해변에 대한 항목을 포함하는 @feature 사용자 엔티티를 만들 수 있지만 시계탑에 관한 것은 아닙니다. "런던"의 경우 타워와 다리에 대한 엔티티를 추가 할 수 있지만 해변은 추가 할 수 없습니다.

초점은 당신이 에 대화에 대한을 기억 원하는 대 사용자로부터을 듣고 하려는 작업에 있습니다.

+0

자세한 답변을 보내 주셔서 감사합니다. 따라서 사용자 엔티티는 사용자 별 속성을위한 것이지만, 진행중인 세션에 대해 사용자가 더 자주 또는 덜 고려해야합니다. 그래서 그것은 실제로 사용자에게 달려 있으며, 일어나고있는 대화에 의존하지 않습니다. 그게 좋은 이해인가? –

+1

상대적으로. 세션이 진행됨에 따라 사용자 엔티티를 교체하려는 경우가있을 수 있습니다. 내 업데이트를 참조하십시오 – Prisoner

+1

이것은 이제 의미가 있습니다! –