Skip to content

v1.10.0

Choose a tag to compare

@mpangrazzi mpangrazzi released this 09 Feb 15:39
1bcc019

✨ New Features

File Response Support

You can now build cleaner APIs that return images, PDFs, audio, or any binary content directly — no Base64 encoding or JSON wrapping needed. Just return a FastAPI Response object (e.g. FileResponse, StreamingResponse) from run_api and Hayhooks will serve it straight to the client with the correct Content-Type.

from fastapi.responses import FileResponse
from hayhooks import BasePipelineWrapper

class PipelineWrapper(BasePipelineWrapper):
    def setup(self) -> None:
        pass

    def run_api(self, prompt: str) -> FileResponse:
        image_path = generate_image(prompt)
        return FileResponse(path=image_path, media_type="image/png", filename="result.png")

OpenAPI docs are also automatically updated to reflect the correct response type for these endpoints.

See the File Response Support docs and the Image Generation example for full details.

🏗️ Internal Improvements

Unified Pipeline Deployment Architecture

YAML pipeline handling has been refactored to use the same PipelineWrapper architecture as wrapper-based pipelines. A new internal YAMLPipelineWrapper class now wraps YAML pipelines so both deployment paths share the same code — simplifying the codebase, reducing duplication, and making future improvements easier to implement consistently.

📚 Documentation

🎨 Other Changes

  • Removed the project triaging GitHub Actions workflow

What's Changed

Full Changelog: v1.9.0...v1.10.0