Java 我需要在会话服务的MessageRequest中提供什么来回答会话的第一步?

Java 我需要在会话服务的MessageRequest中提供什么来回答会话的第一步?,java,sdk,watson-conversation,Java,Sdk,Watson Conversation,我有一个Java会话服务客户端(使用SDK) 现在,我确实越过了最初的问候语 我的问题是:在对话的每个步骤中,我至少需要提供什么 Watson会话服务是无状态的,这意味着会话的状态是在JSON消息请求和响应的上下文中发送的。因此,您需要做的是从Watson对话服务的JSON响应中获取上下文部分,并在下一个请求中将其发送回服务,包括消息请求中的内容 在上下文中有最后处理的节点以及下一轮评估从何处开始的信息。所以我总是需要上下文中的所有信息?从客户端向上下文添加对象是明智的,还是应该始终作为输入的一

我有一个Java会话服务客户端(使用SDK)

现在,我确实越过了最初的问候语


我的问题是:在对话的每个步骤中,我至少需要提供什么

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


上下文中
有最后处理的节点以及下一轮评估从何处开始的信息。

所以我总是需要上下文中的所有信息?从客户端向上下文添加对象是明智的,还是应该始终作为输入的一部分?您可以从客户端向上下文添加对象。如果您有与系统对话的用户的一些数据,例如他的姓名或年龄,这可能是有意义的。您可以使用此方法将这些设置为
上下文
字段中的变量,并在对话流中使用它们。例如,您将“用户名”添加到
上下文
:“John”
,并在对话框节点中写入“Hi$username.”。。。
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();