如何结束对话?
How to end a conversation?
我使用 Bot Framework 创建了一个机器人,我正在使用 conversationID
来维护我的后端对话引擎的状态。我在结束对话的文档中找不到。在某些时候,用户必须能够向对话发出 "end, or exit" 信号,以便下次他们开始对话时,它会得到一个新的 conversationID
。我认为这应该是一项简单的任务。我正在使用默认的 echo 模板,只是用 class 的方法替换了字母数行,returns 将文本发送回用户。
A json 网络令牌 (jwt) 仅在一次聊天中可用。所以它再次获得 converstionId。
session.endConversation() 方法提供了一种方便的方法来快速终止与用户的对话。用于结束对话。
现在有一个 ActivityTypes.EndOfConversation(这已经在 sdk 中了)。
这是一种使用方法:
v3
public static async Task EndConversation(this IBotToUser botToUser, string code = EndOfConversationCodes.CompletedSuccessfully, CancellationToken cancellationToken = default(CancellationToken))
{
var message = botToUser.MakeMessage();
message.Type = ActivityTypes.EndOfConversation;
message.AsEndOfConversationActivity().Code = code;
await botToUser.PostAsync(message, cancellationToken);
}
这也应该在未来的版本中:GitHub Pull Request
v4
public static async Task EndConversation(this ITurnContext turnContext, string code = EndOfConversationCodes.CompletedSuccessfully, CancellationToken cancellationToken = default(CancellationToken))
{
var endOfConversation = Activity.CreateEndOfConversationActivity();
endOfConversation.Code = code;
await turnContext.SendActivityAsync(endOfConversation, cancellationToken);
}
有更新更短的方法1:
context.EndConversation(EndOfConversationCodes.CompletedSuccessfully);
我使用 Bot Framework 创建了一个机器人,我正在使用 conversationID
来维护我的后端对话引擎的状态。我在结束对话的文档中找不到。在某些时候,用户必须能够向对话发出 "end, or exit" 信号,以便下次他们开始对话时,它会得到一个新的 conversationID
。我认为这应该是一项简单的任务。我正在使用默认的 echo 模板,只是用 class 的方法替换了字母数行,returns 将文本发送回用户。
A json 网络令牌 (jwt) 仅在一次聊天中可用。所以它再次获得 converstionId。 session.endConversation() 方法提供了一种方便的方法来快速终止与用户的对话。用于结束对话。
现在有一个 ActivityTypes.EndOfConversation(这已经在 sdk 中了)。
这是一种使用方法: v3
public static async Task EndConversation(this IBotToUser botToUser, string code = EndOfConversationCodes.CompletedSuccessfully, CancellationToken cancellationToken = default(CancellationToken))
{
var message = botToUser.MakeMessage();
message.Type = ActivityTypes.EndOfConversation;
message.AsEndOfConversationActivity().Code = code;
await botToUser.PostAsync(message, cancellationToken);
}
这也应该在未来的版本中:GitHub Pull Request
v4
public static async Task EndConversation(this ITurnContext turnContext, string code = EndOfConversationCodes.CompletedSuccessfully, CancellationToken cancellationToken = default(CancellationToken))
{
var endOfConversation = Activity.CreateEndOfConversationActivity();
endOfConversation.Code = code;
await turnContext.SendActivityAsync(endOfConversation, cancellationToken);
}
有更新更短的方法1:
context.EndConversation(EndOfConversationCodes.CompletedSuccessfully);