Skip to main content

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 engine
  • konfai-apps = the packaged app runtime
  • apps/ = a collection of concrete published apps

What This Package Provides

konfai-apps ships three interfaces:

  • konfai-apps for local or remote app execution
  • konfai-apps-server for 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:

  • infer
  • eval
  • uncertainty
  • pipeline
  • fine-tune

Common execution options:

  • --gpu 0 or --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:

  1. upload inputs and parameters
  2. schedule the job on the server
  3. stream logs back to the client
  4. download the packaged result archive
  5. 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:

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/unit
  • konfai-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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

konfai_apps-1.5.8.tar.gz (6.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

konfai_apps-1.5.8-py3-none-any.whl (43.7 kB view details)

Uploaded Python 3

File details

Details for the file konfai_apps-1.5.8.tar.gz.

File metadata

  • Download URL: konfai_apps-1.5.8.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

Hashes for konfai_apps-1.5.8.tar.gz
Algorithm Hash digest
SHA256 4d248eb346f3a7377803d2d0edcde281e65d79df8358c14fc2dd40e891c1a6c2
MD5 7eee0f2d0b315cd9db658eed89cc523b
BLAKE2b-256 cfa3c85ff25646c65eb9f4ab78125a3bd8fd06829f9fe87615028af170dfddf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for konfai_apps-1.5.8.tar.gz:

Publisher: publish.yml on vboussot/KonfAI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file konfai_apps-1.5.8-py3-none-any.whl.

File metadata

  • Download URL: konfai_apps-1.5.8-py3-none-any.whl
  • Upload date:
  • Size: 43.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for konfai_apps-1.5.8-py3-none-any.whl
Algorithm Hash digest
SHA256 a55c8155a5b0b07fa6098322063fb5354fe3eef3e3ab212cfc9a375f3b0d1d76
MD5 8a5e430800e628df5f751e659e0670a1
BLAKE2b-256 392f5097b2a4ce9efeecc8ff50d8ec15c94ee3bb3649854609b328049f5d0dd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for konfai_apps-1.5.8-py3-none-any.whl:

Publisher: publish.yml on vboussot/KonfAI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page