dashai-frankenstein
A DashAI plugin that registers Frankenstein Transformer model classes as DashAI components, so end users can train, evaluate, predict, save, and load them from the DashAI UI.
Components registered
| Entry point | Class | DashAI base | Binds to task |
|---|---|---|---|
frankenstein_mlm |
FrankensteinMLMModel |
BaseModel |
TextClassificationTask |
frankenstein_decoder |
FrankensteinDecoderModel |
BaseGenerativeModel |
TextToTextGenerationTask |
frankenstein_vit_cls |
FrankensteinViTClassifier |
BaseModel |
ImageClassificationTask |
frankenstein_vit_seg |
FrankensteinViTSegmenter |
BaseModel |
SegmentationTask |
segmentation_task |
SegmentationTask |
BaseTask |
(new task provided by this plugin) |
Schema (v1: passthrough JSON)
Each model exposes a minimal pydantic schema with a single user-facing field:
frankenstein_json, a string containing a full Frankenstein training config as a
single-line JSON. The Frankenstein JSON Schema is the source of truth — the
JSON is validated against it (additionalProperties: false + enums) and
Frankenstein's config loader (cross-component constraints) before any
train/inference launches. Errors surface to the DashAI user as a readable
ValueError.
Build your YAML with the Frankenstein YAML builder, convert it to a one-line JSON string, and paste it into the field:
python -c "import yaml,json,sys; print(json.dumps(yaml.safe_load(open(sys.argv[1]))))" my_config.yaml
Training parameters (device, batch_size, num_epochs, learning rate) are read
from the config's training_runtime block and optimizer parameters — they are NOT
separate DashAI form fields. Generation parameters (max_new_tokens,
temperature, top_k) on the decoder component are kept as DashAI fields (they
are inference-time, not training-time, and the Frankenstein schema has no home
for them).
Note: The field is a single-line text input (DashAI does not yet support a multiline textarea for plugin schema fields), which is why the config is passed as a one-line JSON string rather than a multiline YAML document. A true multiline textarea is tracked as a future upstream improvement to DashAI.
Install
pip install dashai-frankenstein # from PyPI once published
# or, from this repo:
pip install -e ./dashai-frankenstein
DashAI discovers the plugin via the dashai.plugins entry-points group on
startup — no DashAI source edits required.
Architecture
See docs/dashai-plugin-audit.md in the Frankenstein repo for the full
integration design (§5 component designs, §6 phased plan, §7 Frankenstein
changes). This package is the Phase 1–3 adapter layer; it consumes the
Frankenstein engine API (src.engine) added in Phase 0.
Metadata
Release files for dashai-frankenstein 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dashai_frankenstein-0.2.1.tar.gz | 21.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dashai_frankenstein-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.1 kB
Release files / dashai_frankenstein-0.2.1.tar.gz
| Download URL | dashai_frankenstein-0.2.1.tar.gz |
|---|---|
| Size | 21.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1768716436ec8cbf50c11786fcc46563bb7db7e90b3ef923938de5cd5c67b3f4
|
|
BLAKE2b-256 checksum How to use checksums |
a1c4089f413b2a12dba211f9930ca016d03dccc46c5aac22b54e498ec7ccfad8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / dashai_frankenstein-0.2.1-py3-none-any.whl
| Download URL | dashai_frankenstein-0.2.1-py3-none-any.whl |
|---|---|
| Size | 32.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e2d7f95bd4deb3dee10bd51ee9b70191fd85251c1b766f32affe4ecd99212d4e
|
|
BLAKE2b-256 checksum How to use checksums |
e84819a6d0c23f5a373615c37086fe81e0ad10a2585cce328390710c51d05258
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|