From 0d8c23a3c28b76ca6b1282a111dbbedcde73b6d7 Mon Sep 17 00:00:00 2001 From: 666ghj <670939375@qq.com> Date: Wed, 22 Jul 2026 20:08:18 +0800 Subject: [PATCH] fix: use the supported Zep node-edge method --- backend/app/services/zep_entity_reader.py | 3 +- backend/tests/test_zep_entity_reader_edges.py | 44 +++++++++++++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 backend/tests/test_zep_entity_reader_edges.py diff --git a/backend/app/services/zep_entity_reader.py b/backend/app/services/zep_entity_reader.py index 71661be4..d94c6c3f 100644 --- a/backend/app/services/zep_entity_reader.py +++ b/backend/app/services/zep_entity_reader.py @@ -192,7 +192,7 @@ class ZepEntityReader: try: # 使用重试机制调用Zep API edges = self._call_with_retry( - func=lambda: self.client.graph.node.get_entity_edges(node_uuid=node_uuid), + func=lambda: self.client.graph.node.get_edges(node_uuid=node_uuid), operation_name=f"获取节点边(node={node_uuid[:8]}...)" ) @@ -434,4 +434,3 @@ class ZepEntityReader: ) return result.entities - diff --git a/backend/tests/test_zep_entity_reader_edges.py b/backend/tests/test_zep_entity_reader_edges.py new file mode 100644 index 00000000..af5a09cd --- /dev/null +++ b/backend/tests/test_zep_entity_reader_edges.py @@ -0,0 +1,44 @@ +from types import SimpleNamespace + +from app.services.zep_entity_reader import ZepEntityReader +from zep_cloud.graph.node.client import NodeClient + + +def test_pinned_zep_sdk_exposes_get_edges_not_get_entity_edges(): + assert hasattr(NodeClient, "get_edges") + assert not hasattr(NodeClient, "get_entity_edges") + + +def test_get_node_edges_uses_the_supported_sdk_method(): + calls = [] + + class NodeApi: + def get_edges(self, *, node_uuid): + calls.append(node_uuid) + return [SimpleNamespace( + uuid_="edge-1", + name="KNOWS", + fact="Alice knows Bob", + source_node_uuid="node-1", + target_node_uuid="node-2", + attributes={"since": "2024"}, + )] + + class GraphApi: + node = NodeApi() + + class Client: + graph = GraphApi() + + reader = object.__new__(ZepEntityReader) + reader.client = Client() + + assert reader.get_node_edges("node-1") == [{ + "uuid": "edge-1", + "name": "KNOWS", + "fact": "Alice knows Bob", + "source_node_uuid": "node-1", + "target_node_uuid": "node-2", + "attributes": {"since": "2024"}, + }] + assert calls == ["node-1"]