pocketflow/cookbook/pocketflow-batch-flow/README.md

72 lines
2.0 KiB
Markdown

# PocketFlow BatchFlow Example
This example demonstrates the BatchFlow concept in PocketFlow by implementing an image processor that applies different filters to multiple images.
## What this Example Demonstrates
- How to use BatchFlow to run a Flow multiple times with different parameters
- Key concepts of BatchFlow:
1. Creating a base Flow for single-item processing
2. Using BatchFlow to process multiple items with different parameters
3. Managing parameters across multiple Flow executions
## Project Structure
```
pocketflow-batch-flow/
├── README.md
├── requirements.txt
├── images/
│ ├── cat.jpg # Sample image 1
│ ├── dog.jpg # Sample image 2
│ └── bird.jpg # Sample image 3
├── main.py # Entry point
├── flow.py # Flow and BatchFlow definitions
└── nodes.py # Node implementations for image processing
```
## How it Works
The example processes multiple images with different filters:
1. **Base Flow**: Processes a single image
- Load image
- Apply filter (grayscale, blur, or sepia)
- Save processed image
2. **BatchFlow**: Processes multiple image-filter combinations
- Takes a list of parameters (image + filter combinations)
- Runs the base Flow for each parameter set
- Organizes output in a structured way
## Installation
```bash
pip install -r requirements.txt
```
## Usage
```bash
python main.py
```
## Sample Output
```
Processing images with filters...
Processing cat.jpg with grayscale filter...
Processing cat.jpg with blur filter...
Processing dog.jpg with sepia filter...
...
All images processed successfully!
Check the 'output' directory for results.
```
## Key Concepts Illustrated
1. **Parameter Management**: Shows how BatchFlow manages different parameter sets
2. **Flow Reuse**: Demonstrates running the same Flow multiple times
3. **Batch Processing**: Shows how to process multiple items efficiently
4. **Real-world Application**: Provides a practical example of batch processing