mdb-engine 0.2.3__py3-none-any.whl → 0.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,6 +10,8 @@ Mem0.ai integration for intelligent memory management in MDB_ENGINE applications
10
10
  - **Semantic Search**: Vector-based semantic memory search
11
11
  - **Memory Inference**: Optional LLM-based memory inference and summarization
12
12
  - **Graph Memory**: Optional graph-based memory relationships (requires graph store config)
13
+ - **Bucket Organization**: Built-in support for organizing memories into buckets (general, file, conversation, etc.)
14
+ - **Dual Storage**: Store both extracted facts AND raw content for richer context retrieval
13
15
 
14
16
  ## Installation
15
17
 
@@ -203,6 +205,92 @@ await memory_service.delete(memory_id="memory_123", user_id="user123")
203
205
  await memory_service.delete_all(user_id="user123")
204
206
  ```
205
207
 
208
+ ### Bucket Organization
209
+
210
+ Organize memories into buckets for better management:
211
+
212
+ ```python
213
+ # Add memory to a bucket
214
+ memory = await memory_service.add(
215
+ messages=[{"role": "user", "content": "I love Python programming"}],
216
+ user_id="user123",
217
+ bucket_id="coding:user123",
218
+ bucket_type="general",
219
+ metadata={"category": "coding"}
220
+ )
221
+
222
+ # Get all buckets for a user
223
+ buckets = await memory_service.get_buckets(user_id="user123")
224
+
225
+ # Get only file buckets
226
+ file_buckets = await memory_service.get_buckets(
227
+ user_id="user123",
228
+ bucket_type="file"
229
+ )
230
+
231
+ # Get all memories in a specific bucket
232
+ bucket_memories = await memory_service.get_bucket_memories(
233
+ bucket_id="file:document.pdf:user123",
234
+ user_id="user123"
235
+ )
236
+ ```
237
+
238
+ ### Store Both Facts and Raw Content
239
+
240
+ Store extracted facts alongside raw content for richer context:
241
+
242
+ ```python
243
+ # Store both extracted facts and raw content
244
+ facts, raw_memory_id = await memory_service.add_with_raw_content(
245
+ messages=[{"role": "user", "content": "Extract key facts from this document..."}],
246
+ raw_content="Full document text here...",
247
+ user_id="user123",
248
+ bucket_id="file:document.pdf:user123",
249
+ bucket_type="file",
250
+ infer=True # Extract facts
251
+ )
252
+
253
+ # Later, retrieve raw content when needed
254
+ raw_content = await memory_service.get_raw_content(
255
+ bucket_id="file:document.pdf:user123",
256
+ user_id="user123"
257
+ )
258
+
259
+ # Or include raw content when getting bucket memories
260
+ all_memories = await memory_service.get_bucket_memories(
261
+ bucket_id="file:document.pdf:user123",
262
+ user_id="user123",
263
+ include_raw_content=True
264
+ )
265
+ ```
266
+
267
+ ### Bucket Types
268
+
269
+ Common bucket types:
270
+ - **`general`**: General purpose buckets (e.g., category-based)
271
+ - **`file`**: File-specific buckets (one per uploaded file)
272
+ - **`conversation`**: Conversation-specific buckets
273
+ - **`user`**: User-level buckets
274
+
275
+ ```python
276
+ # General bucket (category-based)
277
+ await memory_service.add(
278
+ messages=[{"role": "user", "content": "I prefer dark mode"}],
279
+ user_id="user123",
280
+ bucket_id="preferences:user123",
281
+ bucket_type="general"
282
+ )
283
+
284
+ # File bucket
285
+ await memory_service.add(
286
+ messages=[{"role": "user", "content": "Document content..."}],
287
+ user_id="user123",
288
+ bucket_id="file:report.pdf:user123",
289
+ bucket_type="file",
290
+ metadata={"filename": "report.pdf"}
291
+ )
292
+ ```
293
+
206
294
  ### Memory Inference
207
295
 
208
296
  With `infer=True`, the service can generate insights and summaries:
@@ -241,8 +329,11 @@ Mem0MemoryService(
241
329
 
242
330
  #### Methods
243
331
 
244
- - `add(messages, user_id, metadata=None)` - Add single memory
245
- - `add_all(memories)` - Add multiple memories
332
+ - `add(messages, user_id, metadata=None, bucket_id=None, bucket_type=None, store_raw_content=False, raw_content=None)` - Add single memory with optional bucket and raw content storage
333
+ - `add_with_raw_content(messages, raw_content, user_id, bucket_id=None, bucket_type=None)` - Store both extracted facts and raw content
334
+ - `get_buckets(user_id, bucket_type=None, limit=None)` - Get all buckets for a user
335
+ - `get_bucket_memories(bucket_id, user_id, include_raw_content=False, limit=None)` - Get all memories in a bucket
336
+ - `get_raw_content(bucket_id, user_id)` - Get raw content for a bucket
246
337
  - `search(query, user_id, limit=10, filters=None)` - Search memories
247
338
  - `get(memory_id, user_id)` - Get specific memory
248
339
  - `get_all(user_id, filters=None)` - Get all memories for user