LiteFlow 规则引擎集成

背景

如上图所示为用户调用大模型进行处理的基本流程。为了规范大模型的调用,避免各种风险,经过大量的判断(包括敏感词和风控等),传统的 if else 判断已经不适合这种复杂的过程。因此引入 LiteFlow 规则引擎 - LiteFlow 官网

规则定义

规则流转定义 XML

创建规则实现

示例:新增新的风控规则

添加并行规则

定义规则业务逻辑

@Component("test")
public class TestRiskControlRule extends NodeComponent {

	@Override
	public void process() {
		ChatMessageContext messageContext = this.getContextBean(ChatMessageContext.class);
		// TODO 业务逻辑

		// 如果触发此规则,则暂停流转
		setIsEnd(true);
		messageContext.setErrorMessage("错误原因");
	}
}

规则配置项

spring:
  ai:
    knowledge:
      sensitive-words: # 敏感词
        enabled: true
      risk-control: # 风控
        enabled: false
        no-limit-usernames: #不风控的账号列表
          - admin