MCPcopy Create free account
hub / github.com/InferCore/InferCore / FromConfig

Function FromConfig

internal/retrieval/build.go:12–53  ·  view source on GitHub ↗

FromConfig builds retrieval adapters from knowledge_bases.

(cfg *config.Config)

Source from the content-addressed store, hash-verified

10
11// FromConfig builds retrieval adapters from knowledge_bases.
12func FromConfig(cfg *config.Config) map[string]interfaces.RetrievalAdapter {
13 out := make(map[string]interfaces.RetrievalAdapter)
14 if cfg == nil {
15 return out
16 }
17 for _, kb := range cfg.KnowledgeBases {
18 typ := strings.ToLower(strings.TrimSpace(kb.Type))
19 switch typ {
20 case "file":
21 a, err := NewFileKB(kb.Name, kb.Path)
22 if err != nil {
23 log.Printf("event=retrieval_init_failed name=%s type=file err=%v", kb.Name, err)
24 continue
25 }
26 out[kb.Name] = a
27 case "http":
28 a, err := NewHTTPJSONKB(kb)
29 if err != nil {
30 log.Printf("event=retrieval_init_failed name=%s type=http err=%v", kb.Name, err)
31 continue
32 }
33 out[kb.Name] = a
34 case "opensearch", "elasticsearch":
35 a, err := NewOpenSearchKB(kb)
36 if err != nil {
37 log.Printf("event=retrieval_init_failed name=%s type=%s err=%v", kb.Name, typ, err)
38 continue
39 }
40 out[kb.Name] = a
41 case "meilisearch":
42 a, err := NewMeilisearchKB(kb)
43 if err != nil {
44 log.Printf("event=retrieval_init_failed name=%s type=meilisearch err=%v", kb.Name, err)
45 continue
46 }
47 out[kb.Name] = a
48 default:
49 log.Printf("event=retrieval_init_skipped name=%s type=%s reason=%q", kb.Name, kb.Type, "unknown type at runtime (validate config)")
50 }
51 }
52 return out
53}

Callers 3

NewWithDependenciesFunction · 0.92
replayCmdFunction · 0.92

Calls 4

NewFileKBFunction · 0.85
NewHTTPJSONKBFunction · 0.85
NewOpenSearchKBFunction · 0.85
NewMeilisearchKBFunction · 0.85

Tested by 1