新闻  |   论坛  |   博客  |   在线研讨会
智能硬件大模型语音交互流程自定义编排(进阶篇)
ListenAI | 2024-08-16 14:58:55    阅读:28   发布文章

前言

上一篇讲了基础节点和常规调试方法,在实际应用开发的过程中,除了大模型相关的基础节点外,链路编排实际上还需要包含了更多的通用节点。本篇将介绍几个在实际应用开发中常用的节点及其功能。



网络类节点

网络节点是链路编排中的一个重要组成部分,在智能硬件上的交互基本上都是以语音对话作为入口,网络节点尽管在实际使用中的频率相对较低,但其功能不可忽视




网络节点是http的输入节点,它可以根据应用的需求构造各种路由,包括请求方法和路由地址。其输出则包含了请求头(headers)、请求体(body)、query、params及cookies等信息,详细信息可以从帮助文档中获得。通过一些function节点和模型节点的调用,可以利用网络节点去实现更复杂的链路功能,如通过编排应用去实现特定的接口能力。



通用类节点时间戳(inject)

在调试阶段的应用颇为广泛触发器能够进行数据的mock,从而支持在实际应用开发中对功能进行调试。可以直接在一个function节点进行输入数据的mock,也可以通过触发器节点直接进行数据mock。


例如上图中的payload直接作为时间戳输入的数据形式,但也可以将其为一个json,用以编写特定的数据,从而实现针对不同调试功能的需求


触发器的这种调试方式,可以在流程发布后通过触发按钮来按照特定的输入进行后续链路的走向。


complete节点

当某个节点完成之后,complete节点会被激活并形成一个钩子触发以下图为例,inject节点触发后,数据除了会走到提示词节点,还会同步到complete节点,这时可以通过debug节点捕获到输入节点完成后的钩子回调,去做一些更复杂的应用处理。

catch节点

主要用于捕获并处理异常在实际应用开发中,某些节点可能会因为一些特定原因抛出异常。例如在function节点中抛出异常后,后续的链路是走不下去的此时需要执行另外的链路吗,这时就可以再catch节点后去增加流程节点,从而保证整个应用的稳定性和可靠性。


link in和link out节点

当一个应用的连线非常复杂时,可以通过link in和link out节点来进行优化和简化。这两个节点可以帮助虚调连线,隐藏一些不必要的线路连接,使得整个链路编排看起来更为简洁明了。此外,通过debug节点的输出可以观察link in和link out节点的工作状态与效果。


功能类节点function节点

用来在除平台已经封装好的一些基础能力节点外,做一些复杂的代码逻辑。它也是通过message.payload进行输入和输出,最后需要return msg来流到后续的节点。



switch节点

是比较高频使用的一个节点,它主要是通过switch某个属性,然后一个个case来进行判断。跟其他编程语言的switch使用规则差不多,case加了多少个,后面的输出就会有多少个。



其他功能节点在实际应用中的使用场景比较少,通常都可以直接用function节点来进行业务代码的编写。


序列化节点

主要是处理数据结构的一些功能节点,比如split节点,根据某个字段或字符串进行拆分,也可以通过function节点实现。


join、sort、batch等节点的功能用于支持数组合并、排序、后续输出的顺序以及整合后输出到后面的数据类型。



总结

在调试阶段和开发过程中,可以通过输入的触发器,经过一些function的功能节点来编写想要的业务功能,并混合平台封装好的一些常用高频功能节点进行应用编排,再通过debug节点以及其他通用能力节点和异常捕获等来进行复杂应用的开发。



有兴趣上手实践的朋友可以通过这个地址了解和实践:https://docs2.listenai.com/x/WqRCmE3dA

可以在智能硬件来验证编排效果,载体为聆思官方的CSK大模型开发板,详细信息参考:https://docs2.listenai.com/x/nTn9kMMCU


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客