下文用来表示用户Session的会话状态。用Context 特性标记的Intent将仅在指定的上下文名称与其匹配时才被调用,对从会话上面消除歧义很有用的。

上下文由名称和生存周期组成。生存周期表示上下文存活的请求数量。默认是5个请求。

另外,上下文也有自身的生存时间,默认一个上下文将保持活动10分钟,当生存周期或生存时间任一到期,其将被从用户session中移除。

用法举例,你的应用程序需要让用户确认shutdown指令:

[Expression("shutdown")]
public void Shutdown(Context context, Result result) { //Add a new "shutdown_confirmation" context. context.Add("shutdown_confirmation", 2); result.SendResponse("Are you sure?"); //Do something. }
[Expression("{yes}")]
[Entity(Sys.Positive)]
[Context("shutdown_confirmation")] public void ShutdownConfirmed(Context context, Result result) { //Do something. } [Expression("{no}")] [Entity(Sys.Negative)] [Context("shutdown_confirmation")] public void ShutdownCanceled(Context context, Result result) { //Do something. }这里指定了2个用户请求作为傻姑娘下文的生存周期,周期到时会自动被删除,你也可以手动删除。
context.Remove("shutdown_confirmation");

添加的上下文在存续期间可以在过程中携带多个唯一参数以携带额外信息。

[Expression("turn on the air conditioner")]
public void TurnOnAC(Context context, Result result) { context.Add("air-con"); var acContext = context["air-con"]; acContext.Parameters.Add("temp", "medium"); }或者
[Expression("{turn on} the air conditioner")]
[Entity("on")]
public void TurnOnAC(Context context, Result result) { var newConItem = context.Create("air-con"); newConItem.Parameters.Add("temp", "medium"); }

有条件的存在,添加上下文时可以使用条件。

[Expression("Play @movie-name")]
public void PlayMovie(Context context, Result result) { //Keep context active until movie is playing. context.Add("movie-playback", () => { return MoviePlayer.IsPlaying; }); //Do something. }

转载于:https://www.cnblogs.com/mrtiny/p/9082090.html

Syn Bot /OSCOVA 上下文(8)相关推荐

  1. Syn Bot /OSCOVA 表达式和实体(6)

    表达式用来定义用户输入的模式,要使用表达式,请使用Expression 特性标记装饰 Intent. 一个Intent可以使用多个表达式装饰. 声明表达式可以用下列的符号,表达式中的其他符号将在归一化 ...

  2. Syn Bot /OSCOVA 快速回复(11)

    Quick Replies 快速回复,简单说就是小语料知识库. 具体说有两种,一种是直接文本 class SmallTalkDialog : Dialog {public SmallTalkDialo ...

  3. 热水bot协议_如何设计Bot协议

    热水bot协议 by Alex Bunardzic 由Alex Bunardzic 如何设计Bot协议 (How to Design a Bot Protocol) One of the bigges ...

  4. 分析Android银行木马GM Bot的变异过程

    导语:2016年2月19日,IBM XForce的研究员发布了一个情报报告,这份报告声称GM BOT的源代码在2015年12月被泄漏到了一个恶意软件论坛上.GM BOT是一个复杂的安卓恶意软件家族,它 ...

  5. Teams Bot开发系列:Activity和Turn

    这篇文章我们来说一下Activity和Turn这两个bot framework中最重要的两个概念,同时也介绍一下TurnContext和BotAdapter Activity 一个activity是聊 ...

  6. 常见爬虫/BOT对抗技术介绍(一)

    爬虫,是大家获取互联网公开数据的有效手段.爬虫.反爬虫技术.反-反爬虫技术随着互联网的不断发展,也在不断发展更新, 本文简要介绍现代的爬虫/BOT对抗技术,如有疏漏,多谢指正! 一.反爬虫/BOT技术 ...

  7. 论文阅读《No bot expects the DeepCAPTCHA》

    1. No bot expects the DeepCAPTCHA! (2017) 之前添加扰动的方法: 1) The Optimization Method: Szegedy et al. [42] ...

  8. 论文阅读-Twitter Bot Detection Using Bidirectional LongShort-term Memory Neural Networks-TPS-ISA会议

    会议:2019 First IEEE International Conference on Trust, Privacy and Security in Intelligent Systems an ...

  9. Rasa Stack:创建支持上下文的人工智能助理和聊天机器人教程

    相关概念 Rasa Stack 是一组开放源码机器学习工具,供开发人员创建支持上下文的人工智能助理和聊天机器人: • Core = 聊天机器人框架包含基于机器学习的对话管理 • NLU = 用于自然语 ...

最新文章

  1. C++ Primer 读书笔记 (1)
  2. python字符串连接的三种方法及其效率、适用场景详解
  3. v 3437 powered by ipb_奔驰V系改装订制版 目前最安全的商务车_凤凰网汽车
  4. mysql workbench 6.2.3 linux_MySQL Workbench 6.2.1 BETA 发布
  5. CI Weekly #17 | flow.ci 支持 Java 构建以及 Docker/DevOps 实践分享
  6. redhat linux5 安装配置 JDK1.6+Tomcat6+Apache2.2.x+jk_mod1.2
  7. python123程序设计题答案第三周_Python 3 程序设计学习指导与习题解答
  8. SAP License:SAP消息
  9. docker 不包含依赖 打包_2019开启新学习,带你从零了解Docker
  10. MySQL 聚合函数以及 优先级
  11. 五款常见的bt磁力下载软件
  12. php while循环 selecrt下拉框 option默认选中
  13. 手机游戏后台服务整体架构
  14. 物联网终端安全系列(之四) -- 终端安全方案之SIM卡篇
  15. 用HTML+CSS做一个漂亮简单大学生校园班级网页(web前端期末大作业)
  16. VC++ excel 写入与写出数据
  17. 记2017第八届蓝桥杯决赛(国赛)—北京三日游
  18. 张勇用最严厉的内部信,敲打阿里云,也在提振阿里士气
  19. 【业务数据分析】——如何搭建数据指标体系
  20. Vue绑定<audio>/<video>标记的muted属性无效问题随记

热门文章

  1. [repost]Xcode因为证书问题经常报的那些错
  2. nginx安装及编译参数详解
  3. Android中RatingBar的自定义效果
  4. 转 詹宏志谈数字出版
  5. 我的机器学习入门之路(中)——深度学习(自然语言处理)
  6. Python 赋值、浅拷贝、深拷贝的区别?
  7. Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)
  8. 内核中的HZ 及延迟等
  9. 数据输出:如何将数据带给页面||SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面
  10. jQuery 事件绑定方法(bind hover toggle live.... )、删除事件方法(unbind, die)及 事件对象