Standalone KonfAI Apps package with local and remote app execution
Project description
KonfAI Apps
konfai-apps is the standalone package for packaged KonfAI workflows.
It is the layer you use when a low-level KonfAI workflow is already stable and you want a cleaner interface for:
- local inference and evaluation
- reusable app packaging
- remote execution through a FastAPI server
- integration in external tools such as 3D Slicer or lightweight clients
In the KonfAI repository, the split is intentional:
konfai= the low-level workflow enginekonfai-apps= the packaged app runtimeapps/= a collection of concrete published apps
What This Package Provides
konfai-apps ships three interfaces:
konfai-appsfor local or remote app executionkonfai-apps-serverfor hosting apps behind an HTTP API- the Python API under
konfai_apps
This package depends on the core konfai framework, but it is versioned and
tested as a separate runtime surface.
Installation
From PyPI:
python -m pip install konfai-apps
From a local checkout of this monorepo:
git clone https://github.com/vboussot/KonfAI.git
cd KonfAI
python -m pip install -e .
python -m pip install -e ./konfai-apps
Check the entrypoints:
konfai-apps --help
konfai-apps-server --help
App Identifiers
The app argument accepted by konfai-apps supports three main forms:
- Hugging Face app:
repo_id:app_name - local app directory:
/path/to/my_app - remote app execution: same app identifier, plus
--host ...
Examples:
konfai-apps infer VBoussot/ImpactSynth:CBCT ...
konfai-apps infer /data/apps/MyApp ...
konfai-apps infer VBoussot/ImpactSynth:CBCT --host 127.0.0.1 --port 8000 ...
Quick Start
Local inference
konfai-apps infer VBoussot/ImpactSynth:CBCT \
-i input.mha \
-o ./Output \
--gpu 0
Evaluation
konfai-apps eval VBoussot/ImpactSynth:CBCT \
-i input.mha \
--gt gt.mha \
--mask mask.mha \
-o ./Evaluation \
--gpu 0
Full pipeline
konfai-apps pipeline VBoussot/ImpactSynth:CBCT \
-i input.mha \
--gt gt.mha \
--mask mask.mha \
-o ./Output \
-uncertainty \
--gpu 0
Fine-tuning
konfai-apps fine-tune my_app MyCustomApp \
-d ./Dataset \
-o ./FineTune \
--epochs 10 \
--gpu 0
Main Commands
The CLI is organized around the packaged workflows available inside an app:
inferevaluncertaintypipelinefine-tune
Common execution options:
--gpu 0or--gpu 0 1--cpu N--download--force_update--quiet
Workflow-specific config overrides:
--prediction-file--evaluation-file--uncertainty-file
Python API
The same runtime is available from Python:
from pathlib import Path
from konfai_apps import KonfAIApp
app = KonfAIApp("VBoussot/ImpactSynth:CBCT", download=False, force_update=False)
app.infer(
inputs=[[Path("input.mha")]],
output=Path("./Output"),
gpu=[0],
cpu=None,
quiet=False,
tmp_dir=None,
ensemble=0,
ensemble_models=[],
tta=0,
mc=0,
uncertainty=False,
prediction_file="Prediction.yml",
)
For remote execution:
from konfai import RemoteServer
from konfai_apps import KonfAIAppClient
client = KonfAIAppClient(
"VBoussot/ImpactSynth:CBCT",
RemoteServer("127.0.0.1", 8000, "secret"),
)
Remote Server
konfai-apps-server exposes packaged apps through a FastAPI service.
Minimal example:
export KONFAI_API_TOKEN="secret"
konfai-apps-server \
--host 0.0.0.0 \
--port 8000 \
--apps ./konfai-apps/tests/assets/apps.json
Once the server is running, the client switches to remote mode as soon as
--host is provided:
konfai-apps infer VBoussot/ImpactSynth:CBCT \
-i input.mha \
-o ./Output \
--host 127.0.0.1 \
--port 8000 \
--token secret \
--cpu 1
The remote flow is:
- upload inputs and parameters
- schedule the job on the server
- stream logs back to the client
- download the packaged result archive
- extract the final outputs locally
What a KonfAI App Contains
A typical app directory contains:
my_app/
├── app.json
├── Prediction.yml
├── Evaluation.yml # optional
├── Uncertainty.yml # optional
├── checkpoint.pt # one or more checkpoints
└── custom Python modules # optional
app.json stores metadata such as:
- display name
- description
- short description
- TTA capability
- MC-dropout capability
- optional UI-oriented metadata
The exact app authoring model is documented in the main repository under
apps/ and in the Sphinx docs.
Repository Layout
Inside this monorepo:
konfai-apps/konfai_appscontains the package runtimekonfai-apps/testscontains package-specific testsapps/contains published packaged workflows built on top of this runtime
This is why the folder is named konfai-apps and not just apps:
the package is the runtime, while apps/ is the catalog of concrete apps.
Development
Install both packages in editable mode:
python -m pip install -e .
python -m pip install -e ./konfai-apps
Run the package test suite:
pytest -q konfai-apps/tests
The tests are split into:
konfai-apps/tests/unitkonfai-apps/tests/integration
GitHub Actions also separates the package from the core repository workflow:
.github/workflows/konfai_ci.yml.github/workflows/konfai_apps_ci.yml
Related Documentation
Useful entry points in the main repository:
../README.md../apps/README.md../docs/source/usage/apps.md../docs/source/usage/remote-server.md../docs/source/reference/cli.md
Current Scope
konfai-apps is intentionally focused on packaged workflow execution.
It is not meant to replace the low-level konfai workflow authoring interface
Its job is narrower and more operational: turn a mature KonfAI workflow into a reproducible, distributable application surface.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file konfai_apps-1.5.5.tar.gz.
File metadata
- Download URL: konfai_apps-1.5.5.tar.gz
- Upload date:
- Size: 6.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55503b416bd117f073a788772011b9c7138b63ec9ee6af0bb4106cb945d179d1
|
|
| MD5 |
13666bfc0656bbe3ea6602066f422d79
|
|
| BLAKE2b-256 |
28d9118eeb3f7aaa4f93eb5ba649dc91353718f6d86035a010a24afb10d83034
|
Provenance
The following attestation bundles were made for konfai_apps-1.5.5.tar.gz:
Publisher:
publish.yml on vboussot/KonfAI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
konfai_apps-1.5.5.tar.gz -
Subject digest:
55503b416bd117f073a788772011b9c7138b63ec9ee6af0bb4106cb945d179d1 - Sigstore transparency entry: 1592470957
- Sigstore integration time:
-
Permalink:
vboussot/KonfAI@33fb162b0ac0a1abd963c18aa193734358414289 -
Branch / Tag:
refs/tags/v1.5.5 - Owner: https://github.com/vboussot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@33fb162b0ac0a1abd963c18aa193734358414289 -
Trigger Event:
push
-
Statement type:
File details
Details for the file konfai_apps-1.5.5-py3-none-any.whl.
File metadata
- Download URL: konfai_apps-1.5.5-py3-none-any.whl
- Upload date:
- Size: 42.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d275c0def33eb56438712c73aa095ba51548ed58148e6226b30678ee9bfc6fb
|
|
| MD5 |
6c0e9a6a03e12e5b88a1329202ca0514
|
|
| BLAKE2b-256 |
1c828a634bfe2e8bdd8db92e7688585583819dc7ac6ed6b6a3527fc8f98a7cf0
|
Provenance
The following attestation bundles were made for konfai_apps-1.5.5-py3-none-any.whl:
Publisher:
publish.yml on vboussot/KonfAI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
konfai_apps-1.5.5-py3-none-any.whl -
Subject digest:
7d275c0def33eb56438712c73aa095ba51548ed58148e6226b30678ee9bfc6fb - Sigstore transparency entry: 1592471094
- Sigstore integration time:
-
Permalink:
vboussot/KonfAI@33fb162b0ac0a1abd963c18aa193734358414289 -
Branch / Tag:
refs/tags/v1.5.5 - Owner: https://github.com/vboussot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@33fb162b0ac0a1abd963c18aa193734358414289 -
Trigger Event:
push
-
Statement type: