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

Method detectDuplicates

pkg/memory/quality_analyzer.go:148–171  ·  view source on GitHub ↗

detectDuplicates 检测重复记忆

(memories []MemoryWithScore)

Source from the content-addressed store, hash-verified

146
147// detectDuplicates 检测重复记忆
148func (qa *QualityAnalyzer) detectDuplicates(memories []MemoryWithScore) []Inconsistency {
149 inconsistencies := []Inconsistency{}
150
151 for i := range memories {
152 for j := i + 1; j < len(memories); j++ {
153 similarity := qa.calculateSimilarity(memories[i].Text, memories[j].Text)
154
155 // 相似度 > 0.9 认为是重复
156 if similarity > 0.9 {
157 inconsistencies = append(inconsistencies, Inconsistency{
158 Type: InconsistencyDuplicate,
159 MemoryID1: memories[i].DocID,
160 MemoryID2: memories[j].DocID,
161 Description: fmt.Sprintf("记忆高度重复(相似度: %.2f):'%s'",
162 similarity, truncate(memories[i].Text, 50)),
163 Severity: similarity,
164 DetectedAt: time.Now(),
165 })
166 }
167 }
168 }
169
170 return inconsistencies
171}
172
173// detectOutdated 检测过时信息
174func (qa *QualityAnalyzer) detectOutdated(memories []MemoryWithScore) []Inconsistency {

Callers 2

TestDetectDuplicatesFunction · 0.95
DetectInconsistenciesMethod · 0.95

Calls 2

calculateSimilarityMethod · 0.95
truncateFunction · 0.70

Tested by 1

TestDetectDuplicatesFunction · 0.76