我需要在Converstation服务的MessageRequest中提供什么才能回答对话的第一步?

时间:2016-11-17 12:39:48

标签: java sdk watson-conversation

我在Java中有一个Conversation Service客户端(使用SDK)

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 个答案:

答案 0 :(得分:1)

Watson Conversation服务是无状态的,这意味着会话的状态是在context部分JSON消息请求和响应中发送的。因此,您需要做的是从Watson Conversation服务的JSON响应中获取context部分,并在下一个请求中将其发送回服务,包括消息请求中的服务。

context中,有最后一个节点被处理的信息以及下一轮评估的开始位置。