From cf3c4549dae7162b09fde6bcdb279d4e6bc58b09 Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Mon, 8 Apr 2024 22:58:53 +0200 Subject: [PATCH] allow to set configs for actions too --- example/webui/agentpool.go | 35 ++++++++++++++++++++++------------- example/webui/create.html | 34 ++++++++++++++++++++++++++-------- external/search.go | 17 +++++++++++++---- 3 files changed, 61 insertions(+), 25 deletions(-) diff --git a/example/webui/agentpool.go b/example/webui/agentpool.go index d075d42..687bf1d 100644 --- a/example/webui/agentpool.go +++ b/example/webui/agentpool.go @@ -18,7 +18,10 @@ type ConnectorConfig struct { Config string `json:"config"` } -type ActionsConfig string +type ActionsConfig struct { + Name string `json:"name"` // e.g. search + Config string `json:"config"` +} type AgentConfig struct { Connector []ConnectorConfig `json:"connectors" form:"connectors" ` @@ -123,15 +126,19 @@ var AvailableActions = []string{ActionSearch} func (a *AgentConfig) availableActions() []Action { actions := []Action{} - if len(a.Actions) == 0 { - // Return search as default - return []Action{external.NewSearch(3)} - } for _, action := range a.Actions { fmt.Println("Set Action", action) - switch action { + + var config map[string]string + if err := json.Unmarshal([]byte(action.Config), &config); err != nil { + fmt.Println("Error unmarshalling connector config", err) + continue + } + fmt.Println("Config", config) + + switch action.Name { case ActionSearch: - actions = append(actions, external.NewSearch(3)) + actions = append(actions, external.NewSearch(config)) } } @@ -151,14 +158,16 @@ func (a *AgentConfig) availableConnectors() []Connector { for _, c := range a.Connector { fmt.Println("Set Connector", c) + + var config map[string]string + if err := json.Unmarshal([]byte(c.Config), &config); err != nil { + fmt.Println("Error unmarshalling connector config", err) + continue + } + fmt.Println("Config", config) + switch c.Type { case ConnectorTelegram: - var config map[string]string - if err := json.Unmarshal([]byte(c.Config), &config); err != nil { - fmt.Println("Error unmarshalling connector config", err) - continue - } - fmt.Println("Config", config) cc, err := connector.NewTelegramConnector(config) if err != nil { fmt.Println("Error creating telegram connector", err) diff --git a/example/webui/create.html b/example/webui/create.html index 1737f03..7caad7b 100644 --- a/example/webui/create.html +++ b/example/webui/create.html @@ -53,15 +53,33 @@
- - +
+
- - + +
diff --git a/external/search.go b/external/search.go index 6335e0d..22c527d 100644 --- a/external/search.go +++ b/external/search.go @@ -8,11 +8,20 @@ import ( "github.com/sashabaranov/go-openai/jsonschema" ) -func NewSearch(results int) *SearchAction { - if results == 0 { - results = 3 +func NewSearch(config map[string]string) *SearchAction { + results := config["results"] + intResult := 1 + + // decode int from string + if results != "" { + _, err := fmt.Sscanf(results, "%d", &intResult) + if err != nil { + fmt.Printf("error: %v", err) + } } - return &SearchAction{results: results} + + fmt.Println("Search action with results: ", intResult) + return &SearchAction{results: intResult} } type SearchAction struct{ results int }