Documentation
ΒΆ
Index ΒΆ
- Constants
- Variables
- func FormatTestError(expect, have any) string
- func IsURL(str string) bool
- func ParseTemplate(texts []string) string
- func SendInteraction(channel IChannel, interaction *Interaction) error
- func SetCustomActions(custom ActionsMap)
- type ActionFunc
- type ActionsMap
- type Bot
- type Broadcast
- type Channel
- type ChatGPTAssistantConsumer
- type ChatGPTConsumer
- type Consumer
- type DiscordChannel
- func (channel *DiscordChannel) GetChannel() *Channel
- func (channel *DiscordChannel) RespondInteraction(in *discordgo.Interaction)
- func (channel *DiscordChannel) SendAudio(interaction *Interaction) error
- func (channel *DiscordChannel) SendButton(interaction *Interaction) error
- func (channel *DiscordChannel) SendDocument(interaction *Interaction) error
- func (channel *DiscordChannel) SendFile(sessionID, text, path string) error
- func (channel *DiscordChannel) SendImage(interaction *Interaction) error
- func (channel *DiscordChannel) SendText(interaction *Interaction) error
- func (channel *DiscordChannel) SendVideo(interaction *Interaction) error
- func (channel *DiscordChannel) Start() error
- func (channel *DiscordChannel) Stop() error
- type File
- type FileType
- type Flow
- type FlowPersist
- type IChannel
- type IConsumer
- type IFile
- type Interaction
- func NewInteractionMessageButton(buttons []string, text string) *Interaction
- func NewInteractionMessageFile(path string, text string) *Interaction
- func NewInteractionMessageText(text string) *Interaction
- func RunActionButton(interaction *Interaction) (*Interaction, bool)
- func RunActionFile(interaction *Interaction) (*Interaction, bool)
- func RunActionInput(interaction *Interaction) (*Interaction, bool)
- func RunActionText(interaction *Interaction) (*Interaction, bool)
- type InteractionParameters
- type InteractionType
- type JourneyConsumer
- type MemoryFlowPersist
- type Step
- type StepParameters
- type Steps
- type TelegramChannel
- func (channel *TelegramChannel) GetChannel() *Channel
- func (channel *TelegramChannel) SendAudio(interaction *Interaction) error
- func (channel *TelegramChannel) SendButton(interaction *Interaction) error
- func (channel *TelegramChannel) SendDocument(interaction *Interaction) error
- func (channel *TelegramChannel) SendImage(interaction *Interaction) error
- func (channel *TelegramChannel) SendText(interaction *Interaction) error
- func (channel *TelegramChannel) SendVideo(interaction *Interaction) error
- func (channel *TelegramChannel) Start() error
- func (channel *TelegramChannel) Stop() error
- type WhatsappDeviceChannel
- func (channel *WhatsappDeviceChannel) GetChannel() *Channel
- func (channel *WhatsappDeviceChannel) SendAudio(*Interaction) error
- func (channel *WhatsappDeviceChannel) SendButton(*Interaction) error
- func (channel *WhatsappDeviceChannel) SendDocument(*Interaction) error
- func (channel *WhatsappDeviceChannel) SendImage(*Interaction) error
- func (channel *WhatsappDeviceChannel) SendText(interaction *Interaction) error
- func (channel *WhatsappDeviceChannel) SendVideo(*Interaction) error
- func (channel *WhatsappDeviceChannel) Start() error
- func (channel *WhatsappDeviceChannel) Stop() error
- type WhatsappTwilioChannel
- func (channel *WhatsappTwilioChannel) GetChannel() *Channel
- func (channel *WhatsappTwilioChannel) SendAudio(interaction *Interaction) error
- func (channel *WhatsappTwilioChannel) SendButton(interaction *Interaction) error
- func (channel *WhatsappTwilioChannel) SendDocument(interaction *Interaction) error
- func (channel *WhatsappTwilioChannel) SendImage(interaction *Interaction) error
- func (channel *WhatsappTwilioChannel) SendText(interaction *Interaction) error
- func (channel *WhatsappTwilioChannel) SendVideo(interaction *Interaction) error
- func (channel *WhatsappTwilioChannel) Start() error
- func (channel *WhatsappTwilioChannel) Stop() error
- type Who
Constants ΒΆ
View Source
const ( CHANNEL_TELEGRAM_NAME = "telegram" CHANNEL_WHATSAPP_TWILIO_NAME = "whatsapp twilio" CHANNEL_DISCORD_NAME = "discord" CONSUMER_JOURNEY_NAME = "journey" CONSUMER_CHATGPT_NAME = "chatgpt" FLOW_INIT_STEP_NAME = "init" FLOW_END_STEP_NAME = "end" FLOW_DEFAULT_STEP_NAME = "default" )
Variables ΒΆ
View Source
var ( DEBUG = false ERR_CHANNEL_RUNNING = errors.New("channel is running") ERR_CHANNEL_NOT_RUNNING = errors.New("channel is not running") ERR_UNKNOWN_TELEGRAM_TOKEN = errors.New("unknown telegram token") ERR_UNKNOWN_DISCORD_TOKEN = errors.New("unknown discord token") ERR_UNKNOWN_CHATGPT_TOKEN = errors.New("unknown chatgpt token") ERR_CONNECT_CHATGPT = errors.New("connect to chatgpt failed") ERR_UNDEFINED_CHATGPT_ASSISTANT = errors.New("undefined chatgpt assistant") ERR_UNKNOWN_ACTION = errors.New("unknown action") ERR_UNKNOWN_ROOM = errors.New("unknown room") ERR_NIL_FLOW = errors.New("nil flow") ERR_NIL_STEP = errors.New("nil step") ERR_NIL_CHANNEL = errors.New("nil channel") ERR_UNKNOWN_DEFAULT_STEP = errors.New("unknown step: default") ERR_UNKNOWN_INIT_STEP = errors.New("unknown step: init") ERR_UNKNOWN_NEXT_STEP = errors.New("unknown next step") ERR_PATTERN_NEXT_STEP = errors.New("step pattern invalid") ERR_ENDED_FLOW = errors.New("flow ended") ERR_ROOM_STOPPED_FLOW = errors.New("flow finished by room") ERR_FILE_NOT_PUBLIC = errors.New("file is not public") ERR_FEATURE_UNIMPLEMENTED = errors.New("feature unimplemented") )
View Source
var ( FILETYPE_AUDIO_EXT = []string{".aac", ".mp3", ".oga", ".opus", ".wav", ".weba", ".cda"} FILETYPE_IMAGE_EXT = []string{".apng", ".avif", ".gif", ".jpg", ".jpeg", ".png", ".svg", ".webp"} FILETYPE_VIDEO_EXT = []string{".avi", ".mp4", ".mpeg", ".ogv", ".webm"} )
Functions ΒΆ
func FormatTestError ΒΆ
func ParseTemplate ΒΆ
func SendInteraction ΒΆ added in v1.10.0
func SendInteraction(channel IChannel, interaction *Interaction) error
func SetCustomActions ΒΆ added in v1.1.0
func SetCustomActions(custom ActionsMap)
Types ΒΆ
type ActionFunc ΒΆ added in v1.11.0
type ActionFunc func(*Interaction) (*Interaction, bool)
func GetAction ΒΆ added in v1.11.0
func GetAction(flow *Flow) (ActionFunc, error)
type ActionsMap ΒΆ
type ActionsMap map[string]ActionFunc
type Bot ΒΆ added in v1.11.0
func (*Bot) StartChannel ΒΆ added in v1.11.0
func (*Bot) StartConsumerChannel ΒΆ added in v1.11.0
type Broadcast ΒΆ added in v1.10.0
type Broadcast[T any] struct { // contains filtered or unexported fields }
func NewBroadcast ΒΆ added in v1.10.0
type Channel ΒΆ
type Channel struct {
ChannelID uuid.UUID
Name string
Broadcast *Broadcast[*Interaction]
}
type ChatGPTAssistantConsumer ΒΆ added in v1.8.0
type ChatGPTAssistantConsumer struct {
*Consumer
// contains filtered or unexported fields
}
func (*ChatGPTAssistantConsumer) GetConsumer ΒΆ added in v1.9.5
func (consumer *ChatGPTAssistantConsumer) GetConsumer() *Consumer
func (*ChatGPTAssistantConsumer) Run ΒΆ added in v1.8.0
func (consumer *ChatGPTAssistantConsumer) Run(interaction *Interaction) ([]*Interaction, error)
type ChatGPTConsumer ΒΆ added in v1.7.1
type ChatGPTConsumer struct {
*Consumer
// contains filtered or unexported fields
}
func (*ChatGPTConsumer) GetConsumer ΒΆ added in v1.9.5
func (consumer *ChatGPTConsumer) GetConsumer() *Consumer
func (*ChatGPTConsumer) Run ΒΆ added in v1.7.1
func (consumer *ChatGPTConsumer) Run(interaction *Interaction) ([]*Interaction, error)
type DiscordChannel ΒΆ added in v1.7.1
type DiscordChannel struct {
*Channel
// contains filtered or unexported fields
}
func (*DiscordChannel) GetChannel ΒΆ added in v1.7.1
func (channel *DiscordChannel) GetChannel() *Channel
func (*DiscordChannel) RespondInteraction ΒΆ added in v1.7.1
func (channel *DiscordChannel) RespondInteraction(in *discordgo.Interaction)
func (*DiscordChannel) SendAudio ΒΆ added in v1.7.1
func (channel *DiscordChannel) SendAudio(interaction *Interaction) error
func (*DiscordChannel) SendButton ΒΆ added in v1.7.1
func (channel *DiscordChannel) SendButton(interaction *Interaction) error
func (*DiscordChannel) SendDocument ΒΆ added in v1.7.1
func (channel *DiscordChannel) SendDocument(interaction *Interaction) error
func (*DiscordChannel) SendFile ΒΆ added in v1.7.1
func (channel *DiscordChannel) SendFile(sessionID, text, path string) error
func (*DiscordChannel) SendImage ΒΆ added in v1.7.1
func (channel *DiscordChannel) SendImage(interaction *Interaction) error
func (*DiscordChannel) SendText ΒΆ added in v1.7.1
func (channel *DiscordChannel) SendText(interaction *Interaction) error
func (*DiscordChannel) SendVideo ΒΆ added in v1.7.1
func (channel *DiscordChannel) SendVideo(interaction *Interaction) error
func (*DiscordChannel) Start ΒΆ added in v1.11.0
func (channel *DiscordChannel) Start() error
func (*DiscordChannel) Stop ΒΆ added in v1.11.0
func (channel *DiscordChannel) Stop() error
type File ΒΆ added in v1.7.1
type File struct {
FileID uuid.UUID
FileType FileType
Name string
Bytes []byte
Path string
Extension string
Err error
}
func (*File) IsDocument ΒΆ added in v1.7.1
func (*File) SetFilePath ΒΆ added in v1.7.1
func (*File) SetFileType ΒΆ added in v1.7.1
func (file *File) SetFileType()
type Flow ΒΆ
type Flow struct {
FlowID uuid.UUID
Name string `yaml:"name" json:"name"`
Description string `yaml:"description" json:"description"`
Steps Steps `yaml:"steps" json:"steps"`
CurrentStep *Step
CurrentStepName string
}
func NewFlowByJSON ΒΆ added in v1.10.0
func NewFlowByJSONFile ΒΆ added in v1.10.0
func (*Flow) Next ΒΆ
func (flow *Flow) Next(interaction *Interaction) error
type FlowPersist ΒΆ added in v1.7.1
func NewMemoryFlowPersist ΒΆ added in v1.7.1
func NewMemoryFlowPersist() (FlowPersist, error)
type IChannel ΒΆ added in v1.7.1
type IChannel interface {
GetChannel() *Channel
Stop() error
Start() error
SendAudio(*Interaction) error
SendButton(*Interaction) error
SendDocument(*Interaction) error
SendImage(*Interaction) error
SendText(*Interaction) error
SendVideo(*Interaction) error
}
func NewDiscordChannel ΒΆ added in v1.7.1
func NewTelegramChannel ΒΆ added in v1.7.1
func NewWhatsappTwilioChannel ΒΆ added in v1.11.0
type IConsumer ΒΆ added in v1.7.1
type IConsumer interface {
Run(*Interaction) ([]*Interaction, error)
GetConsumer() *Consumer
}
func NewChatGPTAssistantConsumer ΒΆ added in v1.8.0
func NewChatGPTConsumer ΒΆ added in v1.7.1
func NewJourneyConsumer ΒΆ added in v1.7.1
func NewJourneyConsumer(flow *Flow, persist FlowPersist) IConsumer
type IFile ΒΆ added in v1.7.1
type Interaction ΒΆ
type Interaction struct {
To *Who
From *Who
Replier *Who
Type InteractionType
Parameters InteractionParameters
Step Step
Custom map[string]any
}
func NewInteractionMessageButton ΒΆ
func NewInteractionMessageButton(buttons []string, text string) *Interaction
func NewInteractionMessageFile ΒΆ added in v1.7.1
func NewInteractionMessageFile(path string, text string) *Interaction
func NewInteractionMessageText ΒΆ
func NewInteractionMessageText(text string) *Interaction
func RunActionButton ΒΆ added in v1.10.0
func RunActionButton(interaction *Interaction) (*Interaction, bool)
func RunActionFile ΒΆ added in v1.10.0
func RunActionFile(interaction *Interaction) (*Interaction, bool)
func RunActionInput ΒΆ added in v1.10.0
func RunActionInput(interaction *Interaction) (*Interaction, bool)
func RunActionText ΒΆ added in v1.10.0
func RunActionText(interaction *Interaction) (*Interaction, bool)
func (*Interaction) SetFrom ΒΆ added in v1.11.0
func (interaction *Interaction) SetFrom(from *Who) *Interaction
func (*Interaction) SetReplier ΒΆ added in v1.7.1
func (interaction *Interaction) SetReplier(replier *Who) *Interaction
func (*Interaction) SetStep ΒΆ added in v1.11.0
func (interaction *Interaction) SetStep(step Step) *Interaction
func (*Interaction) SetTo ΒΆ added in v1.11.0
func (interaction *Interaction) SetTo(to *Who) *Interaction
type InteractionParameters ΒΆ
type InteractionType ΒΆ
type InteractionType string
const ( MESSAGE_BUTTON InteractionType = "MESSAGE_BUTTON" MESSAGE_FILE InteractionType = "MESSAGE_FILE" MESSAGE_TEXT InteractionType = "MESSAGE_TEXT" EVENT_TYPING InteractionType = "EVENT_TYPING" )
type JourneyConsumer ΒΆ added in v1.7.1
type JourneyConsumer struct {
*Consumer
Flow *Flow
Persist FlowPersist
}
func (*JourneyConsumer) GetConsumer ΒΆ added in v1.9.5
func (consumer *JourneyConsumer) GetConsumer() *Consumer
func (*JourneyConsumer) Run ΒΆ added in v1.7.1
func (consumer *JourneyConsumer) Run(interaction *Interaction) ([]*Interaction, error)
type MemoryFlowPersist ΒΆ added in v1.7.1
type Step ΒΆ
type Step struct {
Action string `yaml:"action" json:"action"`
Next map[string]string `yaml:"next" json:"next"`
Parameters StepParameters `yaml:"parameters" json:"parameters"`
}
type StepParameters ΒΆ
type TelegramChannel ΒΆ added in v1.7.1
type TelegramChannel struct {
*Channel
// contains filtered or unexported fields
}
func (*TelegramChannel) GetChannel ΒΆ added in v1.7.1
func (channel *TelegramChannel) GetChannel() *Channel
func (*TelegramChannel) SendAudio ΒΆ added in v1.7.1
func (channel *TelegramChannel) SendAudio(interaction *Interaction) error
func (*TelegramChannel) SendButton ΒΆ added in v1.7.1
func (channel *TelegramChannel) SendButton(interaction *Interaction) error
func (*TelegramChannel) SendDocument ΒΆ added in v1.7.1
func (channel *TelegramChannel) SendDocument(interaction *Interaction) error
func (*TelegramChannel) SendImage ΒΆ added in v1.7.1
func (channel *TelegramChannel) SendImage(interaction *Interaction) error
func (*TelegramChannel) SendText ΒΆ added in v1.7.1
func (channel *TelegramChannel) SendText(interaction *Interaction) error
func (*TelegramChannel) SendVideo ΒΆ added in v1.7.1
func (channel *TelegramChannel) SendVideo(interaction *Interaction) error
func (*TelegramChannel) Start ΒΆ added in v1.11.0
func (channel *TelegramChannel) Start() error
func (*TelegramChannel) Stop ΒΆ added in v1.11.0
func (channel *TelegramChannel) Stop() error
type WhatsappDeviceChannel ΒΆ added in v1.11.0
type WhatsappDeviceChannel struct {
*Channel
// contains filtered or unexported fields
}
func (*WhatsappDeviceChannel) GetChannel ΒΆ added in v1.11.0
func (channel *WhatsappDeviceChannel) GetChannel() *Channel
func (*WhatsappDeviceChannel) SendAudio ΒΆ added in v1.11.0
func (channel *WhatsappDeviceChannel) SendAudio(*Interaction) error
func (*WhatsappDeviceChannel) SendButton ΒΆ added in v1.11.0
func (channel *WhatsappDeviceChannel) SendButton(*Interaction) error
func (*WhatsappDeviceChannel) SendDocument ΒΆ added in v1.11.0
func (channel *WhatsappDeviceChannel) SendDocument(*Interaction) error
func (*WhatsappDeviceChannel) SendImage ΒΆ added in v1.11.0
func (channel *WhatsappDeviceChannel) SendImage(*Interaction) error
func (*WhatsappDeviceChannel) SendText ΒΆ added in v1.11.0
func (channel *WhatsappDeviceChannel) SendText(interaction *Interaction) error
func (*WhatsappDeviceChannel) SendVideo ΒΆ added in v1.11.0
func (channel *WhatsappDeviceChannel) SendVideo(*Interaction) error
func (*WhatsappDeviceChannel) Start ΒΆ added in v1.11.0
func (channel *WhatsappDeviceChannel) Start() error
func (*WhatsappDeviceChannel) Stop ΒΆ added in v1.11.0
func (channel *WhatsappDeviceChannel) Stop() error
type WhatsappTwilioChannel ΒΆ added in v1.11.0
type WhatsappTwilioChannel struct {
*Channel
// contains filtered or unexported fields
}
func (*WhatsappTwilioChannel) GetChannel ΒΆ added in v1.11.0
func (channel *WhatsappTwilioChannel) GetChannel() *Channel
func (*WhatsappTwilioChannel) SendAudio ΒΆ added in v1.11.0
func (channel *WhatsappTwilioChannel) SendAudio(interaction *Interaction) error
func (*WhatsappTwilioChannel) SendButton ΒΆ added in v1.11.0
func (channel *WhatsappTwilioChannel) SendButton(interaction *Interaction) error
func (*WhatsappTwilioChannel) SendDocument ΒΆ added in v1.11.0
func (channel *WhatsappTwilioChannel) SendDocument(interaction *Interaction) error
func (*WhatsappTwilioChannel) SendImage ΒΆ added in v1.11.0
func (channel *WhatsappTwilioChannel) SendImage(interaction *Interaction) error
func (*WhatsappTwilioChannel) SendText ΒΆ added in v1.11.0
func (channel *WhatsappTwilioChannel) SendText(interaction *Interaction) error
func (*WhatsappTwilioChannel) SendVideo ΒΆ added in v1.11.0
func (channel *WhatsappTwilioChannel) SendVideo(interaction *Interaction) error
func (*WhatsappTwilioChannel) Start ΒΆ added in v1.11.0
func (channel *WhatsappTwilioChannel) Start() error
func (*WhatsappTwilioChannel) Stop ΒΆ added in v1.11.0
func (channel *WhatsappTwilioChannel) Stop() error
Source Files
ΒΆ
Directories
ΒΆ
| Path | Synopsis |
|---|---|
|
docs
|
|
|
examples/chatgpt
command
|
|
|
examples/chatgpt_assistant
command
|
|
|
examples/dungeon
command
|
|
|
examples/hello
command
|
|
|
examples/pingpong
command
|
|
|
examples/tabnews
command
|
|
|
examples/types
command
|
Click to show internal directories.
Click to hide internal directories.