AI火爆,传统的规则引擎是否无用武之地?

随着ChatGPT的问世,AI的火爆程度再一次被点燃,但看目前市场上对于GPT的应用依旧处于探索阶段,除了基座大模型之外,并没有真正意义上的AI原生成功产品。也就是说,目前大多数产品都还处于探索阶段。

ChatGPT如此火爆,那么,我们现有的产品,特别是充斥着大量规则的逻辑与变数的产品,是否适合通过大模型来进行改造和演进呢?基于这个话题,这篇文章我们就来聊聊“基于传统规则引擎”和“基于AI”实现规则化产品的不同视角与实现。

基于规则引擎与基于AI的产品特质

在传统的软件开发中,特别是基于大量规则的产品逻辑开发中,底层的本质是:现实世界的业务需求,通过程序员将业务逻辑通过编码实现。这些编码实现基本上都是确定的,预置的,比如,如果满足A1条件则执行B1,如果满足A2条件则执行B2等。

当这类判断条件较多时,我们会采用规则引擎(比如Drools规则引擎,这里推荐《Drools8规则引擎:核心技术与实践》一书)来实现规则的灵活判断,使得程序显得更灵活,更智能。然而,本质上,它们依旧是预置好的规则。

目前基于AI的产品,特别是规则判断的功能,有了一个新的视角:它能够概念识别和自行逻辑判断能力。这也隐隐地意味着计算范式的变化。

在基于AI的产品模式下,人可以通过自然语言直接和模型进行交互,产品提供的具体功能范围是不定的。模型、策略和价值观设定这个范围,程序员的逻辑编程影响力变小了。

基于规则和基于模型

基于规则引擎的产品,无论是产品的UI层面(UI层的功能本质上是一种功能的归类),还是基于底层预置的规则层面,它们都是有边界的,有固定分类的。

而基于AI模型的产品,它基于用户的自然语言或行为,根据模型特有的意图识别与自行判断,提供更适配,更灵活,边界不明显的产品能力。我们知道,模型的判断本质上是基于概率和近似度的。

由此,我们可以看到基于规则和基于模型的智能程度在不同应用场景下拉开了巨大差异。

使用场景的选择

通过上面的了解,看起来基于AI的智能型产品更加有优势,然而事实并非如此,不然目前市面上也不会那么缺少基于AI的智能型产品了。

我们在选择使用规则匹配还是AI智能时有一个明显的选择准则:确定性匹配时使用规则,灵活性匹配时使用AI智能。

AI智能的灵活性,最终会带来更宽的业务适配,也就不需要基于产品UI或规则的归类,而且判断分支情况太多,也没办法进行逐一归类。也就是说,AI智能应用必然要解决复杂场景,解决规则所不能到达地方的问题。

AI智能应用的这种适配(通过自然语言宽泛的适配)的特征也决定了这种应用类型所匹配的领域。如果是只是简单的规则就能搞定,并且产生利润,其实并不是智能原生应用的最佳落点。

在规则确定、功能确定的场景下(也是目前大多数业务的场景),基于AI的智能型产品反而带来更多的不确定性和不可控性。此时,还是需要传统的规则逻辑和规则引擎等方式进行实现。

所以,AI虽然火爆,但未必所有的产品都能够或适合使用AI,针对那些确定性规则,也就是目前99%以上的业务场景来说,使用传统的规则判断依旧是最佳实践方案。而对于那些基于概念理解和自行判断的能力场景下,才可考虑使用AI。

相关技术的推荐

“基于传统规则引擎”和“基于AI”实现规则化产品的不同视角与实现,就讨论这么多。最后简单推荐一下这两种形式目前主流的解决方案。

基于AI的实现,不同场景下可选择不同的AI模型,特别是类似ChatGPT这样的国内外LLM(大语言模型)。根据业务场景的不同,可选择不同参数(体量)的模型,再基于目前常见的RAG和Agent的解决方案来实现对应的业务功能。由于基于AI,特别是GPT的智能原生产品大家都处于探索阶段,目前并没有呈现出很好的解决方案。

对于传统的基于规则引擎的解决方案,也是适配目前大多数业务场景,比较主流的且成熟的解决方案已经存在。比如,主流的开源规则引擎框架Drools规则引擎。

规则引擎本质上就是将业务逻辑中变化的部分抽离成一系列的规则,使得原本通过硬编码实现的业务逻辑分离为规则和数据,然后围绕着数据和规则提供一些管理和处理功能。像电商平台、风控系统、IoT(物联网)、财务计算、日志分析处理等有大量规则的场景下,都是规则引擎的运用场景。

