31 lines
723 B
Go
31 lines
723 B
Go
package agent
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"gitea.stevedudenhoeffer.com/steve/answer/pkg/toolbox"
|
|
|
|
"github.com/Edw590/go-wolfram"
|
|
)
|
|
|
|
var WolframTool = toolbox.FromFunction(
|
|
func(ctx *Context, args struct {
|
|
Query string `description:"what to ask wolfram alpha"`
|
|
}) (toolbox.FuncResponse, error) {
|
|
var cl = wolfram.Client{
|
|
AppID: os.Getenv("WOLFRAM_APPID"),
|
|
}
|
|
|
|
unit := wolfram.Imperial
|
|
|
|
a, err := cl.GetShortAnswerQuery(args.Query, unit, 10)
|
|
if err != nil {
|
|
return toolbox.FuncResponse{}, fmt.Errorf("failed to get short answer from wolfram: %w", err)
|
|
}
|
|
|
|
return toolbox.FuncResponse{Result: a, Source: "Wolfram|Alpha"}, nil
|
|
}).
|
|
WithName("wolfram").
|
|
WithDescription("ask wolfram alpha for the answer")
|