49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package services
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/mudler/LocalAgent/pkg/config"
|
|
"github.com/mudler/LocalAgent/pkg/xlog"
|
|
"github.com/mudler/LocalAgent/services/prompts"
|
|
|
|
"github.com/mudler/LocalAgent/core/agent"
|
|
"github.com/mudler/LocalAgent/core/state"
|
|
)
|
|
|
|
const (
|
|
DynamicPromptCustom = "custom"
|
|
)
|
|
|
|
var AvailableBlockPrompts = []string{
|
|
DynamicPromptCustom,
|
|
}
|
|
|
|
func DynamicPromptsConfigMeta() []config.FieldGroup {
|
|
return []config.FieldGroup{
|
|
prompts.NewDynamicPromptConfigMeta(),
|
|
}
|
|
}
|
|
|
|
func DynamicPrompts(a *state.AgentConfig) []agent.DynamicPrompt {
|
|
promptblocks := []agent.DynamicPrompt{}
|
|
|
|
for _, c := range a.DynamicPrompts {
|
|
var config map[string]string
|
|
if err := json.Unmarshal([]byte(c.Config), &config); err != nil {
|
|
xlog.Info("Error unmarshalling connector config", err)
|
|
continue
|
|
}
|
|
switch c.Type {
|
|
case DynamicPromptCustom:
|
|
prompt, err := prompts.NewDynamicPrompt(config, "")
|
|
if err != nil {
|
|
xlog.Error("Error creating custom prompt", "error", err)
|
|
continue
|
|
}
|
|
promptblocks = append(promptblocks, prompt)
|
|
}
|
|
}
|
|
return promptblocks
|
|
}
|