ai

package
v0.0.18 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2025 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package ai provides a simple interface to interact with AI models. TODO: This is an early stage PoC package

Index

Constants

View Source
const (
	DefaultMaxSteps = 50
)

Variables

This section is empty.

Functions

func StopMcpClients added in v0.0.17

func StopMcpClients(mcpClients []*ToolsProviderMcpClient)

Types

type Ai

type Ai struct {
	Output chan Notification
	// contains filtered or unexported fields
}

func New

func New(inferenceProvider api.InferenceProvider, toolsProviders []api.ToolsProvider) *Ai

func (*Ai) Close added in v0.0.15

func (a *Ai) Close()

func (*Ai) InferenceAttributes added in v0.0.9

func (a *Ai) InferenceAttributes() api.InferenceAttributes

func (*Ai) Input

func (a *Ai) Input() chan api.Message

func (*Ai) Reset

func (a *Ai) Reset()

Reset resets the AI session, keeping the system prompt intact.

func (*Ai) Run

func (a *Ai) Run(ctx context.Context) (err error)

func (*Ai) Session

func (a *Ai) Session() api.Session

func (*Ai) ToolCount added in v0.0.17

func (a *Ai) ToolCount() int

func (*Ai) ToolEnabledCount added in v0.0.17

func (a *Ai) ToolEnabledCount() int

type DynamicToolCallingChatModel added in v0.0.17

type DynamicToolCallingChatModel struct {
	// contains filtered or unexported fields
}

DynamicToolCallingChatModel is a wrapper around model.ToolCallingChatModel that allows dynamic tool reloading. Allows LLM model mutation to support dynamic tool reloading.

func NewDynamicToolCallingChatModel added in v0.0.17

func NewDynamicToolCallingChatModel(base model.ToolCallingChatModel, err error) (*DynamicToolCallingChatModel, error)

func (*DynamicToolCallingChatModel) Generate added in v0.0.17

func (m *DynamicToolCallingChatModel) Generate(ctx context.Context, input []*schema.Message, opts ...model.Option) (*schema.Message, error)

func (*DynamicToolCallingChatModel) ReloadTools added in v0.0.17

func (m *DynamicToolCallingChatModel) ReloadTools(ctx context.Context, tools []tool.BaseTool) (err error)

func (*DynamicToolCallingChatModel) Stream added in v0.0.17

func (*DynamicToolCallingChatModel) WithTools added in v0.0.17

type HeaderRoundTripper added in v0.0.17

type HeaderRoundTripper struct {
	// contains filtered or unexported fields
}

func (*HeaderRoundTripper) RoundTrip added in v0.0.17

func (h *HeaderRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)

type Notification

type Notification struct{}

type ReActAgent added in v0.0.17

type ReActAgent struct {
	*react.Agent
	// contains filtered or unexported fields
}

ReActAgent is an agent that uses the ReAct framework to interact with the user and toolManager. Currently, it's just wrapping around the standard react.Agent, but we might eventually want to fully implement our own agent to have more control over the process and graph chain.

func NewReActAgent added in v0.0.17

func NewReActAgent(ctx context.Context, ai *Ai) (agent *ReActAgent, err error)

func (*ReActAgent) OnChatModelStart added in v0.0.17

func (r *ReActAgent) OnChatModelStart(ctx context.Context, runInfo *callbacks.RunInfo, input *model.CallbackInput) context.Context

func (*ReActAgent) OnToolCallEnd added in v0.0.17

func (r *ReActAgent) OnToolCallEnd(ctx context.Context, info *callbacks.RunInfo, output *tool.CallbackOutput) context.Context

func (*ReActAgent) OnToolCallStart added in v0.0.17

func (r *ReActAgent) OnToolCallStart(ctx context.Context, info *callbacks.RunInfo, input *tool.CallbackInput) context.Context

func (*ReActAgent) Stream added in v0.0.17

type Session

type Session struct {
	// contains filtered or unexported fields
}

func (*Session) HasMessages

func (s *Session) HasMessages() bool

func (*Session) IsRunning

func (s *Session) IsRunning() bool

func (*Session) Messages

func (s *Session) Messages() []api.Message

func (*Session) SystemPrompt

func (s *Session) SystemPrompt() api.Message

type ToolManager added in v0.0.17

type ToolManager struct {
	// contains filtered or unexported fields
}

func NewToolManager added in v0.0.17

func NewToolManager(toolsProviders []api.ToolsProvider, availableTools []ToolManagerTool) *ToolManager

func (*ToolManager) EnabledTools added in v0.0.17

func (t *ToolManager) EnabledTools() []tool.BaseTool

func (*ToolManager) EnabledToolsReset added in v0.0.17

func (t *ToolManager) EnabledToolsReset()

func (*ToolManager) InvokeTool added in v0.0.17

func (t *ToolManager) InvokeTool(ctx context.Context, name, input string) (string, error)

func (*ToolManager) ToolCount added in v0.0.17

func (t *ToolManager) ToolCount() int

func (*ToolManager) ToolEnabledCount added in v0.0.17

func (t *ToolManager) ToolEnabledCount() int

type ToolManagerTool added in v0.0.17

type ToolManagerTool interface {
	tool.InvokableTool
	tool.BaseTool
	ToolsProvider() api.ToolsProvider
	ToolInfo() *schema.ToolInfo
}

func ToMcpTools added in v0.0.17

func ToMcpTools(ctx context.Context, mcpClients []*ToolsProviderMcpClient) (tools []ToolManagerTool)

type ToolsProviderMcpClient added in v0.0.17

type ToolsProviderMcpClient struct {
	api.ToolsProvider
	*mcp.ClientSession
}

func StartMcpClients added in v0.0.17

func StartMcpClients(ctx context.Context, toolsProviders []api.ToolsProvider) []*ToolsProviderMcpClient

Jump to

Keyboard shortcuts

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