Drools是最早由JBoss开发,目前由Red Hat开源的规则引擎,属于Red Hat的KIE Group组件之一,可以比较方便地与Red Hat的其他产品进行集成。比如,可以与jBPM工作流相结合实现对复杂规则流的管理。另外也可以与机器学习(Machine Leaning,ML)、深入学习(Deep Leaning,DL)等外部类库进行整合实现Pragmatic AI相关功能。

Drools官方除提供了规则引擎的核心功能,还提供了一系列基于该开源框架的组件(KIE Server、Business Central Workbench、Kogito等),方便使用者直接集成使用。同时还支持多种形式的规则构建形式,可根据客户的具体需要进行灵活生成、管理规则。

关于Drools规则引擎也为大家推荐一本刚刚出版的新书籍——《Drools8规则引擎:核心技术与实践》。该书由《Spring Boot技术内幕:架构设计与实现原理》畅销书作者倾心打造,基于最新的Drools 8版本及语法实现来进行讲解。这本书是规则引擎领域,以实战经验为基础,全面涵盖Drools从入门、原理、实战项目、架构实践等相关的指导书籍!

小结

通过上面的分析和总结,大家可能已经基本了解基于AI实现产品与基于传统规则实现产品的区别。根据这些区别以及它们适用的不同场景,可选择是否紧跟这波AI热。当然,如果产品本身并不具备AI原生产品的特性,那么很可能也只是蹭一波热度,无法在后续的过程中持续发力(已经有很多类似的AI产品了)。至于是选择蹭一波热度,还是稳妥的采用传统的规则引擎解决方案,这也需要产品的操刀者进行综合的评估和判断了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/54363.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何利用Samba跨平台分享Ubuntu文件夹

1.安装Samba 终端输入sudo apt install samba 2.配置Samba 终端输入sudo vim /etc/samba/smb.conf 打开配置文件 滑动文件到最底下 输入以下内容 [Share] # 要共享的文件夹路径 path /home/xxx/sambashare read only no browsable yes编辑完成后按一下Esc按键后输入:wq回…

ABAP-Swagger 一种公开 ABAP REST 服务的方法

ABAP-Swagger An approach to expose ABAP REST services 一种公开 ABAP REST 服务的方法 Usage 1: develop a class in ABAP with public methods 2: implement interface ZIF_SWAG_HANDLER, and register the public methods(example method zif_swag_handler~meta) 3: …

Docker 以外置数据库方式部署禅道

2.安装步骤 2.1.参考资料 禅道官网文档: https://www.zentao.net/book/zentaopms/docker-1111.html https://www.zentao.net/book/zentaopms/405.html 2.2.详细步骤 ssh 登录服务器创建目录 /opt/zentao /opt/zentao/data /opt/zentao/db cd /opt mkdir zentao mkdir zentao…

开源免费的NAS系统-TrueNAS CORE上创建CentOS7虚拟机

目录 文章目录 目录1、说明2、准备工作2.1、准备安装镜像2.1、创建用户2.2、开启 ssh 服务2.3、设置用户权限2.4、上传系统镜像2.5、 添加虚拟机 3、开始安装系统3.1、启动虚拟机3.2、选择语言3.3、配置网络3.4、设置 root 密码3.5、删除光驱3.6、重启虚拟机3.7、使用 ssh 连接…

C++ | Leetcode C++题解之第414题第三大的数

题目&#xff1a; 题解&#xff1a; class Solution { public:int thirdMax(vector<int> &nums) {int *a nullptr, *b nullptr, *c nullptr;for (int &num : nums) {if (a nullptr || num > *a) {c b;b a;a &num;} else if (*a > num &&am…

【Python】练习:控制语句(二)第4关

第4关&#xff1a;控制结构综合实训 第一题第二题&#xff08;※&#xff09;第三题&#xff08;※&#xff09;第四题&#xff08;※&#xff09;第五题&#xff08;※&#xff09;第六题&#xff08;※&#xff09; 第一题 #第一题def rankHurricane(velocity):#请在下面编写…

记录|C#的资源路径设置的资料整理

目录 前言一、在这里插入图片描述 https://bbs.csdn.net/topics/360001606 二、三、添加到资源文件中四、获得图片的三种路径方法五、给资源文件添加文件夹更新时间 前言 参考文章&#xff1a; 原本以为C# winform中进行图片等文件的路径的读取是直接可以按照资源文件中显示的来…

【ArcGIS微课1000例】0121:面状数据共享边的修改方法

文章目录 一、共享边概述二、快速的修改办法1. 整形共享边2. 修改边3. 概化边缘一、共享边概述 面状数据共享边指的是两个或多个面状数据(如多边形)共同拥有的边界。在地理信息系统(GIS)、三维建模、大数据分析等领域,面状数据共享边是描述面状空间数据拓扑关系的重要组成…

CORS漏洞及其防御措施:保护Web应用免受攻击

