Conditional Nodes and Multiple Outputs

Conditional Nodes

Within the workflow, there is often a need to make decisions about whether to proceed with one branch or another. These decisions can be made dynamically during the pipeline's execution. To support this, a specialized Choice Node is used. This node allows us to set conditions based on the parameters of previous nodes, helping to determine the next step in the sequence.

In this case, the Choice Node determines which Agent will be executed next. simple-agent will be executed if the choice_is_correct_date condition is met, while simple-agent-2 will be executed if the choice_is_correct_next_date condition is met.

Using the Choice node

Connecting Nodes According to Specified Conditions

To ensure that nodes execute when a condition is met, they must be connected using the appropriate condition parameters. Note the difference between connecting the nodes themselves and connecting their parameters.

Creating Branches

In this example, we have three conditions:

  1. choice_is_correct_date

  2. choice_is_correct_next_date

  3. default

The first two conditions are manually created (see below), while the default condition is pre-defined and is met in all cases. The default condition serves as a valuable fallback mechanism when none of the custom conditions are met.

To create new condition, click on the Choice node to access its configuration. Here we can see all previously created conditions. We can either edit existing conditions or create new a branch by clicking Add branch.

Configuring the Choice node

To configure a branch/condition we have to specify:

  • Variable - The variable we will use for the condition. The syntax follows the same format as the InputTransformers and OutputTransformers.

  • Operator - Defines the operation we will use for the condition.

  • Value Type - Defines the type of value. This can be a string, integer, or boolean, and either a constant or another variable.

  • Value - If the Value Type is a constant, we provide the specific value. If it is a variable, we must define the method for accessing it.

Configuring a brach

We can also configure more complex conditions using the AND and OR operators.

Example of using AND logic

By clicking the Add dropdown, we can continue adding additional AND or OR statements, allowing us to create conditions of any complexity.

Workflow Execution

Workflow execution in different scenarios:

Scenarios
Actions

Multiple conditions (one or more)

If multiple conditions are met, only the first one will proceed, functioning like an if-elif-else structure.

Neither condition

If no conditions are met after the Choice Node and the default condition is not connected, the workflow will exit.

Map Node

Within the workflow, It`s often necessary to repeat certain logic for various sets of data. To support this logic, the Map node is used. This node allows you to call a predefined node with specific parameters several times, depending on the amount of data it receives as input.

In this example Map node used to create text embedding for multiple text sets.

Workflow with MAP node

Configuration

  • Name: Customizable name for identifying this node.

  • Node: Internal node, that will be called for each set of data. Node parameters can be configured immediately after selection.

  • Behavior: Specifies the action in case of an internal node failure, with options:

    • raise: Raise a ValueError with detailed error message about fail reasons

    • return: Return output of all iteration results, specifying the failed one with detailed error message.

Input Structure

{  
    "input": [{"query":"Text example number 1"},{"query":"Text example number 1"},
                {"query":"Text example number 1"}]
}

Last updated