【大模型记忆-Mem0详解-6】核心组件-图形记忆

架构概述

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}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

df007df

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值