使用列映射#
在本文档中,我们将介绍在运行流时如何使用列映射来映射输入。
列映射介绍#
列映射是从流输入名称到指定值的映射。如果指定,流将使用为指定输入提供的值执行。支持以下类型的列映射值:
${data.<column_name>}
用于引用您的测试数据集。${run.inputs.<input_name>}
用于引用来自引用运行的输入。注意:这仅在为pf run
提供了--run
时支持。${run.outputs.<output_name>}
用于引用来自引用运行的输出。注意:这仅在为pf run
提供了--run
时支持。STATIC_VALUE
用于为指定列的所有行创建静态值。
流输入覆盖优先级#
流输入值根据以下优先级被覆盖:
“在列映射中指定” > “默认值” > “提供数据中同名列”。
例如,如果我们的流具有以下输入:
inputs:
input1:
type: string
default: "default_val1"
input2:
type: string
default: "default_val2"
input3:
type: string
input4:
type: string
...
并且流将在输出中返回每个输入。
使用以下数据:
{"input3": "val3_in_data", "input4": "val4_in_data"}
并使用以下 YAML 运行:
$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json
flow: path/to/flow
# my_flow has default value val2 for key2
data: path/to/data
# my_data has column key3 with value val3
column_mapping:
input1: "val1_in_column_mapping"
input3: ${data.input3}
由于流将在输出中返回每个输入,我们可以从运行详情中的 outputs.output
字段获取实际输入:
输入“input1”的值为“val1_in_column_mapping”,因为它在
column_mapping
中被指定为常量。输入“input2”的值为“default_val2”,因为它在流 dag 中使用了默认值。
输入“input3”的值为“val3_in_data”,因为它在
column_mapping
中被指定为数据引用。输入“input4”的值为“val4_in_data”,因为它在提供的数据中具有同名列。