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

55 lines
1.1 KiB
Go

package skylark
import (
factory "chat/adapter/common"
"chat/globals"
"github.com/volcengine/volc-sdk-golang/service/maas"
"strings"
)
const (
defaultHost = "maas-api.ml-platform-cn-beijing.volces.com"
defaultRegion = "cn-beijing"
)
type ChatInstance struct {
Instance *maas.MaaS
}
func getHost(endpoint string) string {
seg := strings.Split(endpoint, "://")
if len(seg) > 1 && seg[1] != "" {
return seg[1]
}
return defaultHost
}
func getRegion(endpoint string) string {
host := getHost(endpoint)
seg := strings.TrimSuffix(strings.TrimPrefix(host, "maas-api.ml-platform-"), ".volces.com")
if seg != "" {
return seg
}
return defaultRegion
}
func NewChatInstance(endpoint, accessKey, secretKey string) *ChatInstance {
instance := maas.NewInstance(getHost(endpoint), getRegion(endpoint))
instance.SetAccessKey(accessKey)
instance.SetSecretKey(secretKey)
return &ChatInstance{
Instance: instance,
}
}
func NewChatInstanceFromConfig(conf globals.ChannelConfig) factory.Factory {
params := conf.SplitRandomSecret(2)
return NewChatInstance(
conf.GetEndpoint(),
params[0], params[1],
)
}