-
Notifications
You must be signed in to change notification settings - Fork 182
Open
Description
mem0图关系查询测试demo
目标
创建一个完整的mem0测试演示程序,实现图关系的存储、查询和可视化输出功能。
功能需求
1. 基础功能
- 使用mem0库建立知识图谱存储
- 实现实体和关系的添加功能
- 实现基于图结构的查询功能
- 支持多种查询模式(节点查询、关系查询、路径查询)
2. 数据模型
- 定义实体类型(人物、组织、地点、概念等)
- 定义关系类型(工作于、位于、属于、相关等)
- 支持属性存储(时间、权重、描述等)
3. 查询功能
- 单节点查询:根据实体ID或名称查询
- 关系查询:查询两个实体间的关系
- 邻居查询:查询指定实体的所有相关实体
- 路径查询:查询两个实体间的最短路径
- 子图查询:根据条件提取子图
4. 输出功能
- 文本格式输出(JSON、表格)
- 图形可视化输出(使用networkx + matplotlib)
- 交互式图形界面(可选:使用plotly或pyvis)
5. 测试数据
创建包含以下关系的测试数据集:
- 人物关系网络
- 公司组织架构
- 地理位置关系
- 知识概念图谱
技术栈
- mem0: 核心记忆存储
- networkx: 图数据结构和算法
- matplotlib/plotly: 图形可视化
- pandas: 数据处理
- json: 数据序列化
文件结构
mem0_graph_demo/
├── main.py # 主程序入口
├── graph_manager.py # 图管理器
├── query_engine.py # 查询引擎
├── visualizer.py # 可视化模块
├── test_data.py # 测试数据生成
├── requirements.txt # 依赖包
└── README.md # 使用说明
示例用法
# 创建图管理器
graph = GraphManager()
# 添加实体和关系
graph.add_entity("张三", "人物", {"年龄": 30, "职业": "工程师"})
graph.add_relation("张三", "工作于", "ABC公司")
# 查询功能
result = graph.query_neighbors("张三")
path = graph.find_path("张三", "李四")
# 可视化输出
visualizer = GraphVisualizer(graph)
visualizer.show_graph()验收标准
- 能够成功存储和检索图关系数据
- 查询功能正确返回预期结果
- 可视化输出清晰易读
- 代码结构清晰,有完整的文档
- 包含完整的测试用例
Metadata
Metadata
Assignees
Labels
No labels