c# - 如何使用 SkillContext 将数据从 VirtualAssistant 传递给技能
问题描述
我需要使用技能分享来自我的虚拟助手的信息。我尝试使用 SkillContext,我没有收到错误,但在 Skill 中 SkillContext 是空的。
这是我在 VirtualAssistant MainDialog::RouteAsync 中用于设置有效负载的代码
Dictionary<string, JObject> dictionary = new Dictionary<string, JObject>();
dictionary.Add("userEmail", JObject.Parse("{ email: 'emiliano.carlesi@itattitude.com'}"));
await _skillContextAccessor.SetAsync(dc.Context, new SkillContext(dictionary));
var result = await dc.BeginDialogAsync(identifiedSkill.Id);
在 Cosmos DB botstate-db 中,我找到了值:
"SkillContext": {
"$type": "Microsoft.Bot.Builder.Skills.SkillContext, Microsoft.Bot.Builder.Skills",
"userEmail": {
"email": "emiliano.carlesi@itattitude.com"
}
},
这是我用来检索有效负载的 MainDialog::RouteAsync 中的代码:
SkillContext skillContext = await _contextAccessor.GetAsync(dc.Context, () => new SkillContext());
if (skillContext == null)
{
TelemetryClient.TrackTrace("skillContext is null", Severity.Information, null);
}
else
{
TelemetryClient.TrackTrace("skillContext is not null", Severity.Information, null);
if (skillContext.Keys != null && skillContext.Keys.Count > 0)
{
foreach (string key in skillContext.Keys)
{
TelemetryClient.TrackTrace(String.Format("Key in skillContext: {0}", key), Severity.Information, null);
}
}
}
解决方案
推荐阅读
- java - ARCore 手势旋转问题
- javascript - javascript通过按钮切换div样式显示
- python-3.x - 使用连接到 Ui_MainWindow 的主类之外的类
- asp.net-mvc - 某些 PoP 服务器的 Microsoft 标准 CDN URL 重定向不起作用
- python - Python Web 套接字仅发送 1 条消息
- php - 如何在数千个代码页中找到一个字符串?
- python - 在 Mac 上,尽管有教程,但我无法连接安装 Python GAMS API。给出版本错误
- angular - 在 Angular 中导入本地库时生成错误“找不到模块”
- deep-learning - 注意力机制真的是注意力还是只是再次回顾记忆?
- .htaccess - .htaccess - RewriteRule 在另一个 RewriteRule 之后附加到 URL 的末尾