Solon v3.3.2

aiflow - 组件 - 定制

</> markdown

solon ai flow 的组件,即是 solon flow 的任务组件:

public class ComImpl implements TaskComponent {
    @Override
    public void run(FlowContext context, Node node) throws Throwable {
        
    }
}

为了使用更方便些,框架提供了几个基类:

接口描述
AiComponentAi 组件接口
AbsAiComponentAi 虚拟组件(基类)
AiIoComponentAi 输入输出组件接口(提供了一组快捷方法)
AiPropertyComponentAi 属性组件接口(提供了一组快捷方法)

1、Solon 环境定制示例

或者其它容器型框架环境

@Component("ConsoleInput")
public class ConsoleInputCom extends AbsAiComponent implements AiIoComponent {
    @Override
    public Object getInput(FlowContext context, Node node) throws Throwable {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        return reader.readLine();
    }

    @Override
    protected void doRun(FlowContext context, Node node) throws Throwable {
        Object data = getInput(context, node);

        setOutput(context, node, data);
    }
}

2、Java 原生环境定制示例

更多内容参考:《flow - 流引擎构建与定制》

public class ConsoleInputCom extends AbsAiComponent implements AiIoComponent {
    @Override
    public Object getInput(FlowContext context, Node node) throws Throwable {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        return reader.readLine();
    }

    @Override
    protected void doRun(FlowContext context, Node node) throws Throwable {
        Object data = getInput(context, node);

        setOutput(context, node, data);
    }
}

//构建组件容器
MapContainer container = new MapContainer();
container.putComponent("ConsoleInput", new ConsoleInputCom());

//构建驱动
SimpleFlowDriver flowDriver = new SimpleFlowDriver(container);

//构建引擎
FlowEngine engine = FlowEngine.newInstance();
engine.register(flowDriver);