如何以编程方式结束 Pepper 上的聊天?
How can I programmatically end a Chat on Pepper?
我有一个带有以下主题文件的简单聊天机器人,我想在用户说出关键短语(例如“再见”)时结束聊天(并阻止 Pepper 收听)。
u: (hello) hi
u: (my name is _*) nice to meet you
u: (bye) goodbye %endChat
但是我还没有找到任何操作(smth 就像 chat.end())和文档状态 "If you want to stop the chat when a qiChatbot is stopped you must track the state of the QiChatbot and manually stop the chat when the QiChatbot ends."
知道如何/监听什么事件来做到这一点吗?
我正在使用基于 Android / Java 的 Pepper 版本。
您可以在QiChat中使用^endDiscuss关键字结束当前聊天。
在QiChat:
u: (hello) hi
u: (my name is _*) nice to meet you
u: (bye) goodbye ^endDiscuss(endReason)
然后在您的应用程序中监听 QiChatbot 结束事件,例如 this,当它被触发时,关闭聊天。正如文档所说,如果您有多个结束条件并想做不同的事情,您可以从 QiChat 传递一个结束原因。
在Java中:
// Create a QiChatbot
final QiChatbot qichatbot = QiChatbotBuilder.with(qiContext)
.withTopic(topic)
.build();
// Create a Chat
final Chat chat = ChatBuilder.with(qiContext)
.withChatbot(qichatbot)
.build();
// Execute the chat asynchronously
final Future<Void> fchat = chat.async().run();
// Stop the chat when the qichatbot is done
qichatbot.addOnEndedListener(endReason -> {
Log.i(TAG, "qichatbot end reason = " + endReason);
fchat.requestCancellation();
});
我有一个带有以下主题文件的简单聊天机器人,我想在用户说出关键短语(例如“再见”)时结束聊天(并阻止 Pepper 收听)。
u: (hello) hi
u: (my name is _*) nice to meet you
u: (bye) goodbye %endChat
但是我还没有找到任何操作(smth 就像 chat.end())和文档状态 "If you want to stop the chat when a qiChatbot is stopped you must track the state of the QiChatbot and manually stop the chat when the QiChatbot ends."
知道如何/监听什么事件来做到这一点吗? 我正在使用基于 Android / Java 的 Pepper 版本。
您可以在QiChat中使用^endDiscuss关键字结束当前聊天。
在QiChat:
u: (hello) hi
u: (my name is _*) nice to meet you
u: (bye) goodbye ^endDiscuss(endReason)
然后在您的应用程序中监听 QiChatbot 结束事件,例如 this,当它被触发时,关闭聊天。正如文档所说,如果您有多个结束条件并想做不同的事情,您可以从 QiChat 传递一个结束原因。
在Java中:
// Create a QiChatbot
final QiChatbot qichatbot = QiChatbotBuilder.with(qiContext)
.withTopic(topic)
.build();
// Create a Chat
final Chat chat = ChatBuilder.with(qiContext)
.withChatbot(qichatbot)
.build();
// Execute the chat asynchronously
final Future<Void> fchat = chat.async().run();
// Stop the chat when the qichatbot is done
qichatbot.addOnEndedListener(endReason -> {
Log.i(TAG, "qichatbot end reason = " + endReason);
fchat.requestCancellation();
});