1. 背景- 什么是CORS&#xff1f; 在当今互联网时代&#xff0c;Web 应用程序的架构日益复杂。一个后端服务可能对应一个前端&#xff0c;也可能与多个前端进行交互。跨站资源共享&#xff08;CORS&#xff09;机制在这种复杂的架构中起着关键作用&#xff0c;但如果配置不当&…

Django学习实战篇五(适合略有基础的新手小白学习)(从0开发项目)

前言&#xff1a; 本章中&#xff0c;我们开始引入前端框架Bootstrap 来美化界面。在前面的章节中&#xff0c;我们通过编写后端代码来处理数据。数据之于网站&#xff0c;就相当于灵魂之于人类。而网站的前端就相当于人的形体外貌。其中HTML是骨架&#xff0c;而CSS是皮肤&…

Thymeleaf模版引擎

Thymeleaf是面向Web和独立环境的现代服务器端Java模版引擎&#xff0c;能够处理HTML、XML、JavaScript、CSS甚至纯文本。Thymeleaf旨在提供一个优雅的、高度可维护的创建模版的方式。为了实现这一目标&#xff0c;Thymeleaf建立在自然模版的概念上&#xff0c;将其逻辑注入到模…

2024/9/20 使用QT实现扫雷游戏

有三种难度初级6x6 中级10x10 高级16x16 完成游戏 游戏失败后&#xff0c;无法再次完成游戏&#xff0c;只能重新开始一局 对Qpushbutton进行重写 mybutton.h #ifndef MYBUTTON_H #define MYBUTTON_H #include <QObject> #include <QWidget> #include <QPus…

Kafka 3.0.0集群部署教程

1、集群规划 主机名 ip地址 node.id process.roles kafka1 192.168.0.29 1 broker,controller Kafka2 192.168.0.30 2 broker,controller Kafka3 192.168.0.31 3 broker,controller 将kafka包上传以上节点/app目录下 mkdir /app 解压kafka包 tar -zxvf kafka_…

Spring Boot框架在心理教育辅导系统中的应用案例

目 录 摘 要 I ABSTRACT II 1绪 论 1 1.1研究背景 1 1.2设计原则 1 1.3论文的组织结构 2 2 相关技术简介 3 2.1Java技术 3 2.2B/S结构 3 2.3MYSQL数据库 4 2.4Springboot框架 4 3 系统分析 6 3.1可行性分析 6 3.1.1技术可行性 6 3.1.2操作可行性 6 3.1.3经济可行性 6 3.1.4法律…

Css_动态渐变圆圈旋转效果

1、效果图 2、实现代码 <template><div class"box"><div class"line"></div><div class"lineNew"></div></div> </template><script lang"ts" setup></script><styl…

【图像匹配】基于Harris算法的图像匹配,matlab实现

博主简介&#xff1a;matlab图像代码项目合作&#xff08;扣扣&#xff1a;3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于基于Harris算法的图像匹配&#xff0c;用matlab实现。 一、案例背景和算法介绍 …

el-table表格的展开行,初始化的时候展开哪一行+设置点击行可展开功能

效果&#xff1a; 表格展开行官网使用&#xff1a; 通过设置 type"expand" 和 Scoped slot 可以开启展开行功能&#xff0c;el-table-column 的模板会被渲染成为展开行的内容&#xff0c;展开行可访问的属性与使用自定义列模板时的 Scoped slot 相同。 但是这种方法…

MySQL篇(存储引擎 - InnoDB存储引擎架构)(持续更新迭代)

目录 一、逻辑存储结构 1. 表空间 2. 段 3. 区 4. 页 5. 行 二、架构 1. 简介 2. 内存结构&#xff08;四部分&#xff09; Buffer Pool Change Buffer Adaptive Hash Index Log Buffer 3. 磁盘结构&#xff08;七部分&#xff09; System Tablespace File-Per-…

Unity 设计模式 之 结构型模式 -【装饰者模式】【外观模式】【享元模式】【代理模式】

Unity 设计模式 之 结构型模式 -【装饰者模式】【外观模式】【享元模式】【代理模式】 目录 Unity 设计模式 之 结构型模式 -【装饰者模式】【外观模式】【享元模式】【代理模式】 一、简单介绍 二、装饰者模式&#xff08;Decorator Pattern&#xff09; 1、什么时候使用装…

vagrant+virtualbox+ubuntu22.04无法上网问题

一、过程 vagrantfile配置私有网络 config.vm.network "private_network", ip: "192.168.56.10"启动虚拟机&#xff0c;可以ping通百度的实际IP&#xff0c;ping不通域名修改/etc/netplan/50-vagrant.yaml&#xff0c;配置DNS network:renderer: Networ…