Spaces:
Build error
Build error
Download headroom/memory/__init__.py from minhtudragon/headroom_3: direct link, hf CLI and curl.
- Browser
- Download file 11.2 kB
-
https://huggingface.co/spaces/minhtudragon/headroom_3/resolve/80f8f0d99b3eb8b3dacff157f2873ff9bad7ef51/headroom/memory/__init__.py
- Command line
-
hf download hf://spaces/minhtudragon/headroom_3@80f8f0d99b3eb8b3dacff157f2873ff9bad7ef51/headroom/memory/__init__.py
-
curl -L -o __init__.py https://huggingface.co/spaces/minhtudragon/headroom_3/resolve/80f8f0d99b3eb8b3dacff157f2873ff9bad7ef51/headroom/memory/__init__.py
11.2 kB
| """Headroom Memory - Simple, zero-config memory for AI applications. | |
| Quick Start (No Docker Required): | |
| from headroom.memory import Memory | |
| # Create memory instance - works out of the box! | |
| memory = Memory() | |
| # Save memories | |
| await memory.save("User prefers dark mode and uses Python", user_id="alice") | |
| # Search memories | |
| results = await memory.search("What programming language?", user_id="alice") | |
| for r in results: | |
| print(r.content, r.score) | |
| Production Mode (with Docker): | |
| # Start services: docker compose up -d qdrant neo4j | |
| memory = Memory(backend="qdrant-neo4j") | |
| # Same API, production-grade backends | |
| await memory.save("User works at Netflix", user_id="alice") | |
| Backends: | |
| - "local" (default): SQLite + HNSW + InMemoryGraph. No setup required. | |
| - "qdrant-neo4j": Qdrant + Neo4j. Requires Docker services. | |
| Advanced Usage - LLM Wrapper: | |
| from openai import OpenAI | |
| from headroom.memory import with_memory | |
| client = with_memory(OpenAI(), user_id="alice") | |
| response = client.chat.completions.create( | |
| model="gpt-4o", | |
| messages=[{"role": "user", "content": "I prefer Python"}] | |
| ) | |
| # Memory automatically extracted and stored! | |
| Advanced Usage - Tool-based: | |
| from openai import OpenAI | |
| from headroom.memory import with_memory_tools, LocalBackend | |
| client = with_memory_tools( | |
| OpenAI(), | |
| backend=LocalBackend(), | |
| user_id="alice", | |
| optimized=True, # LLM extracts facts/entities in ONE call | |
| ) | |
| """ | |
| # ============================================================================= | |
| # Configuration | |
| # ============================================================================= | |
| # ============================================================================= | |
| # Graph adapters | |
| # ============================================================================= | |
| from headroom.memory.adapters.graph import InMemoryGraphStore | |
| # ============================================================================= | |
| # Backend implementations (lazy imports for optional dependencies) | |
| # ============================================================================= | |
| # LocalBackend is always available (no optional dependencies) | |
| from headroom.memory.backends.local import LocalBackend, LocalBackendConfig | |
| # ============================================================================= | |
| # Memory Bridge (markdown <-> Headroom bidirectional sync) | |
| # ============================================================================= | |
| from headroom.memory.bridge import ImportStats, MemoryBridge, SyncStats | |
| from headroom.memory.bridge_config import BridgeConfig, MarkdownFormat | |
| from headroom.memory.config import ( | |
| EmbedderBackend, | |
| MemoryConfig, | |
| StoreBackend, | |
| TextBackend, | |
| VectorBackend, | |
| ) | |
| # ============================================================================= | |
| # Core orchestrator | |
| # ============================================================================= | |
| from headroom.memory.core import HierarchicalMemory | |
| # ============================================================================= | |
| # Simple API (recommended for most users) | |
| # ============================================================================= | |
| from headroom.memory.easy import Memory, MemoryResult | |
| # ============================================================================= | |
| # Factory | |
| # ============================================================================= | |
| from headroom.memory.factory import create_memory_system | |
| # ============================================================================= | |
| # Data models (internal) | |
| # ============================================================================= | |
| from headroom.memory.models import Memory as MemoryModel | |
| from headroom.memory.models import ScopeLevel | |
| # ============================================================================= | |
| # Protocol interfaces (ports) | |
| # ============================================================================= | |
| from headroom.memory.ports import ( | |
| # Core protocols | |
| Embedder, | |
| # Graph dataclasses | |
| Entity, | |
| # Graph protocol | |
| GraphStore, | |
| MemoryCache, | |
| # Filter dataclasses | |
| MemoryFilter, | |
| # Memory search result | |
| MemorySearchResult, | |
| MemoryStore, | |
| Relationship, | |
| Subgraph, | |
| TextFilter, | |
| TextIndex, | |
| # Search result dataclasses | |
| TextSearchResult, | |
| VectorFilter, | |
| VectorIndex, | |
| VectorSearchResult, | |
| ) | |
| # ============================================================================= | |
| # Memory system orchestrator | |
| # ============================================================================= | |
| from headroom.memory.system import MemoryBackend, MemorySystem | |
| # ============================================================================= | |
| # Memory tools for LLM function calling | |
| # ============================================================================= | |
| from headroom.memory.tools import ( | |
| MEMORY_TOOLS, | |
| MEMORY_TOOLS_OPTIMIZED, | |
| get_memory_tools, | |
| get_memory_tools_optimized, | |
| ) | |
| # ============================================================================= | |
| # Wrapper for LLM clients (main user-facing API) | |
| # ============================================================================= | |
| from headroom.memory.wrapper import MemoryWrapper, with_memory | |
| # ============================================================================= | |
| # Tool-based wrapper for LLM clients | |
| # ============================================================================= | |
| from headroom.memory.wrapper_tools import MemoryToolsWrapper, with_memory_tools | |
| # Lazy imports for optional backends to avoid ImportError if dependencies not installed | |
| _Mem0Backend = None | |
| _Mem0Config = None | |
| _DirectMem0Adapter = None | |
| _DirectMem0Config = None | |
| def __getattr__(name: str) -> type: | |
| """Lazy import for optional backend components.""" | |
| global _Mem0Backend, _Mem0Config, _DirectMem0Adapter, _DirectMem0Config | |
| if name == "Mem0Backend": | |
| if _Mem0Backend is None: | |
| from headroom.memory.backends.mem0 import Mem0Backend | |
| _Mem0Backend = Mem0Backend | |
| return _Mem0Backend | |
| if name == "Mem0Config": | |
| if _Mem0Config is None: | |
| from headroom.memory.backends.mem0 import Mem0Config | |
| _Mem0Config = Mem0Config | |
| return _Mem0Config | |
| if name == "DirectMem0Adapter": | |
| if _DirectMem0Adapter is None: | |
| from headroom.memory.backends.direct_mem0 import DirectMem0Adapter | |
| _DirectMem0Adapter = DirectMem0Adapter | |
| return _DirectMem0Adapter | |
| if name == "DirectMem0Config": | |
| if _DirectMem0Config is None: | |
| from headroom.memory.backends.direct_mem0 import Mem0Config as DirectMem0Config | |
| _DirectMem0Config = DirectMem0Config | |
| return _DirectMem0Config | |
| raise AttributeError(f"module {__name__!r} has no attribute {name!r}") | |
| __all__ = [ | |
| # ========================================================================= | |
| # Simple API (recommended for most users) | |
| # ========================================================================= | |
| "Memory", # Zero-config memory class | |
| "MemoryResult", # Search result dataclass | |
| # ========================================================================= | |
| # LLM Wrapper API | |
| # ========================================================================= | |
| "with_memory", | |
| "MemoryWrapper", | |
| # Tool-based wrapper | |
| "with_memory_tools", | |
| "MemoryToolsWrapper", | |
| # ========================================================================= | |
| # Core orchestrator | |
| # ========================================================================= | |
| "HierarchicalMemory", | |
| # ========================================================================= | |
| # Data models (internal) | |
| # ========================================================================= | |
| "MemoryModel", # Internal memory model (renamed from Memory) | |
| "ScopeLevel", | |
| # ========================================================================= | |
| # Protocol interfaces (ports) | |
| # ========================================================================= | |
| "MemoryStore", | |
| "VectorIndex", | |
| "TextIndex", | |
| "Embedder", | |
| "MemoryCache", | |
| "GraphStore", | |
| # ========================================================================= | |
| # Filter dataclasses | |
| # ========================================================================= | |
| "MemoryFilter", | |
| "VectorFilter", | |
| "TextFilter", | |
| # ========================================================================= | |
| # Search result dataclasses | |
| # ========================================================================= | |
| "VectorSearchResult", | |
| "TextSearchResult", | |
| "MemorySearchResult", | |
| # ========================================================================= | |
| # Graph dataclasses | |
| # ========================================================================= | |
| "Entity", | |
| "Relationship", | |
| "Subgraph", | |
| # ========================================================================= | |
| # Configuration | |
| # ========================================================================= | |
| "MemoryConfig", | |
| "StoreBackend", | |
| "VectorBackend", | |
| "TextBackend", | |
| "EmbedderBackend", | |
| # ========================================================================= | |
| # Factory | |
| # ========================================================================= | |
| "create_memory_system", | |
| # ========================================================================= | |
| # Memory tools for LLM function calling | |
| # ========================================================================= | |
| "MEMORY_TOOLS", | |
| "MEMORY_TOOLS_OPTIMIZED", | |
| "get_memory_tools", | |
| "get_memory_tools_optimized", | |
| # ========================================================================= | |
| # Memory system orchestrator | |
| # ========================================================================= | |
| "MemorySystem", | |
| "MemoryBackend", | |
| # ========================================================================= | |
| # Graph adapters | |
| # ========================================================================= | |
| "InMemoryGraphStore", | |
| # ========================================================================= | |
| # Backend implementations | |
| # ========================================================================= | |
| # Local backend (always available) | |
| "LocalBackend", | |
| "LocalBackendConfig", | |
| # Mem0 backend (optional dependencies - lazy loaded) | |
| "Mem0Backend", | |
| "Mem0Config", | |
| # DirectMem0Adapter - optimized Mem0 adapter that bypasses internal LLM calls | |
| # Use with optimized=True in with_memory_tools() for best performance | |
| "DirectMem0Adapter", | |
| "DirectMem0Config", | |
| # ========================================================================= | |
| # Memory Bridge (markdown <-> Headroom bidirectional sync) | |
| # ========================================================================= | |
| "MemoryBridge", | |
| "BridgeConfig", | |
| "MarkdownFormat", | |
| "ImportStats", | |
| "SyncStats", | |
| ] | |