背景:基於項目工作的需要,要建立一個規則引擎的應用集中式的管理業務中的規則流程等,所以先探索一個MVP
1.什麼是規則引擎, 同類竟品?
規則引擎的主要思想是將應用程序中的業務決策部分分離出來,並使用預定義的語義模板編寫業務決策(業務規則),由用戶或開發者在需要時進行配置、管理。需要注意的的規則引擎並不是一個具體的技術框架,而是指的一類系統,即業務規則管理系統。規則引擎實現了將業務決策從應用程序代碼中分離出來,接收數據輸入,解釋業務規則,並根據業務規則做出業務決策。規則引擎其實就是一個輸入輸出平臺。
2.Drools規則引擎
2.1 規則引擎構成
Drools規則引擎由以下三部分構成
1.Working Memory(工作內存) 2.Rule Base(規則庫) 3.Inference Engine(推理引擎)
其中Inference Engine(推理引擎)又包括
1.Pattern Matcher(匹配器) 2.Agenda(議程) 3.Execution Engine(執行引擎)
2.2 基於上圖的各組件的說明
1.Working Memory:工作內存,Drools規則引擎會從Working Memory中獲取數據並和規則文件中定義的規則進行模式匹配,
所以我們開發的應用程序只需要將我們的數據插入到Working Memory中即可。 2.Fact:事實,是指在Drools規則應用當中,將一個普通的javaBean插入到Working Memory後的對象就是Fact對象。
Fact對象是我們的應用和規則引擎進行交互的橋樑或通道。 3.Rule Base:規則庫,我們在規則文件中定義的規則都會被加載到規則庫中。 4.Pattern Matcher:匹配器,將Rule Base中的所有規則與Working Memory中的Fact對象進行模式匹配,匹配成功則被激活並放入Agenda中。 5.Agenda:議程,用於存放通過匹配器進行模式匹配後被激活的規則。 6.Execution Engine:執行引擎,執行Agenda中被激活的規則。
2.3 KIE介紹
在操作Drools時經常使用的API以及他們之間的關係如下圖
通過上面的API可以發現,大部分類都是以Kie開頭。Kie全稱爲Knowledge is Everything,即“只是就是一切”的縮寫,是Jboss一系列項目的總稱。如下圖所示,Kie的主要模塊有OptaPlanner、Drools、UberFire、jBPM。可以看到,Drools是整個KIE項目中的一個組件,Drools中還包括一個Drools-WB的模塊,他是一個可視化的規則編輯器。
3.什麼是DMN?
DMN全稱Decision Model and Notation(決策模型和符號、決策模型和表示法),是一種用於表示業務決策和規則的規範,旨在幫助參與決策的人都能簡單快速理解決策過程。DMN是由OMG(Object Management Group,對象管理組織)管理的一種規範,該組織下比較知名的還有UML等。
3.1 DMN的關鍵組件和DMN的規則表達式FEEL
可參紅帽毛官方的指導文檔
DMN編輯插件
4.SpringBoot3集成Drools
項目地址:https://github.com/showkawa/springb/tree/main/src/main/java/com/kawa/springb
5.DMN在AI領域的可發揮的作用?
在AI領域,DMN可以和機器學習、專家系統等技術結合使用。例如,一個複雜的AI系統可能會使用機器學習模型來處理大量的輸入數據,並生成一些初步的結果。然後,
這些結果可以被輸入到一個DMN決策模型中,以便應用更高級別的業務規則和邏輯。此外,DMN也可以用於解釋AI決策。由於DMN模型可以被人類理解,因此它們可以用來解釋
AI系統是如何根據輸入數據做出決策的。這對於提高AI系統的透明度和可信度非常重要。然而,雖然DMN在某些情況下可以和AI技術結合使用,但它並不是AI技術本身。
DMN是一種決策建模工具,而AI是一種用於處理和理解數據的技術。 DMN(Decision Model and Notation)在AI領域的應用還可以包括以下幾個方面: 1. 自動化決策制定:AI系統經常需要做出複雜的決策。通過使用DMN,我們可以創建詳細、精確且可執行的業務規則模型來指導這些決策過程。這種方式不僅提高了效率,
也使得結果更加可預測和一致。3. 解釋性AI (Explainable AI): DMN 可以作爲一個工具幫助人們理解和信任 AI 決策過程。例如,在金融服務中,如果一個貸款申請被拒絕, 使用 DMN
的邏輯模型能夠清晰地展示哪條規則或條件導致了該結果, 這樣就增強了系統對用戶而言的透明度. 2. 集成與協同工作: 在許多情景下, 機器學習算法生成預測值是第一步, 然後再結合業務規則進行最後決定輸出(如風險評估、審批流程等). 這時候就需要把ML和
Rule Engine 結合起來共同工作. 3. 優化決策過程:在某些情況下,AI系統可能需要處理大量的決策變量和約束條件。DMN可以幫助建立一個清晰的決策模型,使得優化算法能夠更有效地找到最優解。 4. 模擬和預測:DMN模型可以用於模擬不同的決策路徑和結果,從而幫助預測未來的業務情況。這對於戰略規劃和風險管理非常有用。
Drools DMN15分鐘簡易教學:https://learn-dmn-in-15-minutes.com
Drools DMN教學:https://www.drools.org/learn/dmn.html