answer/pkg/agent/wolfram.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")