Solon v3.3.2

aiflow - 组件 - 输入组件介绍

</> markdown

输入组件

产生数据,并转到 FlowContext:

组件描述备注
VarInput变量输入组件由 meta 配置输入
VarCopy变量复制组件根据 meta 配置,复制流上下文里的变量
ConsoleInput控制台输入组件通过控制台的输入一行产生
WebInputWeb 输入组件由网络请求输入(可以有附件)

1、VarInput 组件属性

VarInput 组件,会把节点里的所有 meta 配置,转为流上下文变量。

比如配置 message,下个节点,可通过此变量名获取输入值。

示例:

- task: @VarInput
  meta:
    message: hello
    var2: test

效果相当于:

- task: |
    context.put("messsage", "hello");
    context.put("var2", "test");

2、VarCopy 组件属性(v3.3.3 后支持)

VarCopy 组件,会根据节点里的 meta 配置,从流上下文复制变量。

比如把 message 变量,复制为 var2

示例:

- task: @VarCopy
  meta:
    var2: message #支持 SnEL 求值表达式
    user_name: user.name

效果相当于:

- task: |
    context.put("var2", SnEL.eval("message", context.model()));
    context.put("user_name", SnEL.eval("user.name", context.model()));

3、ConsoleInput 组件属性

ConsoleInput 组件,会从控制台里读取一行数据,做为输出

属性默认值描述
outputmessage输出变量名(下个节点,可通过此变量名获取输入值)

示例:

- task: @ConsoleInput

效果相当于:

- task: |
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    context.put("messsage", reader.readLine());

4、WebInput 组件属性

WebInput 组件,会从 web 请求里获取参数,然后转为流上下文变量。

属性默认值描述
inputmessage输入变量名(通过变量名,从 web 请求里获取参数)
attachmentattachment附件变量名(通过变量名,从 web 获取文件,并转到流上下文)
outputmessage输出变量名(下个节点,可通过此变量名获取输入值)

示例:

- task: @WebInput

效果相当于:

- task: |
    import org.noear.solon.core.handle.Context;
    
    context.put("messsage", Context.current().param("message"));
    context.put("attachment", Context.current().file("attachment"));