<#657 human in the loop plugin> Pull request opene...
# flyte-github
a
#657 human in the loop plugin Pull request opened by cosmicBboy This pull request introduces a new Human-in-the-Loop (HITL) plugin for Flyte, enabling workflows to pause and wait for human input via a web interface or programmatic API. The core functionality is provided as an event-based API, with supporting documentation, FastAPI web app, and helper utilities. The main changes are organized below by theme. HITL Plugin Implementation • Added the initial implementation of the HITL plugin as a new Python package (
flyteplugins-hitl
), including the core event-based API (
new_event
,
Event
), support for different data types (int, float, str, bool), and a crash-resilient polling mechanism using object storage. (
plugins/hitl/src/flyteplugins/hitl/__init__.py
) • Implemented a FastAPI app to provide a web interface for human input, including endpoints for form rendering, input submission, status checking, and health checks. (
plugins/hitl/src/flyteplugins/hitl/_app.py
) • Added helper functions for type conversion, storage path management, and data serialization to support the HITL workflow and web app. (
plugins/hitl/src/flyteplugins/hitl/_helpers.py
) Documentation and Example Usage • Added detailed documentation for the HITL plugin, including installation instructions, usage examples, API reference, and feature list. (
plugins/hitl/README.md
) • Provided a comprehensive example application demonstrating how to use the HITL pattern in a Flyte workflow, including both automated and human-in-the-loop tasks. (
examples/apps/hitl.py
) Build and Development Configuration • Introduced a
pyproject.toml
for the new plugin package, specifying dependencies (FastAPI, Uvicorn, Flyte, etc.), build system configuration, development dependencies, and code quality tools. (
plugins/hitl/pyproject.toml
) flyteorg/flyte-sdk