数据如何流动?
每个工具在注册时都会声明自身的输入与输出变量名,从而确定数据流的入口与出口。例如:- 工具接收两个输入变量:
q_ls和top_k - 工具返回一个输出变量:
ret_psg
参数重命名机制
为了解决变量名冲突与绑定歧义问题,UltraRAG 提供了灵活的 参数重命名机制。 你可以直接在 pipeline.yaml 中使用input: 与 output: 字段,
显式指定参数与变量的映射关系——无需修改 Server 内部代码,即可完成数据绑定重定向。
input: 映射函数的入参名,output: 映射工具注册时定义的输出键。
最简单的方式:在函数定义与工具注册时保持输入、输出参数名一致,可直接避免区分上述两种绑定规则。
示例1:输入变量重命名
假设工具函数声明如下:query_list 的输入参数,但我们通过 input: 将其映射为 Pipeline 中的变量 sub_q_ls,从而实现无缝绑定。
示例2:输出变量重命名
假设该工具在注册时定义如下:ret_psg,
该结果都会被映射为 round1_result,供后续步骤使用。
如果下游模块依赖该输出结果:
qa_rag_boxed 原本期望的输入 ret_psg 就会从上一步的 round1_result 中读取,实现数据传递。