当前位置:首页 > 文章中心 > 正文内容

zPaaS低代码平台使用介绍:实现AI多轮对话功能

接上一篇《zPaaS低代码平台使用介绍:实现流程审批功能》,本篇主要介绍一下如何使用zPaaS低代码开发平台进行AI多轮对话功能的快速开发。

  1. 开发的功能说明

本示例将基于ollama以及redis,通过后端业务逻辑编排实现AI多轮对话功能,并通过自定义功能模板实现简单的前端页面。

后端的大模型使用ollama运行qwen2.5:7b。


  1. 前提条件

(1)已经部署redis服务:

10.0.0.6:7001;10.0.0.6:7002;10.0.0.6:7003;10.0.0.6:7004;10.0.0.6:7005;10.0.0.6:7006

(2)已经部署ollama服务且已经运行qwen2.5:7b模型:

http://10.0.0.6:11434


  1. 准备工作

同《zPaaS低代码平台使用介绍:第一个功能开发》的准备工作,其中AI相关的功能及服务放到公共域Public。

(1)在低代码平台中配置技术服务redis,如下图:

(2)在低代码平台中配置技术服务ollama,如下图:

(3)在低代码平台中配置值传递对象AigcChatVo用于前后端传递数据

其中message属性为前端往后端传递的聊天消息;historyMessages属性为历史聊天消息。


  1. 后端AI服务编排

(1)使用工作台左上角的“+”按钮,创建服务对象AigcService

(2)在该服务对象中创建多轮对话方法,如下所示:

该方法只有一个message参数,没有返回值;返回信息通过流式的方式推送到前端。

(3)编排该方法的业务逻辑,如下图所示:

(4)第一步:构建保存历史对话的redis缓存key,使用SpringEL表达式节点。redis缓存key的组成格式为“test_history_msgs_”+“登录sessionId”;key生成后,使用“redisKey”作为关键字保存到过程数据中。

固定值

test_history_msgs_


原值

过程数据

loginInfo

_sessionId

原值

(5)第二步:从redis中获取历史对话,使用redis存取节点。获取到的历史消息使用historyMsgs作为关键字存到过程数据中。

(6)第三步:将历史对话转换为Json类型,使用类型转换节点。获取到的原始历史消息是字符串类型,需要转换为Json数组类型。转换好后的历史消息,覆盖过程数据中的historyMsgs。

(7)第四步:调用aigc能力,使用AIGC能力调用节点。

消息来源+消息Key+消息属性三元组确定最新的聊天消息

历史消息来源+历史消息Key+历史消息属性三元组确定历史聊天消息

用户名来源+用户名Key+用户名属性三元组确定发起聊天的用户名

助手名来源+助手名Key+助手名属性三元组确定显示的AIGC助手的名称

构成的聊天记录格式为:

${用户名}:${message}

${助手名}:AIGC服务返回的信息

最新的历史消息覆盖过程数据中的historyMsgs。

(8)第五步:将新的历史消息转换为String类型,使用类型转换节点。转换好后的历史消息,覆盖过程数据中的historyMsgs。

(9)第六步:将新的历史消息保存到redis缓存中,并设置有效期为120s,使用redis存取节点。


(10)发布该方法。目前流式返回的方法只支持“GET”的方式。


  1. 开发前端功能

(1)开发《AI聊天》功能,同《zPaaS低代码平台使用介绍:第一个功能开发》。

(2)编排该功能的页面,该功能包含一个聊天消息输入框、一个发送按钮和一个历史消息展示框(文本域),如下所示:

聊天消息输入框绑定AigcChatVo的message属性。历史消息展示框绑定AigcChatVo的historyMessages属性。

(3)上半部先拖一个垂直布局组件,用于上半部页面的布局;设置三个分区,每个分布如下:

(4)在第一个分区插入一个表单容器,并在表单容器中拖入一个输入框组件。

设置表彰容器的标签宽度为0;

绑定输入框到AigcChatVo的message属性,并清空名称属性。


(5)在第二个分区拖入一个按钮容器,并在按钮容器中拖入一个按钮。

设置按钮的名称为“发送”,类型为“AI流式调用”,绑定后端服务“/aigc/chat”。

配置事前和事后交互:

其中回填映射中的“streamResponse”为约定的流式响应关键字。

(6)在页面的下半部分拖入一个表单容器,并在表单容器中拖入一个文本域组件。

