Context (and context dict) serialization updated#419
Open
Conversation
# Changelog ## Breaking Changes - Dropped support for python 3.8; added support for python 3.12 (#400); - Reworked DB architecture to support partials turn reads/writes (#93). Old Context storages are incompatible with the new ones. See tutorial Context Storages: 8 for more info; - `Context.labels`, `Context.requests`, `Context.responses` are now only lazily loaded (#93). Items from older turns can be loaded on demand. Their `__getitem__` and `get` methods are now async. ## Features - Added `LLMResponse` and `LLMCondition` classes that allow using LLMs (#376). See the new LLM Integration tutorials and LLM user guide for more info; - Added option to extract group slots partially (#394). See tutorial Slots: 2 for more information; - `Message.original_message` is replaced with `Message.origin` which stores both the original message and the interface from which the message originated (#398); - Added `Context.current_turn_id` field which stores the number of the current turn (#93); - Added `Context.created_at`, `Context.updated_at` timestamp fields (#93); - Added `Context.turns` property which allows iterating over requests/labels/responses by their turn ids (#93); - `Context.labels`, `Context.requests`, `Context.responses` now support slicing (#93). `__getitem__`, `__setitem__` and `__delitem__` methods can now accept slices of turn ids in addition to single turn id. `get` method can now accepts iterable of turn ids in addition to single turn id. ## Documentation - Documentation is now versioned (#346, #409). You can select preferred version via the drop-down menu in the top-right corner. ## Developer changes - Context now has field `origin_interface` to store name of the interface that created it (#398); - Added script `docs_no_docker` for building documentation without docker (ef11ff9); - Added in-RAM context storage to be the default one instead of a plain dict (#93); - Removed methods `Context.add_request`, `Context.add_label` and `Context.add_response` (#93). Use setters with `Context.current_turn_id` instead.
There was a problem hiding this comment.
It appears this PR is a release PR (change its base from master if that is not the case).
Here's a release checklist:
- Update package version
- Update
poetry.lock - Change PR merge option
- Update template repo
- Search for objects to be deprecated
- Test parts not covered with pytest:
- web_api tutorials
- Test integrations with external services (telegram; stats)
added 22 commits
February 19, 2025 00:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Context (and context dict) serialization updated.
Checklist
To Consider
.ignorefiles, scripts (such aslint), distribution manifest (if files are added/deleted)