Skip to content

Commit 71d67b8

Browse files
toby-colemanCopilot
andauthored
docs: Update README (#252)
# 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>
1 parent 7a2c291 commit 71d67b8

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

README.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
Plugboard is an **event-driven modelling and orchestration framework** in Python for simulating and driving complex processes with many interconnected stateful components.
3434

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.
3636

3737
Some examples of what you can build with Plugboard include:
3838

@@ -50,8 +50,9 @@ Some examples of what you can build with Plugboard include:
5050
- **YAML model specification** format for saving model definitions, allowing you to run the same model locally or in cloud infrastructure;
5151
- A **command line interface** for executing models;
5252
- 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;
5454
- 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;
5556
- **Detailed logging** of component inputs, outputs and state for monitoring and process mining or surrogate modelling use-cases.
5657

5758
## 🔌 Installation
@@ -63,7 +64,9 @@ python -m pip install plugboard
6364

6465
Optional integrations for different cloud providers can be installed using `plugboard[aws]`, `plugboard[azure]` or `plugboard[gcp]`.
6566

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.
6770

6871
## ⚡ Quickstart with AI
6972

@@ -132,8 +135,10 @@ class B(Component):
132135

133136
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.
134137
```python
138+
from plugboard.component import component
139+
135140
@component(inputs=["in_1"], outputs=["out_1"])
136-
def pow2(in_1: int) -> int:
141+
def pow2(in_1: int) -> dict[str, int]:
137142
return {"out_1": in_1 ** 2}
138143

139144
result = pow2(2) # Preserves original function call -> result = {"out_1": 4}
@@ -208,16 +213,13 @@ plugboard process run my-model.yaml
208213

209214
## 📖 Documentation
210215

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.
212217

213218
## 🐾 Roadmap
214219

215220
Plugboard is under active development, with new features in the works:
216221

217222
- 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.
221223

222224
## 👋 Contributions
223225

0 commit comments

Comments
 (0)