Documentation
¶
Overview ¶
Package ai provides a simple interface to interact with AI models. TODO: This is an early stage PoC package
Index ¶
- Constants
- func StopMcpClients(mcpClients []*ToolsProviderMcpClient)
- type Ai
- type DynamicToolCallingChatModel
- func (m *DynamicToolCallingChatModel) Generate(ctx context.Context, input []*schema.Message, opts ...model.Option) (*schema.Message, error)
- func (m *DynamicToolCallingChatModel) ReloadTools(ctx context.Context, tools []tool.BaseTool) (err error)
- func (m *DynamicToolCallingChatModel) Stream(ctx context.Context, input []*schema.Message, opts ...model.Option) (*schema.StreamReader[*schema.Message], error)
- func (m *DynamicToolCallingChatModel) WithTools(tools []*schema.ToolInfo) (model.ToolCallingChatModel, error)
- type HeaderRoundTripper
- type Notification
- type ReActAgent
- func (r *ReActAgent) OnChatModelStart(ctx context.Context, runInfo *callbacks.RunInfo, input *model.CallbackInput) context.Context
- func (r *ReActAgent) OnToolCallEnd(ctx context.Context, info *callbacks.RunInfo, output *tool.CallbackOutput) context.Context
- func (r *ReActAgent) OnToolCallStart(ctx context.Context, info *callbacks.RunInfo, input *tool.CallbackInput) context.Context
- func (r *ReActAgent) Stream(ctx context.Context) (*schema.StreamReader[*schema.Message], error)
- type Session
- type ToolManager
- type ToolManagerTool
- type ToolsProviderMcpClient
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) InferenceAttributes ¶ added in v0.0.9
func (a *Ai) InferenceAttributes() api.InferenceAttributes
func (*Ai) Reset ¶
func (a *Ai) Reset()
Reset resets the AI session, keeping the system prompt intact.
func (*Ai) ToolEnabledCount ¶ added in v0.0.17
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) ReloadTools ¶ added in v0.0.17
func (*DynamicToolCallingChatModel) WithTools ¶ added in v0.0.17
func (m *DynamicToolCallingChatModel) WithTools(tools []*schema.ToolInfo) (model.ToolCallingChatModel, error)
type HeaderRoundTripper ¶ added in v0.0.17
type HeaderRoundTripper struct {
// contains filtered or unexported fields
}
type Notification ¶
type Notification struct{}
type ReActAgent ¶ added in v0.0.17
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
func (r *ReActAgent) Stream(ctx context.Context) (*schema.StreamReader[*schema.Message], error)
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
func (*Session) HasMessages ¶
func (*Session) SystemPrompt ¶
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 (*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
Click to show internal directories.
Click to hide internal directories.