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

Method GenerateReport

pkg/memory/quality_analyzer.go:300–384  ·  view source on GitHub ↗

GenerateReport 生成质量报告

(
	ctx context.Context,
	memories []MemoryWithScore,
)

Source from the content-addressed store, hash-verified

298
299// GenerateReport 生成质量报告
300func (qa *QualityAnalyzer) GenerateReport(
301 ctx context.Context,
302 memories []MemoryWithScore,
303) (*QualityReport, error) {
304 report := &QualityReport{
305 GeneratedAt: time.Now(),
306 DimensionScores: make(map[QualityDimension]float64),
307 InconsistencyCount: make(map[InconsistencyType]int),
308 }
309
310 // 获取统计信息
311 report.Stats = qa.metrics.GetStats()
312
313 // 计算各维度平均分数
314 dimensionTotals := make(map[QualityDimension]float64)
315 dimensionCounts := make(map[QualityDimension]int)
316
317 for _, quality := range qa.metrics.GetAll() {
318 dimensionTotals[QualityAccuracy] += quality.Score.Accuracy
319 dimensionTotals[QualityCompleteness] += quality.Score.Completeness
320 dimensionTotals[QualityConsistency] += quality.Score.Consistency
321 dimensionTotals[QualityTimeliness] += quality.Score.Timeliness
322 dimensionTotals[QualityRelevance] += quality.Score.Relevance
323
324 for dim := range dimensionTotals {
325 dimensionCounts[dim]++
326 }
327 }
328
329 for dim, total := range dimensionTotals {
330 if dimensionCounts[dim] > 0 {
331 report.DimensionScores[dim] = total / float64(dimensionCounts[dim])
332 }
333 }
334
335 // 检测不一致性
336 inconsistencies, err := qa.DetectInconsistencies(ctx, memories)
337 if err != nil {
338 return nil, err
339 }
340 report.Inconsistencies = inconsistencies
341
342 // 统计不一致性类型
343 for _, inc := range inconsistencies {
344 report.InconsistencyCount[inc.Type]++
345 }
346
347 // 收集 TOP 问题
348 issueMap := make(map[string]int)
349 for _, quality := range qa.metrics.GetAll() {
350 for _, issue := range quality.Issues {
351 issueMap[issue]++
352 }
353 }
354
355 topIssues := []struct {
356 issue string
357 count int

Callers 1

TestGenerateReportFunction · 0.95

Calls 4

DetectInconsistenciesMethod · 0.95
GetAllMethod · 0.80
GetStatsMethod · 0.65

Tested by 1

TestGenerateReportFunction · 0.76