目录
意图定义语言
执行定义语言
首页 科技周边 人工智能 基于状态机的聊天机器人设计经验总结

基于状态机的聊天机器人设计经验总结

Apr 11, 2023 pm 06:31 PM
机器人 状态机 聊天

为了更好地了解智能机器人项目的需求和改进方向,我们常常需要研发一些工具。在我参与的多个机器人项目中,大多数都能够成功地满足产品需求。通过这些实践,我们深刻认识到,如果要不断进步和提高,就必须对现有的机器人定义语言进行重大的改进。

  • 简化需要复杂对话流程的机器人的创建过程。
  • 最大限度地提高可重用性,通过重用过去已经定义过的模块和对话路径来创建机器人

在传统的做法中,完成这些并不容易,因为意图定义与部分排序约束混合在一起,限制了对话路径的自由度。这对于处理“开放式”机器人(常见于FAQ样式的机器人),其中大多数问题是独立的且始终可用的,这已经足够了。但对于更“封闭”的机器人来说,潜在的对话限制要多得多(比如用于从在线订票机器人)。

基于状态机的聊天机器人设计经验总结

为了将聊天机器人定义语言的功能提升到一个新的水平,在一些项目中我们引进了更接近状态机语义的DSL,并完全将意图定义与控制机器人执行定点可用意图的转换规则分离,这么做有以下优势:

  1. 新机器人中可以复用以前的意图,即使设置的对话路径不同。
  2. 可以使用状态机定义复杂的对话流,让机器人保持清晰和精确的语义。
  3. 可以创建复杂的状态守护来控制转换。根据用户输入、即将发生的事件以及之前的数据、对话参数等,将机器人移动到新状态。
  4. 可以使用状态主体来存储复杂的对话逻辑,以响应用户请求。
  5. 可以将机器人模块化,以便在其他机器人中重用部分状态机。
  6. 可以将本地回退定义为状态行为的一部分。除了默认的全局回退,还可以将本地回退与状态相关联,以便在状态上下文中处理错误,比如显示一条消息,帮助用户回答机器人在对话中的特定状态下提出的问题。

意图定义语言

意图定义现在与执行部分解耦,但仍然是一个单独的子语言。对于每个意图,我们只需提供一些训练句子,让机器人能够识别出用户话语的意图,并从中提取所需的参数。

举个例子,我们有一个简单的机器人,它只能理解两种类型的用户话语:问候和陈述姓名。我们可以为每种话语类型提供几个示例句子,让机器人学会如何识别它们。当用户输入一个话语时,机器人会根据它的意图执行相应的操作,并从中提取所需的参数。

intent Hello {
inputs {
"你好"
"早上好"
}
}
 
intent MyNameIs {
inputs {
"我的名字叫小明"
"我是小明"
"你可以叫我小明"
}
creates context Greetings {
set parameter name from fragment "小明" (entity any)
}
}
登录后复制

我们为每种意图提供一些样本句子,来训练机器人如何识别它们。此外,在某些情况下,我们还会在上下文中收集一些参数(例如,用户的姓名),以便以后能够更个性化地回答用户。

我们还没有具体说明机器人应该先尝试匹配哪种意图,这是执行部分语言的内容。这种方法使我们能够重复利用这些意图(例如,在另一个机器人中,我们可能需要询问用户的姓名,而不仅仅是在问候意图之后)。

执行定义语言

使用执行文件来定义一个状态机,描述机器人如何响应意图/事件,并且可以进行转换。这使得机器人的设计者可以查看执行文件,了解整个对话流程。

执行语言中的每个状态包含 3 个部分

  • Body (可选):机器人在进入状态时执行的反应。
  • Next (必选):定义了出站转换,表示为 condition –> State。 当接收到事件/意图时,会评估条件,如果满足转换,则执行引擎会移动到指定的状态并执行其相应的反应。需要注意的是,转换条件可以非常复杂。 它们是真正的守卫,这意味着如果整个条件不为真,则转换不可导航,引擎将保持当前状态。
  • Fallback (可选):此部分可以包含任意代码(就像 Body 部分一样),如果引擎无法找到可导航的转换,则会执行这些代码。

