2016-10-28 8 views
0

제 질문은 : 사용자가 엔터티에 지정한 값을 추가하는 방법입니다. 사용자 제공 값은 동적입니다.엔터티에 값을 추가 할 수 없습니다.

왓슨 응답은 첨부 된 이미지에서 볼 수 있듯이 toppings 변수를 사용자가 지정한 값으로 덮어 씁니다.

{ 
    "output": { 
    "text": "I got an order to add one or more toppings. 
      Adding <?context.toppings.append('toppings')?>. 
      Toppings to provide: <?entities['toppings']?.toString()?>" 
    }, 
    "context": { 
    "toppings": "<? entities['toppings']?.toString()?>" 
    } 
} 

enter image description here

답변

1

당신은 .append() 함수로 배열에 추가 할 수 있습니다.

예에서 표현식 "toppings": "<? entities['toppings']?.toString()?>"은이 노드가 실제 인식 된 엔터티 @toppings으로 처리 될 때마다 토핑 변수를 덮어 씁니다.

"context" : { "toppings" : [] }

그런 다음 대화 노드의 context 부분에 당신이 쓸 수 있습니다 : : 우선하여 $toppings 변수 요구는 예를 들어 배열로 정의 할 우리의 문서에서

"context" : { "toppings" : "<?$toppings.append(entities['toppings'].toJsonArray())?>" }

더 많은 정보 : Watson Conversation Doc

편집 : 이것에 대해 생각해 보면 엔티티와 변수에 동일한 이름을 사용하는 것은 좋지 않습니다. 당신은 그것을 안으로 저장한다 :-)

관련 문제