Releases: radical-cybertools/radical.asyncflow
Releases · radical-cybertools/radical.asyncflow
v0.3.0
prompt_taskdecorator — new first-class task type alongsidefunction_taskandexecutable_task. The decorated async function returns a prompt string that is forwarded to an AI execution backend (e.g.DragonVllmInferenceBackendfrom RHAPSODY).NoopExecutionBackendreturns"Dummy Prompt Output"for testing;LocalExecutionBackendraisesNotImplementedErrorwith a clear message directing users to register an AI backend.- Multi-backend registry —
WorkflowEngine.create(backend=...)now accepts either a single backend or a list of pre-initialized named backends (each must expose a.nameattribute). The first backend in the list is the default. Built-in backends (LocalExecutionBackend,NoopExecutionBackend) gain anameparameter defaulting to"default". - Per-task backend routing — task decorators (
function_task,executable_task,prompt_task) accept an optionalbackend="<name>"parameter to route a specific task to a named backend. Tasks withoutbackend=are sent to the default backend. - Parallel backend submission — when a batch contains tasks routed to multiple backends,
submit()dispatches all backend calls concurrently viaasyncio.gather.shutdown()similarly drains all registered backends in parallel. - Example
04-concurrent_backends.py— demonstrates a compute + AI dual-backend workflow running document processing pipelines concurrently. - Tests — unit tests (
tests/unit/test_prompt_task.py) and integration tests (tests/integration/test_multi_backend.py) coveringprompt_taskregistration, validation, multi-backend routing, parallel submission, and graceful shutdown.