BaseDataLayer class serves as an abstract foundation for data persistence operations within the Chainlit framework.
This class outlines methods for managing users, feedback, elements, steps, and threads in a chatbot application.
Methods
Fetches a user by their identifier. Return type is optionally a
PersistedUser.Creates a new user based on the
User instance provided. Return type is optionally a PersistedUser.Inserts or updates feedback. Accepts a
Feedback instance and returns a string as an identifier of the persisted feedback.Deletes a feedback by
feedback_id. Return True if it was successful.Adds a new element to the data layer. Accepts
ElementDict as an argument.Retrieves an element by
thread_id and element_id. Return type is optionally an ElementDict.Deletes an element given its identifier
element_id.Creates a new step in the data layer. Accepts
StepDict as an argument.Updates an existing step. Accepts
StepDict as an argument.Deletes a step given its identifier
step_id.Fetches the author of a given thread by
thread_id. Returns a string representing the author identifier.Deletes a thread given its identifier
thread_id.Lists threads based on
pagination and filters arguments. Returns a PaginatedResponse[ThreadDict].Retrieves a thread by its identifier
thread_id. Return type is optionally a ThreadDict.async update_thread(self, thread_id: str, name: Optional[str] = None, user_id: Optional[str] = None, metadata: Optional[Dict] = None, tags: Optional[List[str]] = None)
Coroutine
Updates a thread’s details like name, user_id, metadata, and tags. Arguments are mostly optional.
Deletes a user session given its identifier
id. Returns a boolean value indicating success.Decorators
Queues certain methods to execute only after the first user message is received, especially useful for
WebsocketSessions.Example
Due to the abstract nature ofBaseDataLayer, direct instantiation and usage are not practical without subclassing and implementing the abstract methods.
You can refer to the guide for custom data layer implementation.