DeleteMemoryWithLineage 删除记忆及其派生记忆。
(ctx context.Context, memoryID string, cascade bool)
| 336 | |
| 337 | // DeleteMemoryWithLineage 删除记忆及其派生记忆。 |
| 338 | func (sm *SemanticMemory) DeleteMemoryWithLineage(ctx context.Context, memoryID string, cascade bool) error { |
| 339 | if !sm.cfg.EnableProvenance || sm.cfg.LineageManager == nil { |
| 340 | // 直接删除 |
| 341 | return sm.cfg.Store.Delete(ctx, []string{memoryID}) |
| 342 | } |
| 343 | |
| 344 | // 获取需要删除的记忆列表 |
| 345 | deletedIDs, err := sm.cfg.LineageManager.DeleteMemoryWithLineage(ctx, memoryID, cascade) |
| 346 | if err != nil { |
| 347 | return fmt.Errorf("delete lineage: %w", err) |
| 348 | } |
| 349 | |
| 350 | // 从向量存储中删除 |
| 351 | if len(deletedIDs) > 0 { |
| 352 | return sm.cfg.Store.Delete(ctx, deletedIDs) |
| 353 | } |
| 354 | |
| 355 | return nil |
| 356 | } |
| 357 | |
| 358 | // GetMemoryProvenance 获取记忆的溯源信息。 |
| 359 | // 这需要先检索记忆,然后提取 Provenance。 |