Search might be useful for other agents

This commit is contained in:
Ettore Di Giacinto
2024-04-05 23:59:48 +02:00
parent f2c74e29e8
commit 899e3c0771
2 changed files with 10 additions and 7 deletions

View File

@@ -12,7 +12,7 @@ import (
"github.com/donseba/go-htmx"
"github.com/donseba/go-htmx/sse"
actions "github.com/mudler/local-agent-framework/example/webui/actions"
external "github.com/mudler/local-agent-framework/external"
. "github.com/mudler/local-agent-framework/agent"
)
@@ -65,7 +65,7 @@ func main() {
)
return true
}),
WithActions(actions.NewSearch()),
WithActions(external.NewSearch(3)),
WithAgentResultCallback(func(state ActionState) {
text := fmt.Sprintf(`Reasoning: %s
Action taken: %+v

View File

@@ -1,4 +1,4 @@
package action
package external
import (
"fmt"
@@ -8,11 +8,14 @@ import (
"github.com/sashabaranov/go-openai/jsonschema"
)
func NewSearch() *SearchAction {
return &SearchAction{}
func NewSearch(results int) *SearchAction {
if results == 0 {
results = 3
}
return &SearchAction{results: results}
}
type SearchAction struct{}
type SearchAction struct{ results int }
func (a *SearchAction) Run(params action.ActionParams) (string, error) {
result := struct {
@@ -25,7 +28,7 @@ func (a *SearchAction) Run(params action.ActionParams) (string, error) {
return "", err
}
ddg := client.NewDuckDuckGoSearchClient()
res, err := ddg.SearchLimited(result.Query, 10)
res, err := ddg.SearchLimited(result.Query, a.results)
if err != nil {
msg := fmt.Sprintf("error: %v", err)
fmt.Printf(msg)