将该文本域组件绑定AigcChatVo的historyMessages属性。


(7)刷新缓存后,可以预览该功能。最张效果如示例功能:

  1. 其他

低代码平台的源码已经提交到GitHub:
https://github.com/zjyzju/zPaaS-lowcode,后续将通过更多的文章,逐步对低代码平台的设计理念/思想、具体的设计、部署以及操作说明进行细化,敬请关注。

另外在一台云服务器上部署了一个演示环境,有兴趣的小伙伴可以通过演示环境进行试用:

访问地址:
https://129.153.118.144:11443

试用账户: demo/adl28m2@ma(a!*D2

demo1/adl28m2@ma(a!*D2

注:(1)该演示环境部署在一台免费的云服务器上,且位于国外,在国内访问响应会比较慢

(2)系统管理子系统的菜单框架引用的@micro-zoe/micro-app@1.0.0-rc.24组件,该组件在不同浏览器中存在兼容性问题,苹果的safari浏览器访问一切正常,但是windows的Edge和谷可的Chrome会存在页面刷不出来的情况,需要多等一会儿(有解决方案的可以邮件发给我,多谢!
https://github.com/jd-opensource/micro-app/issues/1559#issuecomment-2784997902)。

如果有低代码平台以及AI相关的讨论,可以发送邮件到我的邮箱:zjyzju@163.com 。

扫描二维码推送至手机访问。

版权声明:本文由第六芝士网发布,如需转载请注明出处。

本文链接:http://www.dgx666.com/post/3683.html

分享给朋友:

“zPaaS低代码平台使用介绍:实现AI多轮对话功能” 的相关文章

CAD2014安装图文教程

由于平时经常使用的cad版本是cad2014,个人觉得cad2014的功能完整性、流畅度、电脑适配度都相当的不错,所以基本上很少使用其它高版本的cad。下面就如何安装cad2014详述一下,希望能够对大家有所用处。1、下载CAD2014安装包,并解压,打开安装程序2、双击应用程序,点击安装3、选择我...

CAD如何设置打印样式?简单3步!初学者必看

很多初学CAD的小伙伴对CAD的打印设置都不熟悉,其实CAD打印也有一定的技巧,掌握一些CAD的打印技巧,可以帮助我们省下不少时间呢!那么今天小编就来跟大家分享一期关于CAD的打印技巧,小伙伴们拿好小本本记下来哦!一、打印样式设置1、打印界面首先,我们打开CAD,在CAD界面中点击打印按钮,或这按快...

魔兽争霸官方对战平台版本更新 加入RPG大厅

魔兽争霸官方对战平台(dz.163.com)今日推出了全新的RPG大厅功能,这是继1V1赛季模式、2V2赛季模式、DOTA模式、自定义RPG房间后,又一项功能更新。借助该功能,玩家可以轻松地找到自己感兴趣的RPG地图,享受到在各种富含创意的地图上作战的乐趣。目前,RPG大厅里面已有海量极具创意且风格...

如何在CAD中绘制常用的标高符号?

CAD建筑标高符号在建筑制图中是一个十分重要的符号,能够增加图纸准确性。那么我们该怎么使用CAD画图软件来绘制一个简单的标高符号呢?那么接下来我们用CAD梦想画图来演示一下吧!操作步骤1. 打开CAD软件,并打开下方“极轴”,然后单击鼠标右键,选择设置,启用极轴追踪,并将增量角数值设置为45,再点击...

《丧尸围城》DirectX Error错误解决方法 DX错误进不去游戏怎么办

不少玩家打开《丧尸围城》的时候都弹出DirectX Error错误框、进不去游戏,下面为大家带来《丧尸围城》DirectX Error错误解决方法,告诉大家《丧尸围城》DX错误进不去游戏怎么办,一起来看看吧。问:WIN7点了报错DirectX Error,一个大红叉我系统是WIN7的,乱七八糟的插件...

COD20使命召唤20Directx错误、DX报错的解决方法

《使命召唤20(COD 20)》是一款第 一人称射击游戏。该游戏将于11月10日上线,并且从昨天(10月15日)开始就在进行公测了,玩家小伙伴应该已经迫不及待进入体验了,今天豆沙就带大家解决一下游玩过程中遇到的Directx错误、DX报错问题吧。解决方法一:升级电脑配置电脑配置是进行游戏游玩的一个重...