Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ToolCallCmd = &cobra.Command{ Use: "tool-call", Short: "Tool call", Run: func(cmd *cobra.Command, args []string) { stepSettings, err := settings.NewStepSettings() cobra.CheckErr(err) geppettoLayers, err := cmds.CreateGeppettoLayers(stepSettings) cobra.CheckErr(err) layers_ := layers.NewParameterLayers(layers.WithLayers(geppettoLayers...)) parser, err := cli.NewCobraParserFromLayers( layers_, cli.WithCobraMiddlewaresFunc(cmds.GetCobraCommandGeppettoMiddlewares)) cobra.CheckErr(err) parsedLayers, err := parser.Parse(cmd, nil) cobra.CheckErr(err) err = stepSettings.UpdateFromParsedLayers(parsedLayers) cobra.CheckErr(err) ctx, cancel := context.WithCancel(cmd.Context()) defer cancel() messages := []*conversation.Message{ conversation.NewChatMessage( conversation.RoleUser, "Give me the weather in Boston on november 9th 1924, please, including the windspeed for me, an old ass american. Also, the weather in paris today, with temperature.", ), } reflector := new(jsonschema.Reflector) err = reflector.AddGoComments("github.com/go-go-golems/geppetto", "./cmd/experiments/agent") if err != nil { log.Warn().Err(err).Msg("Could not add go comments") } getWeatherOnDayJsonSchema, _ := helpers2.GetFunctionParametersJsonSchema(reflector, getWeatherOnDay) s, _ := json.MarshalIndent(getWeatherOnDayJsonSchema, "", " ") fmt.Printf("getWeatherOnDayJsonSchema:\n%s\n\n", s) getWeatherJsonSchema, _ := helpers2.GetFunctionParametersJsonSchema(reflector, getWeather) s, _ = json.MarshalIndent(getWeatherJsonSchema, "", " ") fmt.Printf("getWeatherJsonSchema:\n%s\n\n", s) step := &openai.ChatWithToolsStep{ Settings: stepSettings, Tools: []go_openai.Tool{{ Type: "function", Function: &go_openai.FunctionDefinition{ Name: "getWeather", Description: "Get the weather", Parameters: getWeatherJsonSchema, }, }, { Type: "function", Function: &go_openai.FunctionDefinition{ Name: "getWeatherOnDay", Description: "Get the weather on a specific day", Parameters: getWeatherOnDayJsonSchema, }, }, }, } execStep := &openai.ExecuteToolStep{ Tools: map[string]interface{}{ "getWeather": getWeather, "getWeatherOnDay": getWeatherOnDay, }, } res, err := step.Start(ctx, messages) cobra.CheckErr(err) res_ := steps.Bind[openai.ToolCompletionResponse, []chat.ToolResult](ctx, res, execStep) c := res_.GetChannel() for i := range c { s, err := i.Value() cobra.CheckErr(err) s_, _ := json.MarshalIndent(s, "", " ") fmt.Printf("%s", s_) } }, }
Functions ¶
This section is empty.
Types ¶
type WeatherData ¶
type WeatherOnDayRequest ¶
type WeatherOnDayRequest struct { WeatherRequest // The date for which to request the data Date string `json:"date"` }
type WeatherRequest ¶
Click to show internal directories.
Click to hide internal directories.