2017-03-24 28 views
0

我正在嘗試使用IBM Watson Conversation API在Java中進行對話。 我也路過IBM Watson Conversation API始終返回父節點,而不是插入到子節點中

方面

在消息request.Still其返回相同。

static Map<String, Object> context = new HashMap<String, Object>(); 
public static void main(String[] args) { 

    System.setProperty("https.proxyHost", "10.xx.xx.xx"); 
    System.setProperty("https.proxyPort", "80"); 
    ConversationService service = new ConversationService(ConversationService.VERSION_DATE_2016_07_11); 
    service.setUsernameAndPassword("xxxxxx", "xxxxxx"); 

    MessageRequest newMessage = new MessageRequest.Builder().inputText("galaxy light").context(context).build(); 
    MessageResponse response = service.message("xxxxx", newMessage).execute(); 
     context = response.getContext(); 

    System.out.println(context); 
    System.out.println(response); 
} 

我正在保存上下文並再次傳遞。

"output": { 
    "log_messages": [], 
    "text": [ 
     "i did not understand you may say can you add hot chocolate" 
    ], 
    "nodes_visited": [ 
     "node_2_1487682572904" 
    ] 
    }, 
    "input": { 
    "text": "galaxy light" 
    } 

我還能做什麼呢?

+0

System.out.println(context)顯示一些東西? –

回答

1

您的第一個電話總是會有一個空白的上下文進來。您的示例代碼是最初的呼叫。

如果你進一步調用,那麼你發回返回的上下文從之前維護狀態。

但是,您的問題看起來可能不同。在這種情況下,您猜測您正在碰到anything_else節點。如果信心< 0.2意向不匹配。所以你需要檢查你的JSON的intents[]部分,看看系統是否需要更多的培訓。

快速的方法是在輸出中輸入以下內容。

<? intents ?> 

我還建議在alternate_intents切換,而你正在測試。

除此之外,上面沒有太多可以繼續。我會建議發佈完整的JSON響應。