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

Method Index

pkg/memory/semantic.go:81–111  ·  view source on GitHub ↗

Index 将一段文本写入向量索引。 docID 应全局唯一, meta 中可包含 user_id/project_id/resource_id 等信息。 如果启用 Provenance, 将自动创建溯源信息。

(ctx context.Context, docID string, text string, meta map[string]any)

Source from the content-addressed store, hash-verified

79// docID 应全局唯一, meta 中可包含 user_id/project_id/resource_id 等信息。
80// 如果启用 Provenance, 将自动创建溯源信息。
81func (sm *SemanticMemory) Index(ctx context.Context, docID string, text string, meta map[string]any) error {
82 if sm.cfg.EnableProvenance {
83 // 自动创建 Provenance
84 sourceID := docID // 使用 docID 作为默认 sourceID
85 if sid, ok := meta["source_id"].(string); ok && sid != "" {
86 sourceID = sid
87 }
88
89 sourceType := sm.cfg.DefaultSourceType
90 if st, ok := meta["source_type"].(string); ok && st != "" {
91 sourceType = SourceType(st)
92 }
93
94 isExplicit := false
95 if exp, ok := meta["is_explicit"].(bool); ok {
96 isExplicit = exp
97 }
98
99 var provenance *MemoryProvenance
100 if isExplicit {
101 provenance = NewExplicitProvenance(sourceType, sourceID)
102 } else {
103 provenance = NewProvenance(sourceType, sourceID)
104 }
105
106 return sm.IndexWithProvenance(ctx, docID, text, meta, provenance, nil)
107 }
108
109 // 不启用 Provenance 时的原始逻辑
110 return sm.indexInternal(ctx, docID, text, meta, nil)
111}
112
113// IndexWithProvenance 使用指定的 Provenance 索引文本。
114// derivedFromIDs 表示该记忆派生自哪些其他记忆。

Callers 14

mainFunction · 0.95
mainFunction · 0.95
ExecuteMethod · 0.80
getFirstTodoIDFunction · 0.80
hasCommandInjectionMethod · 0.80
extractJSONFunction · 0.80
parseMarkdownMethod · 0.80
extractSentenceMethod · 0.80
generateSnippetFunction · 0.80
extractJSONFunction · 0.80
normalizeSliceFunction · 0.80

Calls 5

IndexWithProvenanceMethod · 0.95
indexInternalMethod · 0.95
SourceTypeTypeAlias · 0.85
NewExplicitProvenanceFunction · 0.85
NewProvenanceFunction · 0.85

Tested by 1

getFirstTodoIDFunction · 0.64