当前位置:

首页 > 业界资讯 > 基于状态机的聊天机器人设计经验总结

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

为了更好地了解智能机器人项目的需求和改进方向,我们常常需要研发一些工具。在我参与的多个机器人项目中,大多数都能够成功地满足产品需求。通过这些实践,我们深刻认识到,如果要不断进步和提高,就必须对现有的机器人定义语言进行重大的改进。简化需要复杂对话流程的机器人的创建过程。最大限度地提高可重用性,通过重用过去已经定义过的模块和对话路径来创建机器人在传统的做法中,完成这些并不容易,因为意图定义与部分排序约束混合在一起,限制了对话路径的自由度。这对于处理“开放式”机器人(常见于FAQ样式的机器人),其中大多数问题是

本文目录

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

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

    在传统的做法中,完成这些并不容易,因为意图定义与部分排序约束混合在一起,限制了对话路径的自由度。这对于处理“开放式”机器人(常见于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


    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    业界资讯 机器人
    相关文章 更多
    AI Agent、Genie 4与机器人有什么区别?从任务输入到场景演示
    AI Agent、Genie 4与机器人有什么区别?从任务输入到场景演示

    认识AI Agent、Genie 4与机器人的区别:任务输入不等于完成结果,世界模拟不等于现实执行,装载机动作展示也不能替代完整工程验收。

    langgraph python guide中文入门教程详解
    langgraph python guide中文入门教程详解

    本篇LangGraph Python中文入门教程详解,系统梳理StateGraph状态机定义、节点编写、边与条件路由、检查点持久化(MemorySaver)等核心机制,提供从环境安装到完整循环智能体构建的代码示例与实操指导。

    贾跃亭的FF机器人亮相CBS、引爆街头:借势世界杯“轻巧破圈”
    贾跃亭的FF机器人亮相CBS、引爆街头:借势世界杯“轻巧破圈”

    法拉第未来EAI机器人亮相洛杉矶世界杯庆典,被CBS报道,实现零广告费破圈。目前推出三大系列机器人,截至5月累计交付137台,年度目标上调至1500台。近期获7000万美元融资,将发布机器人教育生态战略,加速物理AI领域布局。

    启元机器人加速线下布局:亚洲首店落子深圳,上海全球首店同步筹备
    启元机器人加速线下布局:亚洲首店落子深圳,上海全球首店同步筹备

    启元机器人加速线下布局,亚洲首店已在深圳卓悦中心设围挡,上海全球首店同步筹备,西安等地也在推进中。作为上纬新材在消费级具身智能领域的核心载体,其聚焦个人机器人赛道,研发投入同比增长超500%。

    【城事】001,世界会客厅首位机器人员工上岗
    【城事】001,世界会客厅首位机器人员工上岗

    6月16日,世界会客厅迎来首位智能导览员——编号001的人形机器人正式上岗。它身高约1.7米,通体银白,可提供多语种讲解、智能引导与互动问答,致力于提升智慧化参观体验。同日,世界会客厅举办了年度品牌日暨首秀5周年纪念活动。

    300名截肢患者,正在变成机器人的触觉训练师
    300名截肢患者,正在变成机器人的触觉训练师

    约300名截肢患者日常使用仿生手产生的触觉与运动数据,被PSYONIC用于机器人灵巧手训练,通过“真实到真实”迁移绕过仿真环节,将人类操控经验直接迁移至机器人。已与ABB、NVIDIA合作探索汽车制造等工业场景,但数据规模与可靠性仍需验证。

    香港中文大学、上交大联合研究团队让机器人
    香港中文大学、上交大联合研究团队让机器人"看"懂人类双手动作

    ACE-Ego-0框架将人类双手视频与机器人数据统一到头部摄像头坐标系,通过形态条件化和可靠性加权损失处理结构差异与噪声。在超6000小时数据上预训练,于仿真和真实双臂机器人测试中刷新多项基准,平均成功率72.8%,真实任务达78.3%。

    暑期回国研学新选择:北上深杭科技之旅,让孩子边玩边学收获满满
    暑期回国研学新选择:北上深杭科技之旅,让孩子边玩边学收获满满

    暑期科技研学聚焦北京、上海、深圳、杭州,项目涵盖京东智能物流、小米汽车工厂、火箭制造、3D打印、机器人、无人机、航天及大飞机总装等,让孩子深入体验智能制造,实现沉浸式职业启蒙。

    顺丰同城机器人末端运力上线 助力肯德基“车速取”体验升级
    顺丰同城机器人末端运力上线 助力肯德基“车速取”体验升级

    顺丰同城上线机器人末端运力,与肯德基“车速取”合作,实现即停即取。机器人独立承担门店与路边取餐点间短途接驳,替代店员跑腿,推动无人物流从室内走向室外场景,拓宽服务半径。

    活力中国调研行|在智造一线,看机器人“结”新硕果
    活力中国调研行|在智造一线,看机器人“结”新硕果

    天津机器人产业加速爆发,水下助推器、高速分拣并联机器人及人形取货机器人等应用场景涌现。智能机器人已列重点产业链,前4个月规上企业产值同比增长12.8%,产业生态逐步构建。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。