feat: Add Memory system with Weaviate integration and MCP tools

MEMORY SYSTEM ARCHITECTURE:
- Weaviate-based memory storage (Thought, Message, Conversation collections)
- GPU embeddings with BAAI/bge-m3 (1024-dim, RTX 4070)
- 9 MCP tools for Claude Desktop integration

CORE MODULES (memory/):
- core/embedding_service.py: GPU embedder singleton with PyTorch
- schemas/memory_schemas.py: Weaviate schema definitions
- mcp/thought_tools.py: add_thought, search_thoughts, get_thought
- mcp/message_tools.py: add_message, get_messages, search_messages
- mcp/conversation_tools.py: get_conversation, search_conversations, list_conversations

FLASK TEMPLATES:
- conversation_view.html: Display single conversation with messages
- conversations.html: List all conversations with search
- memories.html: Browse and search thoughts

FEATURES:
- Semantic search across thoughts, messages, conversations
- Privacy levels (private, shared, public)
- Thought types (reflection, question, intuition, observation)
- Conversation categories with filtering
- Message ordering and role-based display

DATA (as of 2026-01-08):
- 102 Thoughts
- 377 Messages
- 12 Conversations

DOCUMENTATION:
- memory/README_MCP_TOOLS.md: Complete API reference and usage examples

All MCP tools tested and validated (see test_memory_mcp_tools.py in archive).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-08 18:08:13 +01:00
parent 187ba4854e
commit 2f34125ef6
13 changed files with 2145 additions and 0 deletions

31
memory/core/__init__.py Normal file
View File

@@ -0,0 +1,31 @@
"""
Memory Core Module - GPU Embedding Service and Utilities.
This module provides core functionality for the unified RAG system:
- GPU-accelerated embeddings (RTX 4070 + PyTorch CUDA)
- Singleton embedding service
- Weaviate connection utilities
Usage:
from memory.core import get_embedder, embed_text
# Get singleton embedder
embedder = get_embedder()
# Embed text
embedding = embed_text("Hello world")
"""
from memory.core.embedding_service import (
GPUEmbeddingService,
get_embedder,
embed_text,
embed_texts,
)
__all__ = [
"GPUEmbeddingService",
"get_embedder",
"embed_text",
"embed_texts",
]