From fcb59be5b55e27e9010a2137bb16074e008c1e54 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 30 Jul 2025 17:14:55 +0800 Subject: [PATCH] Add OpenAPI and Knowledge Base configurations to Xgen settings - Introduced OpenAPI settings to include base URL configuration. - Added Knowledge Base settings to capture features, chunkings, embeddings, and converters. - Enhanced the processXgen function to integrate these configurations into the Xgen settings map, improving extensibility and functionality. --- widgets/app/app.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/widgets/app/app.go b/widgets/app/app.go index 212fba03..de1e3f9a 100644 --- a/widgets/app/app.go +++ b/widgets/app/app.go @@ -21,8 +21,10 @@ import ( "github.com/yaoapp/yao/config" "github.com/yaoapp/yao/data" "github.com/yaoapp/yao/i18n" + "github.com/yaoapp/yao/kb" "github.com/yaoapp/yao/neo" "github.com/yaoapp/yao/neo/assistant" + "github.com/yaoapp/yao/openapi" "github.com/yaoapp/yao/share" "github.com/yaoapp/yao/widgets/login" ) @@ -585,6 +587,44 @@ func processXgen(process *process.Process) interface{} { } } + // OpenAPI Settings + openapiConfig := map[string]interface{}{} + if openapi.Server != nil { + openapiConfig = map[string]interface{}{ + "baseURL": openapi.Server.Config.BaseURL, + } + } + + // Knowledge Base Settings + kbConfig := map[string]interface{}{} + if kb.Instance != nil { + if knowledgebase, ok := kb.Instance.(*kb.KnowledgeBase); ok && knowledgebase.Config != nil { + chunkings := []string{} + if knowledgebase.Config.Chunkings != nil { + for _, chunking := range knowledgebase.Config.Chunkings { + chunkings = append(chunkings, chunking.ID) + } + } + + embeddings := []string{} + if knowledgebase.Config.Embeddings != nil { + for _, embedding := range knowledgebase.Config.Embeddings { + embeddings = append(embeddings, embedding.ID) + } + } + + converters := []string{} + if knowledgebase.Config.Converters != nil { + for _, converter := range knowledgebase.Config.Converters { + converters = append(converters, converter.ID) + } + } + + // other providers + kbConfig = map[string]interface{}{"features": knowledgebase.Config.Features, "chunkings": chunkings, "embeddings": embeddings, "converters": converters} + } + } + xgenSetting := map[string]interface{}{ "name": Setting.Name, "description": Setting.Description, @@ -606,6 +646,8 @@ func processXgen(process *process.Process) interface{} { "optional": Setting.Optional, "login": xgenLogin, "agent": agent, + "openapi": openapiConfig, + "kb": kbConfig, } if Setting.Logo != "" {