feat(social): conversation topic memory (Issue #299) #304
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-jetson/issue-299-topic-memory"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
topic_memory_nodetosaltybot_social/social/conversation_text(String, JSON{person_id, text})max_keywords_per_msgPersonTopicMemory: ordered rolling list, dedup with recency promotion (duplicates move to front), capped atmax_topics_per_person, evicts oldest when fullprune_after_s(default 30 min; 0 = disabled)/saltybot/conversation_topicson each incoming utterance:{"person_id": "alice", "recent_topics": [...], "new_topics": [...], "ts": ...}recent_topics(most-recent first) can answer "last time you mentioned X"Files
saltybot_social/topic_memory_node.py—extract_keywords+PersonTopicMemory+TopicMemoryNodeconfig/topic_memory_params.yaml— defaultslaunch/topic_memory.launch.py— launch with key argstest/test_topic_memory.py— 71 testssetup.py—topic_memory_nodeentry point addedCloses #299
Adds topic_memory_node to saltybot_social: - Subscribes /social/conversation_text (String, JSON {person_id, text}) - Extracts keywords via stop-word filtered pipeline: lowercase -> strip punctuation -> filter length/alpha -> remove stop words -> deduplicate -> cap at max_keywords_per_msg - Maintains per-person rolling topic history (PersonTopicMemory): ordered list, dedup with recency promotion, capped at max_topics_per_person, evicts oldest when full - Prunes persons idle for > prune_after_s (default 30 min; 0=disabled) - Publishes JSON on /saltybot/conversation_topics on each utterance: {person_id, recent_topics (most-recent first), new_topics, ts} - Enables recall like 'last time you mentioned X' - 71/71 tests passing Closes #299