请看一下图片。我在IBM UI端获得的响应未显示在Java控制台中。它为空或null,但意图被正确命中。
我正在使用java watson conversation api
开发一个聊天机器人,但是在点击子节点时我遇到了错误。是上下文问题还是别的什么?我无法理解。我附上了代码。
请帮忙。
input_gui是用户输入
MessageRequest newMessage = new
MessageRequest.Builder().inputText(input_gui).context(context).build();
MessageResponse response = conversationService.message(workspaceId, newMessage).execute();
newMessage = new MessageRequest.Builder()
.inputText(input_gui)
.context(response.getContext()) // output context from the first message
.build();
System.out.println("watson response"+response);
请看我附加的图像。这张图片是.......
答案 0 :(得分:1)
这是工作代码我得到了我的错误我每次都调用服务凭证,因此上下文初始化每个输入消息,为什么我现在无法在对话中获得单个会话ID现在正在工作
MessageRequest newMessage = new MessageRequest.Builder().inputText(input).context(context).build();
MessageResponse response = service.message(WORKSPACE_ID,newMessage).execute();
context = response.getContext();
System.out.println(response);
答案 1 :(得分:0)
我不是Java的专家,但是,试着帮助你,查看Java SDK examples的Watson Conversation。您可以从IBM开发人员查看此project,他们正在使用与Java的对话服务。
请参阅几个月前我为一次测试所做的代码:
MessageRequest.Builder messageRequestBuilder = new MessageRequest.Builder();
messageRequestBuilder.inputText(input_gui);
messageRequestBuilder.context(question.context); //this context comes from a previous step
ServiceCall<MessageResponse> response = conversationService.message(workspaceId, messageRequestBuilder.build());
MessageResponse mAnswer = response.execute();
Object textObject = mAnswer.getOutput().get("text");