flow - 元数据的扩展性(meta)
元数据的的作用:
- (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"