wording
Docs / docs (push) Successful in 49s
Playwright Tests / test-playwright (1, 2) (push) Failing after 29s
Playwright Tests / test-playwright (2, 2) (push) Failing after 22s
pre-commit / pre-commit (push) Successful in 3m3s
Test Backend / test-backend (push) Successful in 2m19s
Compose Smoke Test / test-compose (push) Failing after 24s
Playwright Tests / merge-reports (push) Failing after 1m5s
Docs / docs (push) Successful in 49s
Playwright Tests / test-playwright (1, 2) (push) Failing after 29s
Playwright Tests / test-playwright (2, 2) (push) Failing after 22s
pre-commit / pre-commit (push) Successful in 3m3s
Test Backend / test-backend (push) Successful in 2m19s
Compose Smoke Test / test-compose (push) Failing after 24s
Playwright Tests / merge-reports (push) Failing after 1m5s
Signed-off-by: stroblme <stroblme@posteo.de>
This commit is contained in:
+19
-25
@@ -1,22 +1,20 @@
|
|||||||
# Fluksio
|
# Fluksio
|
||||||
|
|
||||||
A node-based automation engine: flows, dashboards and batch runs, in one
|
Fluksio is a node-based automation software that brings trust and reliability to your flow.
|
||||||
resident process with no infrastructure behind it.
|
It just works and looks good.
|
||||||
|
Get started by running
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
pip install fluksio
|
pip install fluksio
|
||||||
fluksio serve
|
fluksio serve
|
||||||
```
|
```
|
||||||
|
|
||||||
That is the whole installation — no Docker, no database server, no ports to
|
and you're ready to go!
|
||||||
open. It keeps a SQLite database, a git repository of your flows and an
|
Fluksio keeps a SQLite database, a git repository of your flows and an artifact store under `~/.fluksio`, and prints an admin password once upon start.
|
||||||
artifact store under `~/.fluksio`, and prints an admin password once.
|
|
||||||
|
|
||||||
## For data science
|
## For data science
|
||||||
|
|
||||||
Your functions become nodes where they already live. Install Fluksio into the
|
You can turn your existing data science project into a flow by decorating your functions with `@node` ...
|
||||||
environment you work in and your nodes run on it — the packages are already
|
|
||||||
there:
|
|
||||||
|
|
||||||
```python
|
```python
|
||||||
# myresearch/train.py
|
# myresearch/train.py
|
||||||
@@ -35,6 +33,8 @@ def fit(dataset, lr, epochs=25):
|
|||||||
return {"weights": fluksio.save_artifact("weights.pt")}
|
return {"weights": fluksio.save_artifact("weights.pt")}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
... and passing them to a `Flow`:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
# myresearch/pipeline.py
|
# myresearch/pipeline.py
|
||||||
from fluksio import Flow, Port
|
from fluksio import Flow, Port
|
||||||
@@ -44,36 +44,30 @@ train = Flow("train", nodes=[prepare, fit, evaluate],
|
|||||||
inputs=[Port("lr", "float", initial=0.01)], outputs=["score"])
|
inputs=[Port("lr", "float", initial=0.01)], outputs=["score"])
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Fluksio will automatically infer the order of nodes based on the inputs and outputs you defined.
|
||||||
|
When everything is set, you can access a dashboard as follows:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
fluksio login --url http://127.0.0.1:8000
|
fluksio login --url http://127.0.0.1:8000
|
||||||
fluksio sync myresearch
|
fluksio sync myresearch
|
||||||
fluksio run train --lr 0.05 --wait
|
fluksio run train --lr 0.05 --wait
|
||||||
```
|
```
|
||||||
|
|
||||||
The decorators return your functions untouched, so everything stays callable,
|
Checkout our [documentation](https://docs.fluksio.com/getting-started/data-science/) for more infos.
|
||||||
testable and importable as what it was. A metric leaves through a declared
|
|
||||||
port rather than a logging call, which is why there is no `log_metric()`: the
|
|
||||||
run keeps the whole series, a chart can bind to it, and a downstream node can
|
|
||||||
consume it.
|
|
||||||
|
|
||||||
## What else it does
|
## Some other features
|
||||||
|
|
||||||
- **Flows** — typed messages between nodes, wired by name, edited on a canvas
|
- **Flows**: typed messages between nodes, wired by name, edited on a canvas
|
||||||
or declared in code. Every change is a commit in a git repository you own.
|
or declared in code. Every change is a commit in a git repository you own.
|
||||||
- **Runs** — an experiment and a CI-style job are the same entity. Parameters,
|
- **Runs**: an experiment and a CI-style job are the same entity. Parameters,
|
||||||
seed, result, per-node timings, artifacts and the commit it ran at.
|
seed, result, per-node timings, artifacts and the commit it ran at.
|
||||||
- **Dashboards** — charts and controls bound to the same messages the flows
|
- **Dashboards**: charts and controls bound to the same messages the flows
|
||||||
carry, with no separate metrics pipeline.
|
carry, with no separate metrics pipeline.
|
||||||
- **Remote workers** — `pip install fluksio-worker` on the GPU box; it dials
|
- **Remote workers**: `pip install fluksio-worker` on the GPU box; it dials
|
||||||
*out* over one websocket, so nothing there has to be reachable.
|
*out* over one websocket, so nothing there has to be reachable.
|
||||||
|
|
||||||
## Links
|
Fluksio can also be used for facility automation.
|
||||||
|
Visit us on [Fluksio.com](fluksio.com) or go straight to our [documentation](https://docs.fluksio.com).
|
||||||
- Documentation: <https://docs.fluksio.com>
|
|
||||||
- Getting started (data science): <https://docs.fluksio.com/getting-started/data-science/>
|
|
||||||
- Home: <https://fluksio.com>
|
|
||||||
|
|
||||||
Python 3.12 or newer, Linux or macOS.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user