654 lines
18 KiB
Markdown
654 lines
18 KiB
Markdown
# 系统变量:需和开始节点拆分
|
||
|
||
# end: string/number/boolean/object/array[file]/array[object]/array[number]/array[string]
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: 不需要 -->
|
||
- parameter-extractor: __is_success / __reason
|
||
- memory-read: answer / intermediate_outputs
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name / output
|
||
- iteration: output
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- jinja-render: output
|
||
|
||
# llm: 不能选 boolean 类型
|
||
## 上下文:string/number/array[file]/array[object]/array[string]/array[number]; 不要object
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
- knowledge-retrieval: output
|
||
- parameter-extractor: __is_success / __reason
|
||
- memory-read: answer / intermediate_outputs
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
- iteration: output
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
## 提示词: string/number/array[file]/array[number]/array[string]; 不要object,boolean
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __is_success / __reason
|
||
- memory-read: answer / intermediate_outputs
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
- iteration: output
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# knowledge-retrieval: string
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __reason
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# parameter-extractor:
|
||
## 输入变量: string
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __reason
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
## 指令:string/number
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __is_success / __reason
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# memory-read: string
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __reason
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
|
||
# memory-write: string
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __reason
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# if-else: boolean/string/number/array[file]/array[object]/array[string]/object
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
- knowledge-retrieval: output
|
||
- parameter-extractor: __is_success / __reason
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
- iteration: output
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# question-classifier
|
||
## 输入变量: string
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __reason
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
## 分类: string
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __reason
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# iteration
|
||
## 输入变量: array[file] | array[object] | array[string] | array[number] | array[boolean]
|
||
<!-- - 系统变量 -->
|
||
<!-- - 会话变量 -->
|
||
<!-- - start: variables / sys -->
|
||
<!-- - llm: output -->
|
||
- knowledge-retrieval: output
|
||
- parameter-extractor: array类型的提取参数 params
|
||
<!-- - memory-read: answer -->
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
<!-- - question-classifier: class_name -->
|
||
- iteration: output
|
||
- loop: cycle_vars
|
||
<!-- - var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables -->
|
||
<!-- - assigner: 不需要 -->
|
||
<!-- - http-request: body -->
|
||
<!-- - tool: data -->
|
||
- code: output_variables
|
||
<!-- - jinja-render: output -->
|
||
## 输出变量
|
||
- 系统变量
|
||
<!-- - 会话变量 -->
|
||
<!-- - start: variables / sys -->
|
||
<!-- - llm: output -->
|
||
<!-- - knowledge-retrieval: output -->
|
||
<!-- - parameter-extractor: __reason -->
|
||
<!-- - memory-read: answer -->
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
<!-- - question-classifier: class_name -->
|
||
<!-- - iteration: output -->
|
||
<!-- - loop: cycle_vars -->
|
||
<!-- - var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables -->
|
||
<!-- - assigner: 不需要 -->
|
||
<!-- - http-request: body -->
|
||
<!-- - tool: data -->
|
||
<!-- - code: output_variables -->
|
||
<!-- - jinja-render: output -->
|
||
- 子节点的输出变量
|
||
- llm: output
|
||
- knowledge-retrieval: output
|
||
- parameter-extractor: __reason, params
|
||
- memory-read: answer
|
||
- memory-write
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
<!-- - loop: cycle_vars -->
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# loop
|
||
## 循环变量
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
- knowledge-retrieval: output
|
||
- parameter-extractor: __is_success / __reason / params
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
- iteration: output
|
||
- loop: cycle_vars
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
## 循环终止条件
|
||
### left
|
||
- 系统变量
|
||
- 会话变量
|
||
<!-- - start: variables / sys -->
|
||
<!-- - llm: output -->
|
||
<!-- - knowledge-retrieval: output -->
|
||
<!-- - parameter-extractor: __is_success / __reason -->
|
||
<!-- - memory-read: answer -->
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
<!-- - question-classifier: class_name -->
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars 当前loop节点的
|
||
<!-- - var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables -->
|
||
<!-- - assigner: 不需要 -->
|
||
<!-- - http-request: body / status_code -->
|
||
<!-- - tool: data -->
|
||
- code: output_variables
|
||
<!-- - jinja-render: output -->
|
||
- 子节点的输出变量
|
||
- llm: output
|
||
- knowledge-retrieval: output
|
||
- parameter-extractor: __reason
|
||
- memory-read: answer
|
||
- memory-write
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
<!-- - loop: cycle_vars -->
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body
|
||
- tool: data
|
||
- jinja-render: output
|
||
### right: number
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
<!-- - llm: output -->
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __is_success
|
||
<!-- - memory-read: answer -->
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
<!-- - question-classifier: class_name -->
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars 当前loop节点的
|
||
<!-- - var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables -->
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: status_code
|
||
<!-- - tool: data -->
|
||
- code: output_variables
|
||
<!-- - jinja-render: output -->
|
||
|
||
# var-aggregator: string/number/boolean
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
- knowledge-retrieval: output
|
||
- parameter-extractor: __reason
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
- iteration: output
|
||
- loop: cycle_vars 当前loop节点的
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# assigner
|
||
## variable_selector
|
||
<!-- - 系统变量 -->
|
||
- 会话变量
|
||
<!-- - start: variables / sys -->
|
||
<!-- - llm: output -->
|
||
<!-- - knowledge-retrieval: output -->
|
||
<!-- - parameter-extractor: __reason -->
|
||
<!-- - memory-read: answer -->
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
<!-- - question-classifier: class_name -->
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars 当前loop节点的
|
||
<!-- - var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables -->
|
||
<!-- - assigner: 不需要 -->
|
||
<!-- - http-request: body -->
|
||
<!-- - tool: data -->
|
||
<!-- - code: output_variables -->
|
||
<!-- - jinja-render: output -->
|
||
## value
|
||
<!-- - 系统变量 -->
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
- knowledge-retrieval: output
|
||
- parameter-extractor: __reason / __is_success
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
- iteration: output
|
||
- loop: cycle_vars 当前loop节点的
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# http-request
|
||
## url/headers/params: string/number
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __reason / __is_success
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars 当前loop节点的
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
## ['body', 'data']
|
||
### body?.content_type = form-data/x-www-form-urlencoded/json/raw: string/number
|
||
### body?.content_type = binary: file/array[file]
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
<!-- - knowledge-retrieval: output -->
|
||
- parameter-extractor: __reason / __is_success
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
<!-- - iteration: output -->
|
||
- loop: cycle_vars 当前loop节点的
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# tool: 不需要
|
||
|
||
# jinja-render
|
||
## mappingList 输入变量
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
- knowledge-retrieval: output
|
||
- parameter-extractor: __reason / __is_success
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
- iteration: output
|
||
- loop: cycle_vars 当前loop节点的
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- code: output_variables
|
||
- jinja-render: output
|
||
|
||
# code
|
||
## input_variables
|
||
- 系统变量
|
||
- 会话变量
|
||
- start: variables / sys
|
||
- llm: output
|
||
- knowledge-retrieval: output
|
||
- parameter-extractor: __reason / __is_success
|
||
- memory-read: answer
|
||
<!-- - memory-write -->
|
||
<!-- - if-else: 不需要 -->
|
||
- question-classifier: class_name
|
||
- iteration: output
|
||
- loop: cycle_vars 当前loop节点的
|
||
- var-aggregator
|
||
- group = false 时,output
|
||
- group = true 时,group_variables
|
||
<!-- - assigner: 不需要 -->
|
||
- http-request: body / status_code
|
||
- tool: data
|
||
- jinja-render: output
|
||
- code: output_variables
|
||
- code: output_variables
|
||
|
||
|
||
# 迭代子节点
|
||
- llm
|
||
- if-else
|
||
- parameter-extractor && prompt
|
||
- var-aggregator
|
||
- assigner
|
||
- http-request && body.content_type !== 'binary'
|
||
- tool
|
||
- jinja-render
|
||
- iteration: item / index
|
||
|
||
- knowledge-retrieval
|
||
- parameter-extractor && !prompt
|
||
- memory-read
|
||
- memory-write
|
||
- question-classifier
|
||
- iteration的输入变量是array[string]时,可选item
|
||
|
||
- iteration
|
||
- loop
|
||
- 不可添加此类节点
|
||
|
||
# 循环子节点
|
||
- llm
|
||
- knowledge-retrieval
|
||
- parameter-extractor
|
||
- memory-read
|
||
- memory-write
|
||
- if-else
|
||
- question-classifier
|
||
- var-aggregator
|
||
- assigner
|
||
- http-request
|
||
- tool
|
||
- jinja-render
|
||
- loop: cycle_vars
|
||
|
||
- iteration
|
||
- loop
|
||
- 不可添加此类节点
|
||
|
||
|
||
|
||
# TODO
|
||
|
||
## 需要后端支持的需求
|
||
1. 集群调试:对话过程数据输出【需后端】
|
||
<!-- 2. 中断流式输出【需后端,不做】 -->
|
||
3. 应用调试、分享增加变量配置【需后端】
|
||
4. 应用导入导出,导出已完成,导入【需后端】
|
||
6. 单个节点的运行【需后端】
|
||
7. 列表 节点的配置【需后端】
|
||
9. 对话支持附件(非图片)【需后端】
|
||
|
||
## 前端需求
|
||
1. 工作流整理布局、历史撤销、回退
|
||
2. 问题分类节点,分类中英文
|
||
3. 感知记忆:文本类型增加片段展示
|
||
- variableConfig
|
||
4. 工作流UI
|
||
<!-- - LLM节点 的模型参数,仅在有选模型时显示 -->
|
||
<!-- - 条件分支 -->
|
||
<!-- - 循环节点-循环终止条件 -->
|
||
- 变量聚合器
|
||
7. 记忆萃取
|
||
- 本体场景不可编辑
|
||
- rb:truncate
|
||
- 注释翻译
|
||
- RbCard
|
||
- src/views/KnowledgeBase/index.tsx
|
||
- src/components/Upload/UploadFiles.tsx
|
||
- src/components/Chat
|
||
|
||
|
||
# 分支
|
||
|
||
## 0.2.6
|
||
- feature/workflow_import_zy
|
||
- 工作流导入 | 导出
|
||
- input_type: Constant / Variable 统一成小写
|
||
- 结束节点内容被覆写
|
||
- 增加未知节点
|
||
- http 节点
|
||
- 变量下拉列表替换成编辑器
|
||
- body form-data file时,值支持选择sys.files
|
||
- feature/form_zy
|
||
- 表单校验规则
|
||
- 流式输出时,向上滚动后,自动滚动到最底部的效果失效
|
||
- 应用 API URL更新
|
||
- feature/memory_zy
|
||
- 记忆萃取增加剪枝
|
||
|
||
## 20260212
|
||
1. A2A 协议适配
|
||
2. 日志跟踪系统
|
||
3. Agent、集群、工作流共享
|
||
4. 试运行、分享会话支持文件(包含语言、其他附件)【待联调】
|
||
2. 导入 Agent、工作流 - 合并到应用管理创建方式
|
||
|
||
|
||
a7da914dcbb80186b9aaf9ac4d21a9881e60ecb5
|
||
e115353811b34de2fd359962860fdafe87fef503 |