All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
In this release the main features are optional persistence and an extended interface.
- Extended the interface:
- Added various unit tests (PR #20)
- Added optional persistence! Via multiple PRs:
- Improved example (PR #11)
- Stop exporting
Collection.Metadata
(PR #16)- Goal: Prevent direct modifications which could cause data races in case of the user doing a modification while
chromem-go
for example ranges over it during aCollection.Query()
call.
- Goal: Prevent direct modifications which could cause data races in case of the user doing a modification while
- Copy metadata in constructors (PR #17)
- Goal: Prevent direct modifications which could cause data races in case of the user doing a modification while
chromem-go
for example ranges over it.
- Goal: Prevent direct modifications which could cause data races in case of the user doing a modification while
- Improved CI (PR #18)
- Add Go 1.22 to test matrix, update used GitHub Action from v4 to v5, use race detector during tests
- Reorganize code internally (PR #21)
- Because functions can't be (de-)serialized,
GetCollection
requires a new parameter of typeEmbeddingFunc
, in order to set the correct func when using a DB with persistence and it just loaded the collections and documents from storage. (PR #25) - Some methods now return an error (due to file operations when persistence is used)
- Added support for more OpenAI embedding models (PR #6)
- Added support for more embedding creators/providers: (PR #10)
- Improve concurrency when adding documents to collection (PR #2)
- Rename
Client
toDB
to better indicate that the database is embedded and there's no client-server separation (PR #3) - Change OpenAPI embedding model from "text-embedding-ada-002" to "text-embedding-3-small" (PR #4)
- Allow custom base URL for OpenAI, enabling the use of Azure OpenAI, LiteLLM, ollama etc. (PR #7)
- Renamed
EmbeddingFunc
constructors to follow best practice (PR #9)
- Don't allow
nResults
arg < 0 (PR #5)
- Several function names and signatures were changed in this release. This can happen as long as the version is at
v0.x.y
.
- Added GitHub Actions config (commit)
- Added
CHANGELOG.md
(commit) - Exported embedding creation functions (commit)
- Added
Collection.AddConcurrently
to add embeddings concurrently (commit)
- Improved example code (commit)
- Removed unused field in
Client
(commit) - Improved validation in
Query
method (commit) - Added and improved Godoc (commit)
- Improved locking around a collection's documents (commit)
- Removed dependency on third party library for OpenAI (commit)
- Parallelized document querying (PR #1)
Initial release with a minimal Chroma-like interface and a working retrieval augmented generation (RAG) example.