执行模型还包含 2 个特殊状态:

  • Init:是创建用户会话时进入的常规状态。它可以包含 Body、_Next_和 Fallback 部分。
  • Default_Fallback:它只能包含 Body 部分,并且不能作为转换的目标状态。该状态表示在当前状态中未定义本地回退时执行的默认回退代码。该状态可用于打印通用错误消息(例如,“抱歉,我没明白您的意思”),而本地回退则可以打印针对当前状态的定制消息(例如,“请回答是或否”)。

最后,一个状态可以定义一个单一的通配符转换(使用保留字符___作为转换条件),当计算状态主体时将自动导航。这使我们能够在多个地方重用相同的代码并模块化执行逻辑。下面是一个简单的机器人示例,它只回复问候意图,询问用户名并向用户问好。这个机器人的回复可以通过我们基于 React 的聊天小部件显示。

//We can always have an init state in case we need to initialize some bot parameters (e.g. welcoming message)
Init {
Next { 
//Here we state that the bot will first listen for an utterance matching the Hello intent, it will ignore anything else
intent == Hello --> HandleHello
}
}
HandleHello {
Body {
 ReactPlatform.Reply("你好, 你叫什么名字?")
}
Next {
//We wait for the user to input the name, no other transition is possible at this point
//Obviously, in more complex bots we may have several possible outgoing transitions in a given state
intent == MyNameIs --> HandleMyNameIs
}
}
HandleMyNameIs {
Body {
ReactPlatform.Reply("你好 " + context.get("Greetings").get("name"))
}
Next {
// An automatic transition to the Init state since at this point the conversation is finished and we can start again
_ --> Init
}
}
// Default Fallback state could go here
登录后复制


以上是基于状态机的聊天机器人设计经验总结的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

第二代Ameca来了!和观众对答如流,面部表情更逼真,会说几十种语言 第二代Ameca来了!和观众对答如流,面部表情更逼真,会说几十种语言 Mar 04, 2024 am 09:10 AM

人形机器人Ameca升级第二代了!最近,在世界移动通信大会MWC2024上,世界上最先进机器人Ameca又现身了。会场周围,Ameca引来一大波观众。得到GPT-4加持后,Ameca能够对各种问题做出实时反应。「来一段舞蹈」。当被问及是否有情感时,Ameca用一系列的面部表情做出回应,看起来非常逼真。就在前几天,Ameca背后的英国机器人公司EngineeredArts刚刚演示了团队最新的开发成果。视频中,机器人Ameca具备了视觉能力,能看到并描述房间整个情况、描述具体物体。最厉害的是,她还能

微信不显示该聊天怎么恢复?微信不显示该聊天恢复方法 微信不显示该聊天怎么恢复?微信不显示该聊天恢复方法 Mar 13, 2024 pm 01:50 PM

微信,作为当下最受欢迎的社交软件之一,提供了丰富的聊天功能。但有时,我们可能会遇到“不显示该聊天”的情况,导致某些重要对话被隐藏。要恢复这些聊天,其实很简单。只要按照以下这些步骤操作,就能轻松恢复被隐藏的聊天,继续享受微信带来的便捷交流体验。微信不显示该聊天怎么恢复?微信不显示该聊天恢复方法方法一,尝试直接在微信的消息列表中搜索该聊天对象的名称或关键字。如果搜索到了,点击进入聊天界面,这样就可以恢复显示该聊天了。方法二,通过好友聊天恢复:打开微信,点击通讯录,找到被隐藏聊天显示的好友,点击发消息

AI如何使机器人更具自主性和适应性? AI如何使机器人更具自主性和适应性? Jun 03, 2024 pm 07:18 PM

在工业自动化技术领域,最近有两个热点很难被忽视:人工智能(AI)和英伟达(Nvidia)。不要改变原内容的意思,微调内容,重写内容,不要续写:“不仅如此,这两者密切相关,因为英伟达在不仅仅局限于其最开始的图形处理单元(GPU),正在将其GPU技术扩展到数字孪生领域,同时紧密连接着新兴的AI技术。”最近,英伟达与众多工业企业达成了合作,包括领先的工业自动化企业,如Aveva、罗克韦尔自动化、西门子和施耐德电气,以及泰瑞达机器人及其MiR和优傲机器人公司。Recently,Nvidiahascoll

