我在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();
现在我已经超越了最初的问候语。
我的问题是:在对话的每个步骤中,我至少需要提供什么?
答案 0 :(得分:1)
Watson Conversation服务是无状态的,这意味着会话的状态是在context
部分JSON消息请求和响应中发送的。因此,您需要做的是从Watson Conversation服务的JSON响应中获取context
部分,并在下一个请求中将其发送回服务,包括消息请求中的服务。
在context
中,有最后一个节点被处理的信息以及下一轮评估的开始位置。