Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: reimplement core parts of cbrkit #222

Closed
wants to merge 265 commits into from
Closed

feat: reimplement core parts of cbrkit #222

wants to merge 265 commits into from

Conversation

mirkolenz
Copy link
Member

Over the past months, almost everything in CBRkit has been reworked to be more modular. We also implemented many new features. While breaking changes will still happen in the future, we want to integrate these changes into the main branch and come back to more regular releases of the library.

mirkolenz and others added 30 commits January 31, 2025 10:54
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
mirkolenz and others added 28 commits January 31, 2025 10:54
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Mirko Lenz <[email protected]>
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/88a55dffa4d44d294c74c298daf75824dc0aafb5?narHash=sha256-8Eo/jRAgT3CbAloyqOj6uPN1EqBvLI/Tv2g%2BRxHjkhU%3D' (2025-01-27)
  → 'github:nixos/nixpkgs/9a5db3142ce450045840cc8d832b13b8a2018e0c?narHash=sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw%3D' (2025-01-29)
• Updated input 'pyproject-nix':
    'github:pyproject-nix/pyproject.nix/78ea10a115be7b7ae45b241d06392e014988a162?narHash=sha256-MpPHyTCrI7dpiRgzZTH7PEMLZCvI2Dc3iOr4GSaQ/II%3D' (2025-01-26)
  → 'github:pyproject-nix/pyproject.nix/0d9f4b90cee1b5c5d6c142ef22de1e246e003ccc?narHash=sha256-J5M2sj3x4ocM93shScT/3Z4XWHZhwwW1NyQK%2BC%2B8Mys%3D' (2025-01-30)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/f2cc121df15418d028a59c9737d38e3a90fbaf8f?narHash=sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo%3D' (2025-01-21)
  → 'github:numtide/treefmt-nix/bebf27d00f7d10ba75332a0541ac43676985dea3?narHash=sha256-j6jC12vCFsTGDmY2u1H12lMr62fnclNjuCtAdF1a4Nk%3D' (2025-01-28)
• Updated input 'uv2nix':
    'github:pyproject-nix/uv2nix/e47ec890012166425d1f90fb825eff208baaef4b?narHash=sha256-dC7J0Rua2UhP%2BEKlJY3jjQLzgzBnOo1iK/d2aIN0hAs%3D' (2025-01-24)
  → 'github:pyproject-nix/uv2nix/fd41fdec2fed599ba884bc2706c2263f01e2183c?narHash=sha256-Lwb86tkHoeJdjYaAHYZPkUZJoWXNHb5IQjzDyd4Vxno%3D' (2025-01-30)
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/b905f6fc23a9051a6e1b741e1438dbfc0634c6de?narHash=sha256-%2Bhu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU%3D' (2025-01-06)
  → 'github:hercules-ci/flake-parts/32ea77a06711b758da0ad9bd6a844c5740a87abd?narHash=sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm%2BzmZ7vxbJdo%3D' (2025-02-01)
• Updated input 'flake-parts/nixpkgs-lib':
    'https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz?narHash=sha256-CewEm1o2eVAnoqb6Ml%2BQi9Gg/EfNAxbRx1lANGVyoLI%3D' (2025-01-01)
  → 'https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz?narHash=sha256-vJzFZGaCpnmo7I6i416HaBLpC%2BhvcURh/BQwROcGIp8%3D' (2025-02-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9a5db3142ce450045840cc8d832b13b8a2018e0c?narHash=sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw%3D' (2025-01-29)
  → 'github:nixos/nixpkgs/102a39bfee444533e6b4e8611d7e92aa39b7bec1?narHash=sha256-Q4vhtbLYWBUnjWD4iQb003Lt%2BN5PuURDad1BngGKdUs%3D' (2025-02-01)
NOTABLE CHANGE: The entire library has largely been rewritten, so there will be additional breaking changes. Please refer to the Readme and the tests for more information.

NOTABLE CHANGE: The function `cbrkit.reuse.build` now expects a retriever function instead of a similarity function so that more logic can be shared between the phases.

NOTABLE CHANGE: To better support the new retrieval functions, the arguments `limit`, `min_similarity`, and `max_similarity` of the function `cbrkit.retrieval.build` have been removed. Instead, wrap your call of `cbrkit.retrieval.build` with the new function `cbrkit.retrieval.dropout` that now exposes these arguments.

NOTABLE CHANGE: The functions `apply` and `mapply` have been removed to better support processing multiple queries at once. They have been replaced by the functions `apply_query` and `apply_queries`. Both return the same result object, so the return value of `apply_queries` is not identical to the one of the previous `mapply` function. The functions `apply` and `apply_query` however share the same return type.

NOTABLE CHANGE: The number of processes to use for retrieval is no longer passed to the `apply` functions, but instead given to the `build` function.

NOTABLE CHANGE: To better support the new retrieval functions, the arguments `limit`, `min_similarity`, and `max_similarity` of the function `cbrkit.retrieval.build` have been removed. Instead, wrap your call of `cbrkit.retrieval.build` with the new function `cbrkit.retrieval.dropout` that now exposes these arguments.

NOTABLE CHANGE: CBRkit now provides additional modules for `adapt`, `reuse`, `cycle`, and `eval`.

NOTABLE CHANGE: We added support for logging via the standard library.

NOTABLE CHANGE: There is a new `synthesis` module that provides tight integration with various LLM providers. This can for instance be used to develop RAG applications using CBR.

NOTABLE CHANGE: Loading and dumping cases has been reworked, we now provide generators to construct serialization and deserialization functions.

NOTABLE CHANGE: Caching of similarity values has been added, simply wrap your existing similarity function with the new `cbrkit.sim.cache` wrapper.

NOTABLE CHANGE: A new embedding module `cbrkit.sim.embed` has been added that provides a better interface to compose string-based similarity functions that rely on vectors. It also includes a cache that can be stored on disk.

NOTABLE CHANGE: Similarity functions for graphs have been overhauled and now provide a more consistent interface.
@mirkolenz
Copy link
Member Author

This will be merged locally instead

@mirkolenz mirkolenz closed this Feb 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants