Change8

v1.14.3

📦 instructorView on GitHub →
2 features🐛 2 fixes1 deprecations🔧 2 symbols

Summary

This release introduces completeness-based validation for partial streaming and fixes bugs related to stream handling and field constraints during streaming.

Migration Steps

  1. Remove usage of `PartialLiteralMixin` as it is now deprecated and replaced by automatic completeness-based validation.

✨ New Features

  • Introduced completeness-based validation for Partial streaming, which only validates JSON structures that are structurally complete.
  • Added the new `JsonCompleteness` class in `instructor/dsl/json_tracker.py` for tracking JSON completeness during streaming.

🐛 Bug Fixes

  • Resolved an issue where Stream objects caused crashes in reask handlers when streaming was used with `max_retries > 1`.
  • Ensured that field constraints (like `min_length`, `max_length`, `ge`, `le`) now function correctly during streaming.

Affected Symbols

⚡ Deprecations

  • The `PartialLiteralMixin` is deprecated because completeness-based validation now handles Literal/Enum types automatically.