架构概述
Graph Memory 与 Mem0 的向量存储一起作为并行存储系统运行,自动从对话数据中提取实体和关系并将其存储在图形数据库中。该系统使用 LLM 进行实体提取和关系建立,然后将结构化数据存储在支持的图形数据库中。
系统集成

核心组件
MemoryGraph 类
MemoryGraph 类充当图形作的主要接口,具有针对不同图形数据库的特定于提供商的实现。

实体提取工具
该系统使用结构化的 LLM 工具从自然语言输入中提取实体并建立关系。
| 工具 | 目的 | 输入 | 输出 |
|---|---|---|---|
| EXTRACT_ENTITIES_TOOL | 从文本中提取实体和类型 | 自然语言文本 | 具有类型的实体列表 |
| RELATIONS_TOOL | 建立实体之间的关系 | 文本和实体列表 | 源-关系-目标三元组列表 |
| DELETE_MEMORY_TOOL_GRAPH | 确定要删除的关系 | 现有关系和新文本 | 要删除的关系 |
实体提取和关系管理
提取管道
图存储系统遵循多阶段流水线,将自然语言转换为结构化图数据。

实体解析和嵌入相似性
系统使用嵌入相似性来合并相似的实体并避免重复:

图作
核心业务
MemoryGraph 类提供了四个与主 Memory 类集成的主要作:
添加作
add() 方法处理新的对话数据并更新图表:
# From mem0/memory/graph_memory.py:75-93
def add(self, data, filters):
entity_type_map = self._retrieve_nodes_from_data(data, filters)
to_be_added = self._establish_nodes_relations_from_data(data, filters, entity_type_map)
search_output = self._search_graph_db(node_list=list(entity_type_map.keys()), filters=filters)
to_be_deleted = self._get_delete_entities_from_search_output(search_output, data, filters)
deleted_entities = self._delete_entities(to_be_deleted, filters)
added_entities = self._add_entities(to_be_added, filters, entity_type_map)
return {
"deleted_entities": deleted_entities, "added_entities": added_entities}

最低0.47元/天 解锁文章
2119

被折叠的 条评论
为什么被折叠?



