Skip to main content
What this builds. A deliberately mis-typed pipeline: a string input is wired into ParallelAiSearchNode.max_results (an int32), so the SDK emits a type-warning on save. The pipeline still serialises and saves, but the warning surfaces in stderr. You’ll end up with. A re-saved pipeline plus a logged type-coercion warning you can use to spot bad edges before they hit runtime.
import vectorshift
from vectorshift.pipeline import (
    Pipeline,
    InputNode,
    OutputNode,
    ParallelAiSearchNode,
)

pipeline = Pipeline.fetch(id="698d6768a07ed4bec88d7aed")

pipeline.nodes.clear()

string_input = InputNode(node_name='query', input_type='string')

search_node = ParallelAiSearchNode(
    node_name='search',
    objective=string_input.text,  # string -> string (OK)
    max_results=string_input.text,  # string -> int32  (WARNING)
)

output_node = OutputNode(
    node_name='result',
    output_type='string',
    value=search_node.formatted_text,  # string -> string (OK)
)

pipeline.nodes = [string_input, search_node, output_node]
pipeline.save()

Expected output

<type-coercion warning logged for max_results: string -> int32>
The script’s primary signal is the warning itself — save still succeeds because the SDK is lenient about types. Use these warnings as a smoke test for your wiring.

See also

Read-JSON pipeline

Another node-wiring example with multiple outputs.

Text processing pipeline

Combine + format string nodes correctly.

Pipeline reference

Full method surface.