Gavin老师Transformer直播课感悟 - 基于Transformer的Rasa 3.x 内核解密之微服务四大组件全解(三十)

本文深入解析基于Transformer的Rasa 3.x框架,聚焦微服务四大组件——Actions、Tracker、Dispatcher和Events。详细介绍了Action的自定义方法,Tracker的对话状态管理,Dispatcher的响应生成以及各种Event类的用途,揭示了对话机器人的内部运作机制。
摘要由CSDN通过智能技术生成

        本文继续围绕工业级业务对话平台和框架Rasa 的微服务四大组件进行解析。Rasa基于微服务架构的SDK提供了Actions,Tracker,Dispatcher和Events来帮助对话机器人开发人员实现自定义的actions。

一、Rasa微服务四大组件全解

  1. Rasa Actions和Tracker详解

      Action是任何自定义action的父类,为了自定义一个action,需要继承Action并覆写Action中的两个必需的方法:name和run。Rasa action server在接收到执行一个action的request时,会根据name方法返回的值来调用这个action。

自定义action的框架样例如下,name方法返回的值必须是唯一的:

方法name:定义了action的name,它被用于注册微服务。

返回action_name,类型为str

方法run:执行action的业务逻辑。

参数:

-dispatcher:dispatcher用于发送消息给用户,用法为dispatcher.utter_message()或参考CollectingDispatcher相关API说明

-tracker:当前用户的状态跟踪器,你可以使用tracker.get_slot(slot_name)访问slots的值,可以使用tracker.latest_message.text从tracker中获取用户最新消息,以及获取tracker中其它的属性值。

-domain:对话机器人的domain系统配置

返回events列表,类型为List[Dict[str, Any]]

下面是一个具体action实现样例,在run方法里首先从tracker中取得slot “cuisine”的值(在实体提取阶段会从用户输入中提取entity信息并通过全局slot设置机制设置slot “cuisine”的值),然后根据这个条件调用数据库查询所匹配的餐馆列表,并通过SlotSet event把查询结果设为slot “matches”的值:

关于Tracker:

Tracker类用于表示一个Rasa对话状态跟踪器tracker。你可以在自定义action里通过tracker访问对话机器人的对话状态信息,如通过Tracker的属性和方法来获取过去发生的events的信息和当前对话状态的信息。

Attributes

-sender_id - 与对话机器人交互的用户的唯一ID

-slots - 在domain里定义的可以被填充的slots list

-latest_message - 一个 dictionary,包含了最新用户消息的属性:intent, entities 和text

-events - 所有过去发生的events list

-active_loop - 当前执行的active loop的名称

-latest_action_name - 对话机器人执行的上一个action的名称

Methods

-current_state:返回当前tracker的状态信息

返回类型:Dict[str, Any]

-is_paused:表示当前tracker是否暂停,即是否对话机器人停止对用户的响应

返回类型:bool

-get_latest_entity_values:从最新用户消息中根据传入的entity type和可选参数role和group获取找到的entity的值,如果你只对一个给定entity type的第一个entity感兴趣,可以使用:

如果没有entity找到,就会返回None。

参数说明:

entity_type – 感兴趣的entity type

entity_role – (可选)感兴趣的entity role

entity_group – 可选)感兴趣的entity group

返回entity的值的list

返回类型:Iterator[str]

-get_latest_input_channel: 获取最新的UserUttered event的输入channel的名称

返回类型:Optional[str]

-events_after_latest_restart:返回最近一次对话重启后发生的events list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值