RemoveMemory 从谱系图中移除记忆。
(memoryID string)
| 133 | |
| 134 | // RemoveMemory 从谱系图中移除记忆。 |
| 135 | func (lg *LineageGraph) RemoveMemory(memoryID string) { |
| 136 | lg.mu.Lock() |
| 137 | defer lg.mu.Unlock() |
| 138 | |
| 139 | // 移除元数据 |
| 140 | delete(lg.memoryMetadata, memoryID) |
| 141 | |
| 142 | // 移除父子关系:从所有子节点的父列表中删除此节点 |
| 143 | children := lg.parentToChildren[memoryID] |
| 144 | for _, child := range children { |
| 145 | lg.childToParents[child] = lg.removeFromSlice(lg.childToParents[child], memoryID) |
| 146 | } |
| 147 | delete(lg.parentToChildren, memoryID) |
| 148 | |
| 149 | // 移除子父关系:从所有父节点的子列表中删除此节点 |
| 150 | parents := lg.childToParents[memoryID] |
| 151 | for _, parent := range parents { |
| 152 | lg.parentToChildren[parent] = lg.removeFromSlice(lg.parentToChildren[parent], memoryID) |
| 153 | } |
| 154 | delete(lg.childToParents, memoryID) |
| 155 | } |
| 156 | |
| 157 | // removeFromSlice 从切片中移除指定值,返回新切片。 |
| 158 | func (lg *LineageGraph) removeFromSlice(slice []string, value string) []string { |