f8d430ebd9
Extracted from: https://github.com/temiroff/Blacknode.git Score: 1.0
101 lines
3.6 KiB
Markdown
101 lines
3.6 KiB
Markdown
---
|
|
name: graph-based-node-workflow
|
|
version: 1.0.0
|
|
description: 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.
|
|
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
|
|
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'
|
|
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
|
|
tags: []
|
|
metadata:
|
|
source_repo: https://github.com/temiroff/Blacknode.git
|
|
extracted_at: ''
|
|
confidence: 0.95
|
|
---
|
|
|
|
# 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:**
|
|
|
|
```text
|
|
pip install blacknode (core Python package) anthropic, openai, docker, petgraph (dependencies) Rust extensions in blacknode-core, blacknode-runtime (optional)
|
|
```
|
|
|
|
**Setup steps:**
|
|
|
|
1. Install blacknode with Python 3.11+ and required dependencies
|
|
1. Clone repository and navigate to project directory
|
|
1. Run examples/converted_text_pipeline.py to see basic graph execution
|
|
1. Modify node definitions and edges to create custom workflows
|
|
|
|
## Key Files
|
|
|
|
- `examples/converted_text_pipeline.py - basic pipeline pattern`
|
|
- `examples/hello_agent.py - LLM agent workflow pattern`
|
|
- `examples/research_pipeline.py - multi-node research workflow`
|
|
- `blacknode.py - main CLI entry point`
|
|
|
|
## Steps
|
|
|
|
1. Step 1: Initialize a bn.Graph() instance to serve as the workflow container
|
|
2. 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)
|
|
3. Step 3: Create edges connecting nodes by specifying source from_port and destination to_port for each data flow
|
|
4. Step 4: Execute the graph by calling g.cook() to process the defined workflow and produce results
|
|
|
|
## Implementation Details
|
|
|
|
```python
|
|
g = bn.Graph()
|
|
```
|
|
|
|
```python
|
|
g._edges = [{"from": "model", "from_port": "value", "to": "agent", "to_port": "model"}]
|
|
```
|
|
|
|
```python
|
|
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](https://github.com/temiroff/Blacknode.git)
|
|
Confidence: 0.95
|