2016-11-17 1 views
1

은 내가 항상 인사 메시지가, (SDK를 사용하여) 자바의 회화 서비스 클라이언트대화의 첫 단계에 응답하기 위해 Converstation 서비스의 MessageRequest에 무엇을 제공해야합니까?

ConversationService conversationService = new ConversationService(ConversationService.VERSION_DATE_2016_07_11, userName, password); 
MessageRequest.Builder messageRequestBuilder = new MessageRequest.Builder(); 
messageRequestBuilder.inputText(question); 
ServiceCall<MessageResponse> response = conversationService.message(workspaceId, messageRequestBuilder.build()); 
MessageResponse answer = response.execute(); 

내가 텍스트로 제공 중요하지 않습니다 있습니다. 내가 지금은 초기 텍스트 인사말 과거합니까이

messageRequestBuilder = new MessageRequest.Builder(); 
messageRequestBuilder.context(answer.getContext()); 
messageRequestBuilder.inputText(question); 
response = conversationService.message(workspaceId, messsageRequestBuilder.build()); 
answer = response.execute(); 

같은 대답에서 전체 컨텍스트를 포함하는 두 번째 통화를 수행 할이 문제를 얻으려면.

내 질문은 : 대화의 각 단계에서 최소한 무엇을 제공해야합니까?

답변

1

왓슨 대화 서비스는 상태가 없으므로 대화 상태가 JSON 메시지 요청 및 응답의 일부로 context으로 전송됩니다. 따라서 수행해야 할 작업은 Watson 대화 서비스의 JSON 응답에서 context 부분을 가져 와서 다음 요청에서 메시지 요청과 함께 서비스에 다시 전송하는 것입니다.

context에는 노드가 마지막으로 처리 된 정보와 다음 평가가 시작될 정보가 있습니다.

+0

그래서 항상 컨텍스트에서 모든 것이 필요합니까? 클라이언트의 컨텍스트에 객체를 추가하는 것이 현명한가? 아니면 항상 입력의 일부가되어야 하는가? – mpjjonker

+1

클라이언트의 컨텍스트에 개체를 추가 할 수 있습니다. 사용자와 관련하여 시스템과 대화하고있는 데이터가있는 경우 (예 : 그의 이름이나 나이. 이 메소드를 사용하여 이것을'context' 필드에 변수로 설정하고 대화 플로우에서 사용할 수 있습니다. 예 : 'context'''username ': "John"'에 추가하고 대화 상자 노드에서 "$ $ username"이라고 쓰십시오. –

관련 문제