Documentation
¶
Index ¶
- Variables
- func GetAllowedChannels(c Config) []string
- func NewDebugLogger() (*zap.SugaredLogger, error)
- func NewDiscordMessager(ctx context.Context, tok string, trigger string, allowedChannels []string, ...) (*discordMessager, error)
- func NewIOMessager(r io.Reader, w io.Writer, trigger string, g MessageGenerator, user string, ...) *ioMessager
- func NewOpenAIGenerator(baseURL string, model string, promptPrefix string, log Logger, ...) (*oaiGenerator, error)
- func NewProdLogger() (*zap.SugaredLogger, error)
- type Config
- type GenerationRequestModifier
- type GeneratorMessager
- type HTTPRequestModifier
- type Logger
- type MessageGenerator
- type MessagerMode
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrOAIHTTP = errors.New("error code from oai server")
)
Functions ¶
func GetAllowedChannels ¶
func NewDebugLogger ¶
func NewDebugLogger() (*zap.SugaredLogger, error)
func NewDiscordMessager ¶
func NewIOMessager ¶
func NewOpenAIGenerator ¶
func NewOpenAIGenerator(baseURL string, model string, promptPrefix string, log Logger, reqMods []HTTPRequestModifier, genMods []GenerationRequestModifier) (*oaiGenerator, error)
func NewProdLogger ¶
func NewProdLogger() (*zap.SugaredLogger, error)
Types ¶
type Config ¶
type Config struct {
OAIHost string `yaml:"OAIHost" conf:"env:DISCOGPT_OAI_HOST"`
OAIToken string `yaml:"OAIToken" conf:"env:DISCOGPT_OAI_TOKEN,mask"`
OAIModel string `yaml:"OAIModel" conf:"env:DISCOGPT_OAI_MODEL"`
OAISystemPrompt string `yaml:"OAISystemPrompt" conf:"env:DISCOGPT_OAI_SYSTEM_PROMPT"`
BotToken string `yaml:"BotToken" conf:"env:DISCOGPT_BOT_TOKEN,mask"`
AllowedChannels string `yaml:"AllowedChannels" conf:"env:DISCOGPT_ALLOWED_CHANNELS"` //comma separated list of channel IDs for bot to operate in
Trigger string `yaml:"Trigger" conf:"env:DISCOGPT_TRIGGER"`
Mode string `yaml:"Mode" conf:"DISCOGPT_MODE"` // This is used to select between the discord messager and the ioMessager for local testing
ChromaURL string `yaml:"ChromaURL" conf:"env:DISCOGPT_CHROMA_URL"` //URL for your chroma server
ChromaTEIURL string `yaml:"ChromaTEIURL" conf:"env:DISCOGPT_CHROMA_TEI_URL"` //URL for your hugging face TEI server
ChromaCollectionName string `yaml:"ChromaCollectionName" conf:"env:DISCOGPT_CHROMA_COLLECTION_NAME"`
IOUser string `yaml:"IOUser" conf:"env:DISCOGPT_IO_USER"`
Debug bool `yaml:"Debug" conf:"env:DISCOGPT_DEBUG"` //turns on the debug logger
}
type GenerationRequestModifier ¶
type GenerationRequestModifier func(*oaiCompletionsReq) error
func NewChromaMod ¶
type GeneratorMessager ¶
type HTTPRequestModifier ¶
type Logger ¶
type Logger interface {
Infof(template string, args ...any)
Debugf(template string, args ...any)
Errorf(template string, arg ...any)
Sync() error
}
wrap zap in an interface for mocking
type MessageGenerator ¶
type MessagerMode ¶
type MessagerMode string
const ( DiscordMode MessagerMode = "Discord" IOMode MessagerMode = "IO" )
Click to show internal directories.
Click to hide internal directories.