diff --git a/kb/kb.go b/kb/kb.go index dd2de14d..a29ddd5d 100644 --- a/kb/kb.go +++ b/kb/kb.go @@ -41,6 +41,12 @@ func Load(appConfig config.Config) (*KnowledgeBase, error) { return nil, nil } + // Load providers from directories first + providers, err := kbtypes.LoadProviders("kb") + if err != nil { + return nil, err + } + // Parse the configuration var config kbtypes.Config raw, err := application.App.Read(filepath.Join("kb", "kb.yao")) @@ -53,13 +59,12 @@ func Load(appConfig config.Config) (*KnowledgeBase, error) { return nil, err } - // Load providers from directories - providers, err := kbtypes.LoadProviders("kb") - if err != nil { - return nil, err - } + // Assign providers to config config.Providers = providers + // Compute features after both config and providers are loaded + config.Features = config.ComputeFeatures() + // Set global configurations for providers to use kbtypes.SetGlobalPDF(config.PDF) kbtypes.SetGlobalFFmpeg(config.FFmpeg) diff --git a/kb/types/config.go b/kb/types/config.go index 5f1406e5..97a4dcf8 100644 --- a/kb/types/config.go +++ b/kb/types/config.go @@ -323,8 +323,7 @@ func (c *Config) UnmarshalJSON(data []byte) error { c.Uploader = "__yao.attachment" } - // Compute features after parsing and resolving env vars - c.Features = c.ComputeFeatures() + // Note: Features will be computed later after providers are loaded return nil }