Conversation
4034c7c to
9652338
Compare
5de67f6 to
3c07ca9
Compare
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.
PR: Integrate Chat Store as Embabel's Conversation Persistence Layer
BLUF: Moves conversation storage abstractions from embabel-agent into embabel-chat-store, establishing chat-store as the canonical persistence layer. Embabel-agent now depends on chat-store for conversation storage - either in-memory or Neo4j, with other backends possible in future.
What Moved
From embabel-agent → embabel-chat-store:
InMemoryConversation- simple in-memory storageInMemoryAssetTracker- asset tracking for conversationsMessageAuthorinterface - author identity abstractionConversationFactory/ConversationFactoryProvider- pluggable storage backendsNew in chat-store:
StoredConversation- Neo4j-backed conversation with async persistenceStoredConversationFactory- factory for persistent conversationsInMemoryConversationFactory- factory for ephemeral conversationsEventPublishingConversation- decorator for message lifecycle eventsTitleGenerator- auto-generate session titles from first messageStorage Architecture
Apps select storage via
ConversationStoreType.IN_MEMORYorConversationStoreType.STORED.Fluent API
Access conversation factories within action methods:
For infrastructure code outside actions, inject ConversationFactoryProvider via Spring DI.
Autoconfiguration
New embabel-agent-chatstore-autoconfigure module:
Message Events
Events enable real-time UI updates (WebSocket):
Events include fromUserId, toUserId, and title for routing and display.
Message Attribution
Messages have explicit from (author) and to (recipient):
Write Path vs Read Path
Documentation
Updated chatbots guide with conversation storage section, fluent API examples, autoconfiguration details, title generation strategies, and getting
started with Neo4j.
Version
embabel-agent: 0.3.3-SNAPSHOT → 0.3.4-SNAPSHOT