f8d430ebd9
Extracted from: https://github.com/temiroff/Blacknode.git Score: 1.0
3.6 KiB
3.6 KiB
name, version, description, inputs, steps, outputs, tags, metadata
| name | version | description | inputs | steps | outputs | tags | metadata | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| graph-based-node-workflow | 1.0.0 | Create and execute typed node graphs for AI/robotics workflows by defining nodes with inputs/outputs and connecting them with edges, then cooking the graph to run the workflow. |
|
|
|
|
graph-based-node-workflow
Create and execute typed node graphs for AI/robotics workflows by defining nodes with inputs/outputs and connecting them with edges, then cooking the graph to run the workflow.
Setup
Dependencies:
pip install blacknode (core Python package) anthropic, openai, docker, petgraph (dependencies) Rust extensions in blacknode-core, blacknode-runtime (optional)
Setup steps:
- Install blacknode with Python 3.11+ and required dependencies
- Clone repository and navigate to project directory
- Run examples/converted_text_pipeline.py to see basic graph execution
- Modify node definitions and edges to create custom workflows
Key Files
examples/converted_text_pipeline.py - basic pipeline patternexamples/hello_agent.py - LLM agent workflow patternexamples/research_pipeline.py - multi-node research workflowblacknode.py - main CLI entry point
Steps
- Step 1: Initialize a bn.Graph() instance to serve as the workflow container
- Step 2: Define individual nodes with their required inputs and outputs (e.g., Literal for data, LLMAgent for inference, Concat for combining, Output for final results)
- Step 3: Create edges connecting nodes by specifying source from_port and destination to_port for each data flow
- Step 4: Execute the graph by calling g.cook() to process the defined workflow and produce results
Implementation Details
g = bn.Graph()
g._edges = [{"from": "model", "from_port": "value", "to": "agent", "to_port": "model"}]
result = g.cook(output, "value")
Inputs
- bn.Graph() - the graph container for the workflow
- Node definitions (Literal, Text, LLMAgent, Concat, Output, etc.) with specified inputs and outputs
- Edge connections mapping from_port to to_port between nodes
Outputs
- Executed workflow results stored in the graph's output nodes
- Cooked graph ready for inspection, replay, or deployment
- Potential error states if node dependencies are missing or ports don't match
Failure Modes
- Missing node dependencies causing undefined variable errors
- Port mismatch in edge connections leading to no data flow
- Incomplete graph definition causing cook() to fail
- Model API key missing or invalid for LLMAgent nodes
Source
Extracted from: https://github.com/temiroff/Blacknode.git Confidence: 0.95