Solon v3.3.3

flow - 元数据的扩展性(meta)

</> markdown

元数据的的作用:

  • (1)为 task 提供配置支持。比如,一个大模型把配置放到元数据
  • (2)在(1)的基础上,提供可视化的状态保存

示例1:为 task 代码提供实例配置

有了元数据配置后,@ChatModel 就是可以复用的任务组件。如果模型变化或接口地址变化?修改元数据即可。

id: chat1
layout:
  - type: "start"
  - task: "@WebInput"
  - task: "@ChatModel"
    meta:
      systemPrompt: "你是个聊天助手"
      stream: false
      chatConfig: # "@type": "org.noear.solon.ai.chat.ChatConfig"
        provider: "ollama"
        model: "qwen2.5:1.5b"
        apiUrl: "http://127.0.0.1:11434/api/chat"
  - task: "@WebOutput"
  - type: "end"

示例2:为 task 的输入输出提供名字(用于可视化显示)

设计 input 元数据名,表示输入的变量名(就是按这个变量名取数据)。output 类似。以 @WebInput 为例:

表示以 message 为名,从 web 请求里获取数据,然后以 message 为名输出到 flowContext。到了 @ChatModel 时,则以 message 为名,从 flowContext 获取输入(flowContext 可起到数据流转作用)。

id: chat1
layout:
  - type: "start"
  - task: "@WebInput"
    meta:
      input: message
      output: message
  - task: "@ChatModel"
    meta:
      input: message
      output: message
      systemPrompt: "你是个聊天助手"
      stream: false
      chatConfig: # "@type": "org.noear.solon.ai.chat.ChatConfig"
        provider: "ollama"
        model: "qwen2.5:1.5b"
        apiUrl: "http://127.0.0.1:11434/api/chat"
  - task: "@WebOutput"
    meta:
      input: message
  - type: "end"