Highlights

  • Expanded AI Integration: Added support for Ollama, llama_cpp, and Replicate
  • Enhanced Media Handling: Switched FrameIterator to PyAV and added XML document type support
  • New Integration: Added Voxel51 integration for computer vision workflows
  • Type System Overhaul: Implemented custom type hints for all Pixeltable types
  • SQL Integration: Added support for converting aggregate FunctionCalls to SQL
  • API Improvements: Streamlined create_view API and enhanced documentation

Enhancements

  • Development
    • Updated CI/CD configuration and Makefile
    • Upgraded GitHub Actions to use macos-13
    • Limited ubuntu-arm64 and ubuntu-x64-t4 to scheduled runs
    • Added Image.point() to API
    • Improved type-checking correctness across packages
    • Enhanced documentation and display for new type hint pattern
  • Documentation
    • Added CONTRIBUTING.md and improved documentation clarity
  • Media Processing
    • Implemented media validation on read
    • Updated Whisper library version
    • Added generate() and embed() functions for Ollama
  • Type System
    • Updated .md and .ipynb files to use new type hint pattern
    • Improved type-checking correctness across packages

Fixes

  • Notebook Compatibility: Fixed issues in working-with-huggingface notebook
  • External URLs: Resolved Replicate notebook compatibility with external URLs
  • Function Calls: Ensured correct nullability in FunctionCall return types
  • Error Handling: Added exception raising during add_column() errors
  • Query Management: Allowed @query redefinition in notebook scope
  • Index Operations: Updated BtreeIndex.str_filter implementation

Enhancements

  • Hugging Face Integration: Added support for loading Hugging Face datasets containing images, expanding data import capabilities.
  • File Cache Optimization: Implemented LRU (Least Recently Used) eviction in FileCache, improving memory management and performance.
  • JSON Handling: Enhanced JSON path functionality to allow getitem syntax, providing more flexible data access.
  • Iterator Improvement: Updated iterators to handle None values as input and skip rows with None values, increasing robustness in data processing.

Fixes

  • Together AI Integration: Resolved an issue with the Together AI image endpoint, ensuring better compatibility and reliability.

This update focuses on enhancing Pixeltable's integration with external services, improving data handling capabilities, and optimizing resource management.

Enhancements

  • SQL Conversion: Initial support for converting FunctionCalls to SQL, improving query performance and database compatibility.
  • Time Zone Support: Added comprehensive time zone handling for more accurate temporal data management across different regions.
  • Type Checking: Improved type-checking correctness for catalog, functions, and ext packages, enhancing code reliability and reducing potential runtime errors.
  • Mistral AI Integration: Introduced integration with Mistral AI, expanding the range of AI models available for use within Pixeltable.
  • Anthropic Integration: Introduced integration with Anthropic.
  • Tutorial: Added a new tutorial on computed columns.

Improvements

  • Dependency Management: Made mistune an optional dependency, allowing for more flexible installation options and removing errors in Google Colab..

Bug Fixes

  • Database Migration: Resolved a circularity issue in the database migration process for schema version 19 -> 20.

Enhancements

  • Type Checking: Significant progress made on the type-checking system, including groundwork and performance improvements.
  • Documentation: Added cross-links to docstrings for easier navigation and improved readability.
  • Table Creation: create_table can now accept a DataFrame directly, making table creation more flexible.
  • Postgres and pgvector Update: Postgres has been updated to version 16.4, and pgvector to 0.7.4 for better compatibility and performance.
  • CI/CD: Implemented Notebook CI and set up Nightly CI to ensure code quality and catch regressions early.

Fixes

  • Unit Tests: Fixed a unit test related to Together AI integration.
  • Notebook Regressions: Fixed several regressions in the notebooks that were causing issues.
  • Psycopg3: Updated to use psycopg3 as the Postgres driver for improved performance and stability.
  • Table Namespace: Cleaned up the Table class namespace and prevented conflicting column names to avoid errors and improve code clarity.
  • JSON Serialization: Fixed a bug related to the serialization of JSON slices.
  • JSON Literals: Enforced the requirement for keys in JSON literals to be strings to maintain data consistency.

Highlights

  • Enhanced Performance: Optimized data loading with StoreBase.load_column() improvements.
  • Flexible Data Handling: Support for lists, dictionaries, and other non-numpy datatypes in import_pandas.
  • Precise Video Frame Extraction: Control frame extraction with FrameIterator by specifying the exact number of frames.
  • Improved Visualizations: New UDF draw_bounding_boxes() for easier visualization of object detection results.
  • Streamlined Codebase: Migrated to a Pixeltable-compatible pgserver fork, improved SQL handling of arithmetic expressions, and refactored for better code organization and type checking.
  • Enhanced Usability: All column types are now stored by default, making it easier to persist your data.

New Features

  • import_json() and import_rows(): Convenient functions for importing JSON data and inserting rows directly into tables.
  • Timestamp Functions Library: Expanded library with more functions for working with timestamps.
  • Aggregate make_list(): Create lists from grouped data.

Improvements

  • Method Call Syntax: Simplified syntax for calling library functions.
  • Notebook Experience: Improved user-friendliness with better error messages and tab completion.
  • Testing: Enhanced test coverage and automation for more reliable code.

Bug Fixes and Other Changes

  • Database Update: New DB version to accommodate internal changes for better compatibility.
  • Type Handling: Removed support for Python datetime.date until a proper DateType is added.
  • CSV Import: Nullable types are now used as defaults for better data handling during CSV import.

Let us know what you think! Your feedback is invaluable to us as we continue to build and improve Pixeltable.

  • New force=True Option: We added a force=True option for drop_table and drop_dir functions, providing more control over data deletion.
  • API Improvements: Introduced several minor enhancements to the API for better usability and functionality.
  • Tutorial Updates: Revised existing tutorial notebooks and added new ones, covering topics like OpenAI, Together, Fireworks, and indexing.