-
Notifications
You must be signed in to change notification settings - Fork 536
Deployed pipelines #3920
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Deployed pipelines #3920
Conversation
- Add core direct execution engine that can run ZenML pipelines locally - Implement step-by-step execution with proper artifact handling - Add support for parameter injection and step output resolution - Include comprehensive logging and error handling
…o/zenml into feature/served-pipelines
This update removes the complex output resolution logic from the DirectExecutionEngine, allowing it to directly use the step output returned by the step function. This change simplifies the code and improves performance by eliminating unnecessary exception handling for output resolution. Additionally, comprehensive logging has been maintained to ensure clarity in the execution process. No functional changes are introduced, and the code remains backward compatible.
This update introduces a new method, `_resolve_step_output`, to handle the resolution of specific outputs from a step's return value. The method accommodates various output formats, including single values, dictionaries, and tuples/lists, improving the flexibility and robustness of output handling.
This commit introduces a new example demonstrating a conversational AI chat agent pipeline that integrates with ZenML's serving infrastructure. The pipeline allows for real-time chat applications, utilizing OpenAI's API for generating responses based on user input. Additionally, the README.md has been updated to include this new example, along with a brief overview of its features and usage instructions. New files: - `examples/serving/chat_agent_pipeline.py`: Implementation of the chat agent pipeline. - Updates to `examples/serving/README.md` to document the new example.
…o/zenml into feature/served-pipelines
…o/zenml into feature/served-pipelines
This update introduces Docker settings for the chat and weather agent pipelines, allowing them to utilize the OpenAI API key from environment variables. Additionally, the pipeline decorators have been updated to include these settings. Also, CORS middleware has been added to the FastAPI application to enable frontend access, with a note to restrict origins in production for security. Enhancements to the parameter schema extraction in the PipelineServingService have been implemented, improving the extraction of function signatures and parameter types. New request and response models for pipeline execution and chat interface have been added to the pipeline endpoints. Fixes #3904
…o/zenml into feature/served-pipelines
This commit introduces a comprehensive framework for managing capture policies in ZenML's pipeline serving. It includes five distinct capture modes to control the observability of requests, balancing privacy and performance. Additionally, step-level capture annotations have been implemented, allowing for fine-grained control over which inputs and outputs are captured for each step. This enhancement provides users with the ability to specify capture behavior directly in their pipeline definitions. New documentation has been added to explain the capture policies and their configurations, along with examples demonstrating their usage in both pipeline and step contexts. Fixes #3911
This commit introduces a new dependency injection system for ZenML's serving components, enhancing modularity and testability. Key changes include the creation of a `ServingContainer` class to manage service instances and their initialization order. The FastAPI application now utilizes dependency injection for accessing services like `PipelineServingService`, `JobRegistry`, and `StreamManager`. Additionally, several global service instances have been removed to streamline the architecture, and the lifespan management of the FastAPI application has been improved. This refactor lays the groundwork for better service management and easier testing.
…o/zenml into feature/served-pipelines
This commit enhances the `install-zenml-dev.sh` script by introducing an `--upgrade-all` option, allowing users to uninstall existing ZenML installations, clear caches, and install the latest versions of all dependencies. The script now includes detailed help messages and examples for better user guidance. Additionally, it ensures that integration dependencies can also be upgraded in a similar manner.
This commit refactors the ZenML serving module to adopt a deployer architecture, enhancing modularity and maintainability. Key changes include the renaming of imports and constants from `zenml.serving` to `zenml.deployers.serving`, ensuring a consistent structure across the codebase. Additionally, the capture policies and step-level annotations have been updated to reflect this new organization, improving clarity in the code. Documentation has been revised to align with these changes, and tests have been adjusted to accommodate the new import paths. This refactor lays the groundwork for future enhancements in the serving capabilities of ZenML.
This commit introduces new documentation for the serving capabilities of ZenML, including a detailed guide on pipeline serving and capture policies. The `toc.md` files have been updated to include links to the new sections on "Serving Pipelines" and "Pipeline Serving Capture Policies." Additionally, the previous step-level capture annotations documentation has been removed to streamline the content, consolidating information into the new capture policies guide. This enhancement improves user understanding of serving pipelines and their observability features.
- Implementation of log handlers for both pipeline and step logs, allowing for in-process log capture. - Introduction of methods to immediately create and update runs and steps, enhancing the responsiveness of the tracking system. - Refactoring of output handling to support tuple outputs and improve artifact persistence based on capture policies.
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
This commit removes the `capture-policies.md` documentation and the associated `serving_settings.py` file, which contained legacy capture policy configurations. The removal streamlines the serving module by eliminating outdated features and consolidating the focus on the new run-only architecture. Additionally, the `toc.md` file for serving has been updated to reflect these changes, ensuring that users are directed to the current documentation relevant to ZenML's serving capabilities. This enhancement improves clarity and usability for users working with ZenML's serving features.
…o/zenml into feature/served-pipelines
🔍 Broken Links ReportSummary
Details
📂 Full file paths
|
This commit refactors the serving architecture by removing the `serving_buffer` and `serving_overrides` modules, which were previously used for managing request-scoped outputs and parameter overrides. The refactor introduces a new response tap mechanism for capturing outputs directly, streamlining the process and improving performance. Additionally, the `PipelineServingService` class has been updated to utilize the new response tap for output management, ensuring a more efficient handling of pipeline responses. This change enhances the overall clarity and maintainability of the serving code.
…into feature/served-pipelines
Review the following changes in direct dependencies. Learn more about Socket for GitHub. |
Describe changes
Pre-requisites
Please ensure you have done the following:
develop
and the open PR is targetingdevelop
. If your branch wasn't based on develop read Contribution guide on rebasing branch to develop.Types of changes