2 个月不见,人形机器人 Walker S 会叠衣服了 2 个月不见,人形机器人 Walker S 会叠衣服了 Apr 03, 2024 am 08:01 AM

机器之能报道编辑:吴昕国内版的人形机器人+大模型组队,首次完成叠衣服这类复杂柔性材料的操作任务。随着融合了OpenAI多模态大模型的Figure01揭开神秘面纱,国内同行的相关进展一直备受关注。就在昨天,国内"人形机器人第一股"优必选发布了人形机器人WalkerS深入融合百度文心大模型后的首个Demo,展示了一些有趣的新功能。现在,得到百度文心大模型能力加持的WalkerS是这个样子的。和Figure01一样,WalkerS没有走动,而是站在桌子后面完成一系列任务。它可以听从人类的命令,折叠衣物

首个自主完成人类任务机器人出现,五指灵活速度超人,大模型加持虚拟空间训练 首个自主完成人类任务机器人出现,五指灵活速度超人,大模型加持虚拟空间训练 Mar 11, 2024 pm 12:10 PM

这周,由OpenAI、微软、贝佐斯和英伟达投资的机器人公司FigureAI宣布获得接近7亿美元的融资,计划在未来一年内研发出可独立行走的人形机器人。而特斯拉的擎天柱也屡屡传出好消息。没人怀疑,今年会是人形机器人爆发的一年。一家位于加拿大的机器人公司SanctuaryAI最近发布了一款全新的人形机器人Phoenix。官方号称它能以和人类一样的速率自主完成很多工作。世界上第一台能以人类速度自主完成任务的机器人Pheonix可以轻轻地抓取、移动并优雅地将每个对象放置在它的左右两侧。它能够自主识别物体的

人形机器人会变魔术了,春晚节目组了解一下 人形机器人会变魔术了,春晚节目组了解一下 Feb 04, 2024 am 09:03 AM

一眨眼的功夫,机器人都已经学会变魔术了?只见它先是拿起桌上的水勺,向观众证明了里面什么也没有……然后,它又把手中鸡蛋似的物体放了进去,然后把水勺放回桌子上,开始“施法”……就在它把水勺再次拿起的时候,奇迹发生了。原先放进去的鸡蛋不翼而飞,跳出的东西变成了一个篮球……再来看一遍连贯动作:△此动图为二倍速一套动作下来如行云流水,只有把视频用0.5倍速反复观看,才终于发现了其中的端倪:如果手速再快一些,大概真的就可以瞒天过海了。有网友感叹,机器人变魔术的水平比自己还要高:为我们表演这段魔术的,是Mag

塑造未来的十款类人机器人 塑造未来的十款类人机器人 Mar 22, 2024 pm 08:51 PM

以下10款类人机器人正在塑造我们的未来:1、ASIMO:ASIMO由Honda开发,是最知名的人形机器人之一。ASIMO高4英尺,重119磅,配备先进的传感器和人工智能功能,使其能够在复杂的环境中导航并与人类互动。ASIMO的多功能性使其适用于各种任务,从帮助残疾人到在活动中进行演示。2、Pepper:由SoftbankRobotics创建,Pepper旨在成为人类的社交伴侣。凭借其富有表现力的面孔和识别情绪的能力,Pepper可以参与对话、在零售环境中提供帮助,甚至提供教育支持。Pepper的

云鲸逍遥001扫拖机器人,长「脑子」了!| 体验 云鲸逍遥001扫拖机器人,长「脑子」了!| 体验 Apr 26, 2024 pm 04:22 PM

近几年最受消费者欢迎的智能家电,扫拖机器人可谓是其中之一。它所带来的操作便利性,甚至是无需操作,让懒人们释放了双手,让消费者能够从日常的家务中「解放」出来,也能拿更多的时间花在自己喜欢的事情上,变相提高了生活品质。借着这股热潮,市面上几乎所有的家电产品品牌都在做自己的扫拖机器人,一时间使得整个扫拖机器人市场热闹非凡。但市场的快速拓张必然会带来一个隐患:很多厂商会采用机海战术的方式快速占领更多的市场份额,从而导致很多新品并没有什么升级点,说它是“套娃”机型也不为过。不过,并不是所有的扫拖机器人都是

See all articles