coai/adapter/midjourney/struct.go
2024-03-12 14:36:18 +08:00

59 lines
1.1 KiB
Go

package midjourney
import (
factory "chat/adapter/common"
"chat/globals"
"fmt"
)
var midjourneyEmptySecret = "null"
type ChatInstance struct {
Endpoint string
ApiSecret string
}
func (c *ChatInstance) GetApiSecret() string {
return c.ApiSecret
}
func (c *ChatInstance) GetEndpoint() string {
return c.Endpoint
}
func (c *ChatInstance) GetMidjourneyHeaders() map[string]string {
secret := c.GetApiSecret()
if secret == "" || secret == midjourneyEmptySecret {
return map[string]string{
"Content-Type": "application/json",
}
}
return map[string]string{
"Content-Type": "application/json",
"mj-api-secret": secret,
}
}
func (c *ChatInstance) GetNotifyEndpoint() string {
return fmt.Sprintf("%s/mj/notify", globals.NotifyUrl)
}
func NewChatInstance(endpoint, apiSecret, whiteList string) *ChatInstance {
SaveWhiteList(whiteList)
return &ChatInstance{
Endpoint: endpoint,
ApiSecret: apiSecret,
}
}
func NewChatInstanceFromConfig(conf globals.ChannelConfig) factory.Factory {
params := conf.SplitRandomSecret(2)
return NewChatInstance(
conf.GetEndpoint(),
params[0], params[1],
)
}