utils

package
v0.3.23 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2025 License: Apache-2.0 Imports: 11 Imported by: 52

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GoStruct2ParamsOneOf

func GoStruct2ParamsOneOf[T any](opts ...Option) (*schema.ParamsOneOf, error)

GoStruct2ParamsOneOf converts a go struct to a ParamsOneOf. if you attempt to use ResponseFormat of some ChatModel to get StructuredOutput, you can infer the JSONSchema from the go struct.

func GoStruct2ToolInfo

func GoStruct2ToolInfo[T any](toolName, toolDesc string, opts ...Option) (*schema.ToolInfo, error)

GoStruct2ToolInfo converts a go struct to a ToolInfo. if you attempt to use BindTool to make ChatModel respond StructuredOutput, you can infer the ToolInfo from the go struct.

func InferOptionableStreamTool added in v0.3.18

func InferOptionableStreamTool[T, D any](toolName, toolDesc string, s OptionableStreamFunc[T, D], opts ...Option) (tool.StreamableTool, error)

InferStreamTool creates an StreamableTool from a given function by inferring the ToolInfo from the function's request parameters, with tool option.

func InferOptionableTool added in v0.3.18

func InferOptionableTool[T, D any](toolName, toolDesc string, i OptionableInvokeFunc[T, D], opts ...Option) (tool.InvokableTool, error)

InferOptionableTool creates an InvokableTool from a given function by inferring the ToolInfo from the function's request parameters, with tool option.

func InferStreamTool

func InferStreamTool[T, D any](toolName, toolDesc string, s StreamFunc[T, D], opts ...Option) (tool.StreamableTool, error)

InferStreamTool creates an StreamableTool from a given function by inferring the ToolInfo from the function's request parameters End-user can pass a SchemaCustomizerFn in opts to customize the go struct tag parsing process, overriding default behavior.

func InferTool

func InferTool[T, D any](toolName, toolDesc string, i InvokeFunc[T, D], opts ...Option) (tool.InvokableTool, error)

InferTool creates an InvokableTool from a given function by inferring the ToolInfo from the function's request parameters. End-user can pass a SchemaCustomizerFn in opts to customize the go struct tag parsing process, overriding default behavior.

func NewStreamTool

func NewStreamTool[T, D any](desc *schema.ToolInfo, s StreamFunc[T, D], opts ...Option) tool.StreamableTool

NewStreamTool Create a streaming tool, where the input and output are both in JSON format. convert: convert the stream frame to string that could be concatenated to a string.

func NewTool

func NewTool[T, D any](desc *schema.ToolInfo, i InvokeFunc[T, D], opts ...Option) tool.InvokableTool

NewTool Create a tool, where the input and output are both in JSON format.

Types

type InvokeFunc

type InvokeFunc[T, D any] func(ctx context.Context, input T) (output D, err error)

InvokeFunc is the function type for the tool.

type MarshalOutput

type MarshalOutput func(ctx context.Context, output interface{}) (string, error)

MarshalOutput is the function type for marshalling the output.

type Option

type Option func(o *toolOptions)

Option is the option func for the tool.

func WithMarshalOutput

func WithMarshalOutput(m MarshalOutput) Option

WithMarshalOutput wraps the marshal output option. when you want to marshal the output by yourself, you can use this option.

func WithSchemaCustomizer

func WithSchemaCustomizer(sc SchemaCustomizerFn) Option

WithSchemaCustomizer sets a user-defined schema customizer for inferring tool parameter from tagged go struct. If this option is not set, the defaultSchemaCustomizer will be used.

func WithUnmarshalArguments

func WithUnmarshalArguments(um UnmarshalArguments) Option

WithUnmarshalArguments wraps the unmarshal arguments option. when you want to unmarshal the arguments by yourself, you can use this option.

type OptionableInvokeFunc added in v0.3.18

type OptionableInvokeFunc[T, D any] func(ctx context.Context, input T, opts ...tool.Option) (output D, err error)

OptionableInvokeFunc is the function type for the tool with tool option.

type OptionableStreamFunc added in v0.3.18

type OptionableStreamFunc[T, D any] func(ctx context.Context, input T, opts ...tool.Option) (output *schema.StreamReader[D], err error)

OptionableStreamFunc is the function type for the streamable tool with tool option.

type SchemaCustomizerFn

type SchemaCustomizerFn func(name string, t reflect.Type, tag reflect.StructTag, schema *openapi3.Schema) error

SchemaCustomizerFn is the schema customizer function for inferring tool parameter from tagged go struct. Within this function, end-user can parse custom go struct tags into corresponding openapi schema field. Parameters: 1. name: the name of current schema, usually the field name of the go struct. Specifically, the last 'name' visited is fixed to be '_root', which represents the entire go struct. Also, for array field, both the field itself and the element within the array will trigger this function. 2. t: the type of current schema, usually the field type of the go struct. 3. tag: the struct tag of current schema, usually the field tag of the go struct. Note that the element within an array field will use the same go struct tag as the array field itself. 4. schema: the current openapi schema object to be customized.

type StreamFunc

type StreamFunc[T, D any] func(ctx context.Context, input T) (output *schema.StreamReader[D], err error)

StreamFunc is the function type for the streamable tool.

type UnmarshalArguments

type UnmarshalArguments func(ctx context.Context, arguments string) (interface{}, error)

UnmarshalArguments is the function type for unmarshalling the arguments.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL