Documentation
¶
Index ¶
- Variables
- type Bot
- type Config
- type MMBots
- func (m *MMBots) CheckUsageRestrictions(requestingUserID string, bot *Bot, channel *model.Channel) error
- func (m *MMBots) CheckUsageRestrictionsForUser(bot *Bot, requestingUserID string) error
- func (b *MMBots) EnsureBots() error
- func (b *MMBots) GetAllBots() []*Bot
- func (b *MMBots) GetBotByID(botID string) *Bot
- func (b *MMBots) GetBotByUsername(botUsername string) *Bot
- func (b *MMBots) GetBotByUsernameOrFirst(botUsername string) *Bot
- func (b *MMBots) GetBotConfig(botUsername string) (llm.BotConfig, error)
- func (b *MMBots) GetBotForDMChannel(channel *model.Channel) *Bot
- func (b *MMBots) GetBotMentioned(text string) *Bot
- func (b *MMBots) GetTranscribe() Transcriber
- func (b *MMBots) IsAnyBot(userID string) bool
- func (b *MMBots) SetBotsForTesting(bots []*Bot)
- type Transcriber
Constants ¶
This section is empty.
Variables ¶
var ErrUsageRestriction = errors.New("usage restriction")
Functions ¶
This section is empty.
Types ¶
type Bot ¶
type Bot struct {
// contains filtered or unexported fields
}
Bot represents an AI bot instance with its configuration and dependencies.
Source of truth for bot fields:
- cfg: The bot's configuration (name, display name, permissions, etc.)
- service: The RESOLVED service configuration (use GetService() to access). DO NOT use cfg.Service or cfg.ServiceID directly - those are internal references.
- mmBot: The Mattermost bot user
- llm: The initialized language model instance
Bot instances should be created via EnsureBots() which properly resolves service references and initializes all fields.
func NewBot ¶
func NewBot(cfg llm.BotConfig, service llm.ServiceConfig, mmBot *model.Bot, llmInstance llm.LanguageModel) *Bot
NewBot creates a new Bot instance with all fields initialized.
func (*Bot) GetService ¶ added in v1.5.0
func (b *Bot) GetService() llm.ServiceConfig
func (*Bot) LLM ¶
func (b *Bot) LLM() llm.LanguageModel
func (*Bot) SetLLMForTest ¶
func (b *Bot) SetLLMForTest(llm llm.LanguageModel)
func (*Bot) SetServiceForTest ¶ added in v1.5.0
func (b *Bot) SetServiceForTest(service llm.ServiceConfig)
type MMBots ¶
type MMBots struct {
// contains filtered or unexported fields
}
func New ¶
func New(mutexPluginAPI cluster.MutexPluginAPI, pluginAPI *pluginapi.Client, licenseChecker *enterprise.LicenseChecker, config Config, llmUpstreamHTTPClient *http.Client, tokenLogger *mlog.Logger, metrics llm.MetricsObserver) *MMBots
func (*MMBots) CheckUsageRestrictions ¶
func (*MMBots) CheckUsageRestrictionsForUser ¶
func (*MMBots) EnsureBots ¶
func (*MMBots) GetBotByID ¶
GetBotByID retrieves the bot associated with the given bot ID
func (*MMBots) GetBotByUsername ¶
GetBotByUsername retrieves the bot associated with the given bot username
func (*MMBots) GetBotByUsernameOrFirst ¶
GetBotByUsernameOrFirst retrieves the bot associated with the given bot username or the first bot if not found
func (*MMBots) GetBotConfig ¶
func (*MMBots) GetBotForDMChannel ¶
GetBotForDMChannel returns the bot for the given DM channel.
func (*MMBots) GetBotMentioned ¶
GetBotMentioned returns the bot mentioned in the text, if any.
func (*MMBots) GetTranscribe ¶
func (b *MMBots) GetTranscribe() Transcriber
TODO: This really doesn't belong here. Figure out where to put this.
func (*MMBots) SetBotsForTesting ¶
SetBotsForTesting sets bots directly for testing purposes only