C# 如何在机器人上显示保存的机器人转录本?如何为用户检索正确的成绩单?
我正在尝试实现Blob转录本存储()。我能够实现并看到容器下Azure blob存储中存储的成绩单作为json文件。现在我面临的问题是如何正确地显示它们。如果我使用SendActivityasync,那么它会显示bot和用户消息,就像bot正在键入一样(在bot的左侧)C# 如何在机器人上显示保存的机器人转录本?如何为用户检索正确的成绩单?,c#,.net,botframework,bots,C#,.net,Botframework,Bots,我正在尝试实现Blob转录本存储()。我能够实现并看到容器下Azure blob存储中存储的成绩单作为json文件。现在我面临的问题是如何正确地显示它们。如果我使用SendActivityasync,那么它会显示bot和用户消息,就像bot正在键入一样(在bot的左侧) 有没有办法一次就把成绩单扔掉?只是为了显示整个对话,还是应该一个接一个地进行?是否有允许此操作的功能 由于这些记录是使用会话ID保存的,因此如何使用此示例仅获取正在使用bot的用户,而不是所有用户?如果每个会话的会话ID都是新
createStore()
方法renderWebChat()
方法中。例如://这只是一个例子。您将希望使用
//存储中的一系列活动。
常数历史=[
{
键入:“消息”,
id:“*******************”,
时间戳:“2020-10-30T20:45:52.7120529Z”,
channelId:“网络帽”,
发件人:{
id:“*******************”,
名称:“****************”,
角色:“机器人”,
},
对话:{
id:“*******************”,
},
地点:“恩我们”,
文本:“这是以前的消息”,
输入权限:“接受输入”,
附件:[
],
实体:[
],
答复内容:“*******************”,
}
]
[...]
const store=window.WebChat.createStore({activities:history},({dispatch})=>next=>action=>{
返回下一步(操作);
});
window.WebChat.renderWebChat({
directLine:window.WebChat.createDirectLine({secret:token}),
商店
},
document.getElementById('webchat');
[...]
您所说的“是否有一种方法可以一次性转储成绩单?”是什么意思?您希望对话的显示方式如何?与用户使用机器人时的显示方式相同。例如,如我所说,如果我从Azure Blob存储中提取数据,我就会进入并使用SendActivityAsync发送这些活动。这将弹出Bot端(聊天左侧)的所有查询。但我想从左侧发送所有bot消息,从右侧发送用户消息。希望这是有意义的。同样的方法,然后你会与它正常工作。我使用dump的原因是所有活动都将单独保存,所以它应该一个接一个地显示吗?不幸的是,无法让bot发送一条消息,就好像它来自用户一样。不过,如果您使用的是WebChat,谢谢,我实际上已经实现了这一点,而且效果非常好。我试图实现长达15到30天的聊天记录。我知道这会持续一天,不用于历史记录,但如果有人重新加载页面,则用于保存会话。所以现在没办法了?在继续下一件事之前确认一下。也许dump的措辞是错误的。这只是一种说法,如果我把成绩单保存15天,有没有办法让它在bot上弹出,而不是一个接一个地发送,如果这样做有意义的话。非常感谢你的回答,它正在起作用。第二点是我想问的后续问题。如果会话id每次都是新的,那么您是在跟踪它还是将它存储在用户那里,以便根据日期提取正确的会话?再次感谢您,这真的很有帮助。@SharatGangadharan会话ID的处理因客户端而异,但对于WebChat,每次将密钥交换为令牌时,会话ID都会发生变化,如果将密钥传递到createDirectLine()
,则每次页面刷新时都会发生这种变化。如果你想拉所有用户的对话,你可能会考虑不同地存储他们的数据,也许是一个映射,其中用户ID是键,而值是一个活动数组。然而,我要求的原因是使用azure blob成绩单自动生成的现有基础结构。它将日志保存在/{channel}/coversationid/activityid下。所以我想存储会话ID,就像你提到的那样,使用azure存储blob API。我需要会话ID从那里提取日志。我正在使用令牌示例生成Guid.NewGuid()的userid,这也意味着userid将不同。这是错误的吗?您是否建议将具有唯一值的活动本身单独存储为一个映射,而不是从默认日志站点访问活动?如果您试图执行现有infra设置的操作,您只能依靠单独使用现有的基础结构,而这不是。我要么1)以不同的方式存储数据,要么2)以相同的方式存储数据,然后让机器人解析数据以执行您想要的操作。各有利弊。