MCPcopy Create free account
hub / github.com/modelcontextprotocol/go-sdk / loadGraph

Method loadGraph

examples/server/memory/kb.go:114–149  ·  view source on GitHub ↗

loadGraph deserializes the knowledge graph from storage.

()

Source from the content-addressed store, hash-verified

112
113// loadGraph deserializes the knowledge graph from storage.
114func (k knowledgeBase) loadGraph() (KnowledgeGraph, error) {
115 data, err := k.s.Read()
116 if err != nil {
117 return KnowledgeGraph{}, fmt.Errorf("failed to read from store: %w", err)
118 }
119
120 if len(data) == 0 {
121 return KnowledgeGraph{}, nil
122 }
123
124 var items []kbItem
125 if err := json.Unmarshal(data, &items); err != nil {
126 return KnowledgeGraph{}, fmt.Errorf("failed to unmarshal from store: %w", err)
127 }
128
129 graph := KnowledgeGraph{}
130
131 for _, item := range items {
132 switch item.Type {
133 case "entity":
134 graph.Entities = append(graph.Entities, Entity{
135 Name: item.Name,
136 EntityType: item.EntityType,
137 Observations: item.Observations,
138 })
139 case "relation":
140 graph.Relations = append(graph.Relations, Relation{
141 From: item.From,
142 To: item.To,
143 RelationType: item.RelationType,
144 })
145 }
146 }
147
148 return graph, nil
149}
150
151// saveGraph serializes and persists the knowledge graph to storage.
152func (k knowledgeBase) saveGraph(graph KnowledgeGraph) error {

Callers 11

TestSaveAndLoadGraphFunction · 0.95
createEntitiesMethod · 0.95
createRelationsMethod · 0.95
addObservationsMethod · 0.95
deleteEntitiesMethod · 0.95
deleteObservationsMethod · 0.95
deleteRelationsMethod · 0.95
searchNodesMethod · 0.95
openNodesMethod · 0.95
ReadGraphMethod · 0.95

Calls 1

ReadMethod · 0.65

Tested by 2

TestSaveAndLoadGraphFunction · 0.76