DocArray 0.39 Update

DocArray is a library for representing, sending and storing multi-modal data, perfect for Machine Learning applications.

Abstract portrayal of a geometric planet with colorful orbiting elements on a dark backdrop


Release Note (0.39.0)

This release contains 4 new features, 8 bug fixes, and 7 documentation improvements.

Release ๐Ÿ’ซ Release v0.39.0 ยท docarray/docarray
Release Note (0.39.0) Release time: 2023-10-02 13:06:02 This release contains 4 new features, 8 bug fixes, and 7 documentation improvements. ๐Ÿ†• Features Support for Pydantic v2 ๐Ÿš€ (#1652) The biggeโ€ฆ

๐Ÿ†• Features

Support for Pydantic v2 ๐Ÿš€ (#1652)

The biggest feature of this release is full support for Pydantic v2! We are continuing to support Pydantic v1 at the same time.

If you use Pydantic v2, you will need to adapt your DocArray code to the new Pydantic API. Check out their migration guide here.

Pydantic v2 has its core written in Rust and provides significant performance improvements to DocArray: JSON serialization is 240% faster and validation of BaseDoc and DocList with non-native types like TorchTensor is 20% faster.

Add BaseDocWithoutId (#1803)

A BaseDoc by default includes an id field. This can be problematic if you want to build an API that requires a model without this ID field. Therefore, we now provide a BaseDocWithoutId which is, as its name suggests, is BaseDoc without the ID field.

Please use this Document with caution, BaseDoc is still the base class to use unless you specifically need to remove the ID.

โš ๏ธ BaseDocWithoutId is not compatible with DocIndex or any feature requiring a vector database. This is because DocIndex needs the id field to store and retrieve documents.

๐Ÿ’ฃ Breaking change

Remove Jina AI cloud push/pull (#1791)

Jina AI Cloud is being discontinued. Therefore, we are removing the push/pull feature related to Jina AI cloud.

๐Ÿž Bug Fixes

Fix DocList subscription error

DocList can be typed from BaseDoc using the following syntax DocList[MyDoc]().

In this release, we have fixed a bug that allowed users to specify the type of a DocList multiple times

Doing DocList[MyDoc1][MyDoc2] won't work anymore (#1800)

We also fixed a bug that caused a silent failure when users passed DocList the wrong type, for example DocList[doc()]. (#1794)

Milvus connection parameter missing (#1802)

We fixed a small bug that incorrectly set the port of the Milvus client.

๐Ÿ“— Documentation Improvements

๐ŸคŸ Contributors

We would like to thank all contributors to this release: