MCPcopy Create free account
hub / github.com/astercloud/aster / eventProcessingExample

Function eventProcessingExample

examples/logic-memory/main.go:131–175  ·  view source on GitHub ↗

eventProcessingExample demonstrates automatic memory capture from events

(ctx context.Context)

Source from the content-addressed store, hash-verified

129
130// eventProcessingExample demonstrates automatic memory capture from events
131func eventProcessingExample(ctx context.Context) {
132 fmt.Println("--- Example 2: Event Processing ---")
133
134 store := logic.NewInMemoryStore()
135
136 // Create a custom PatternMatcher
137 matcher := &WritingPatternMatcher{}
138
139 manager, err := logic.NewManager(&logic.ManagerConfig{
140 Store: store,
141 Matchers: []logic.PatternMatcher{matcher},
142 })
143 if err != nil {
144 log.Fatalf("Failed to create manager: %v", err)
145 }
146 defer func() { _ = manager.Close() }()
147
148 // Simulate a user revision event (user edited AI-generated content)
149 event := logic.Event{
150 Type: "user_revision",
151 Source: "user:bob",
152 Data: map[string]any{
153 "original": "However, this approach has several disadvantages.",
154 "revised": "But this approach has some problems.",
155 },
156 Timestamp: time.Now(),
157 }
158
159 // Process the event - PatternMatcher will identify patterns
160 err = manager.ProcessEvent(ctx, event)
161 if err != nil {
162 log.Fatalf("Failed to process event: %v", err)
163 }
164 fmt.Println("Processed user_revision event")
165
166 // Check if any memories were created
167 memories, _ := manager.RetrieveMemories(ctx, "user:bob")
168 fmt.Printf("Created %d memories from event\n", len(memories))
169 for _, m := range memories {
170 fmt.Printf(" - %s: %s (%.0f%% confidence)\n",
171 m.Key, m.Description, m.Provenance.Confidence*100)
172 }
173
174 fmt.Println()
175}
176
177// WritingPatternMatcher is a custom PatternMatcher for detecting writing preferences
178type WritingPatternMatcher struct{}

Callers 1

mainFunction · 0.85

Calls 6

CloseMethod · 0.95
ProcessEventMethod · 0.95
RetrieveMemoriesMethod · 0.95
NewInMemoryStoreFunction · 0.92
NewManagerFunction · 0.92
PrintfMethod · 0.80

Tested by

no test coverage detected