aiflow - 组件 - 定制
solon ai flow 的组件,即是 solon flow 的任务组件:
public class ComImpl implements TaskComponent {
@Override
public void run(FlowContext context, Node node) throws Throwable {
}
}
为了使用更方便些,框架提供了几个基类:
接口 | 描述 |
---|---|
AiComponent | Ai 组件接口 |
AbsAiComponent | Ai 虚拟组件(基类) |
AiIoComponent | Ai 输入输出组件接口(提供了一组快捷方法) |
AiPropertyComponent | Ai 属性组件接口(提供了一组快捷方法) |
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);