You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Summary
Updates the README in the light of recent new features.
# Changes
* Updated roadmap.
* Clearer information on Ray integration.
* Minor updates/corrections.
---------
Co-authored-by: Copilot <copilot@github.com>
Copy file name to clipboardExpand all lines: README.md
+10-8Lines changed: 10 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,7 +32,7 @@
32
32
33
33
Plugboard is an **event-driven modelling and orchestration framework** in Python for simulating and driving complex processes with many interconnected stateful components.
34
34
35
-
You can use it to **define models** in Python and **connect them together easily** so that data automatically moves between them. After running your model on a laptop, you can then scale out on multiple processors, or go to a compute cluster in the cloud.
35
+
You can use it to **define models** in Python and **connect them together easily** so that data automatically moves between them. After running your model on a laptop, you can then scale out on multiple processors or go to a compute cluster in the cloud thanks to the integration with the [Ray](https://www.ray.io/) framework.
36
36
37
37
Some examples of what you can build with Plugboard include:
38
38
@@ -50,8 +50,9 @@ Some examples of what you can build with Plugboard include:
50
50
-**YAML model specification** format for saving model definitions, allowing you to run the same model locally or in cloud infrastructure;
51
51
- A **command line interface** for executing models;
52
52
- Built to handle the **data intensive simulation** requirements of industrial process applications;
53
-
- Modern implementation with **Python 3.12 and above** based around **asyncio** with complete type annotation coverage;
53
+
- Modern implementation with **Python 3.12+** based around **asyncio** with complete type annotation coverage;
54
54
- Built-in integrations for **loading/saving data** from cloud storage and SQL databases;
55
+
- Built-in **LLM integrations** for building AI-augmented process models with support for multiple providers;
55
56
-**Detailed logging** of component inputs, outputs and state for monitoring and process mining or surrogate modelling use-cases.
56
57
57
58
## 🔌 Installation
@@ -63,7 +64,9 @@ python -m pip install plugboard
63
64
64
65
Optional integrations for different cloud providers can be installed using `plugboard[aws]`, `plugboard[azure]` or `plugboard[gcp]`.
65
66
66
-
Support for parallelisation can be installed using `plugboard[ray]`.
67
+
Support for parallelisation and hyperparameter optimisation can be installed using `plugboard[ray]`.
68
+
69
+
Additional optional extras: `plugboard[llm]` for LLM components, `plugboard[redis]` for Redis-based connectors, and `plugboard[websockets]` for WebSocket I/O.
67
70
68
71
## ⚡ Quickstart with AI
69
72
@@ -132,8 +135,10 @@ class B(Component):
132
135
133
136
There is also a `@component` decorator which simplifies creating `Component`s for small stateless transform type functions. A component instance can be created by calling the `.component` method of the object returned by the decorator. The wrapped function can be sync or async and will be called as the step method with the named inputs being passed in. Inputs must be specified matching function args. Outputs must be specified and the function must return a dictionary where the keys match the outputs.
134
137
```python
138
+
from plugboard.component import component
139
+
135
140
@component(inputs=["in_1"], outputs=["out_1"])
136
-
defpow2(in_1: int) -> int:
141
+
defpow2(in_1: int) -> dict[str, int]:
137
142
return {"out_1": in_1 **2}
138
143
139
144
result = pow2(2) # Preserves original function call -> result = {"out_1": 4}
@@ -208,16 +213,13 @@ plugboard process run my-model.yaml
208
213
209
214
## 📖 Documentation
210
215
211
-
For more information including a detailed API reference and step-by-step usage examples, refer to the [documentation site](https://docs.plugboard.dev). We recommend diving into the [tutorials](https://docs.plugboard.dev/latest/examples/tutorials/hello-world/) for a step-by-step to getting started.
216
+
For more information including a detailed API reference and step-by-step usage examples, refer to the [documentation site](https://docs.plugboard.dev). We recommend diving into the [tutorials](https://docs.plugboard.dev/latest/examples/tutorials/hello-world/) for a step-by-step guide to getting started.
212
217
213
218
## 🐾 Roadmap
214
219
215
220
Plugboard is under active development, with new features in the works:
216
221
217
222
- Support for strongly typed data messages and validation based on pydantic.
218
-
- Support for different parallelisation patterns such as: single-threaded with coroutines, single-host multi process, or distributed with Ray in Kubernetes.
219
-
- Data exchange between components with popular messaging technologies like RabbitMQ and Google Pub/Sub.
220
-
- Support for different message exchange patterns such as: one-to-one, one-to-many, many-to-one etc via a broker; or peer-to-peer with http requests.
0 commit comments