Introduction
# Memory Baidu Embedding DB - Semantic Memory for Clawdbot
**Vector-Based Memory Storage and Retrieval Using Baidu Embedding Technology**
A semantic memory system for Clawdbot that uses Baidu's Embedding-V1 model to store and retrieve memories based on meaning rather than keywords. Designed as a secure, locally-stored replacement for traditional vector databases like LanceDB.
## 🚀 Features
- **Semantic Memory Search** - Find memories based on meaning, not just keywords - **Baidu Embedding Integration** - Uses Baidu's powerful Embedding-V1 model - **SQLite Persistence** - Local, secure storage without external dependencies - **Zero Data Leakage** - All processing happens locally with your API credentials - **Flexible Tagging System** - Organize memories with custom tags and metadata - **High Performance** - Optimized vector similarity calculations - **Easy Migration** - Drop-in replacement for memory-lancedb systems
## 🎯 Use Cases
- **Conversational Context** - Remember user preferences and conversation history - **Knowledge Management** - Store and retrieve information semantically - **Personalization** - Maintain user-specific settings and preferences - **Information Retrieval** - Find related information based on meaning - **Data Organization** - Structure memories with tags and metadata
## 📋 Requirements
- Clawdbot installation - Baidu Qianfan API credentials (API Key and Secret Key) - Python 3.8+ - Internet connection for initial API calls
## 🛠️ Installation
### Manual Installation
1. Place the skill files in your `~/clawd/skills/` directory 2. Install dependencies (if any Python packages are needed) 3. Configure your Baidu API credentials
### Configuration
Set environment variables: ```bash export BAIDU_API_STRING='${BAIDU_API_STRING}' export BAIDU_SECRET_KEY='${BAIDU_SECRET_KEY}' ```
## 🚀 Usage Examples
### Basic Usage ```python from memory_baidu_embedding_db import MemoryBaiduEmbeddingDB
# Initialize the memory system memory_db = MemoryBaiduEmbeddingDB()
# Add a memory memory_db.add_memory( content="The user prefers concise responses and enjoys technical discussions", tags=["user-preference", "communication-style"], metadata={"importance": "high"} )
# Search for related memories using natural language related_memories = memory_db.search_memories("What does the user prefer?", limit=3) ```
### Advanced Usage ```python # Add multiple memories with rich metadata memory_db.add_memory( content="User's favorite programming languages are Python and JavaScript", tags=["tech-preference", "programming"], metadata={"confidence": 0.95, "source": "conversation-2026-01-30"} )
# Search with tag filtering filtered_memories = memory_db.search_memories( query="programming languages", tags=["tech-preference"], limit=5 ) ```
## 🔧 Integration
This skill integrates seamlessly with Clawdbot's memory system as a drop-in replacement for memory-lancedb. Simply update your configuration to use this memory system instead of the traditional one.
## 📊 Performance
- **Vector Dimension**: 384 (Baidu Embedding-V1 output) - **Storage**: SQLite database (~1MB per 1000 memories) - **Search Speed**: ~50ms for 1000 memories (on typical hardware) - **API Latency**: Depends on Baidu API response time (typically <500ms)
## 🔐 Security
- **Local Storage**: All memories stored in local SQLite database - **Encrypted API Keys**: Credentials stored securely in environment variables - **No External Sharing**: Memories never leave your system - **Selective Access**: Granular control over what gets stored
## 🔄 Migration from memory-lancedb
1. **Install this skill** in your `skills/` directory 2. **Configure your Baidu API credentials** 3. **Initialize the new system** 4. **Update your bot configuration** to use the new memory system 5. **Verify data integrity** and performance
## 🤝 Contributing
We welcome contributions! Feel free to submit issues, feature requests, or pull requests to improve this skill.