Skip to content

v0.7.0 (2024-09-01)

Latest
Compare
Choose a tag to compare
@philippgille philippgille released this 01 Sep 17:30
· 1 commit to main since this release

Highlights in this release are the possibility to export/import the DB to/from object storage like S3, a way to run a negative query and either filter or subtract the results from the regular query results, and the license change from AGPL to MPL. But many other additions, improvements and important fixes made it into this release as well, all without breaking changes:

Added

  • Added DB.ExportToWriter() to allow users to pass any io.Writer implementation for the DB export, not just a file. This allows for example to export the DB to AWS S3 or compatible services (like Ceph, MinIO etc.). (PR #71)
  • Added DB.ImportFromReader() to allow users to pass any io.ReadSeeker implementation for the DB import, not just a file. This allows for example to import the DB from AWS S3 or compatible services (like Ceph, MinIO etc.). (PR #72)
  • Added example code for S3 export/import with the ⬆️ new methods (PR #73)
  • Added Azure OpenAI compatibility (PR #74 by @iwilltry42)
  • Added lint job in GitHub Action (PR #82 by @erikdubbelboer)
  • Added the feature to run a negative query and either filter or subtract them from the regular query results (PR #80 by @erikdubbelboer)
    • This PR also added the new DB.QueryWithOptions method and related options structs and constants for future extensibility without breaking the parameter list of the query method!
  • Added option to only import/export selected collections to/from a DB (PR #88 by @iwilltry42)
  • Added Google / GCP Vertex AI embedding function (PR #91 by @iwilltry42 and #93)
  • Added new embedding model constants for Jina and Mixedbread (PR #94)
  • Added Collection.GetByID() to get a document for a known ID (PR #97, for issue #95)

Improved

  • Changed license from AGPL to MPL (PR #87)
  • Updated golangci-lint in CI to its latest version (PR #99)
  • Added Go 1.23 to the CI build matrix (PR #98)
  • Improved Godoc (PR #100)

Fixed

  • The Collection.QueryEmbedding() call assumed/expected the query embedding from the parameter to be normalized already, but it wasn't documented and it's also inconvenient for users who use an embedding model/API that doesn't return normalized embeddings. Now we check whether the embedding is normalized and if it's not then we normalize it. (PR #77)
    • (Currently chromem-go only does cosine similarity, and document embeddings are already being normalized, so the query embedding has to be normalized as well. In the future we might offer other distance functions or allow to inject your own and make the normalization optional)
  • Fixed test panic on unexpected pass (PR #78)
  • Fixed out of range panic on query (PR #79)
  • Fixed all golangci-lint warnings (PR #82 by @erikdubbelboer)
  • Fixed grammar and inconsistent receiver names (PR #85 by @codefromthecrypt)
  • Fixed link in Godoc (PR #89)

New Contributors

Full Changelog: v0.6.0...v0.7.0