39 lines
796 B
Go
39 lines
796 B
Go
package bootstrap
|
|
|
|
import (
|
|
"ai-css/library/modelprovider"
|
|
"ai-css/library/modelprovider/config"
|
|
"ai-css/library/modelprovider/consts"
|
|
)
|
|
|
|
type ClientOption func(*Options)
|
|
|
|
type Options struct {
|
|
ProviderName consts.ProviderName
|
|
Provider modelprovider.Provider
|
|
ProviderConfig *config.ProviderConfig
|
|
DefaultModel string
|
|
}
|
|
|
|
func WithProviderName(name consts.ProviderName) ClientOption {
|
|
return func(o *Options) {
|
|
o.ProviderName = name
|
|
}
|
|
}
|
|
|
|
func WithProvider(p modelprovider.Provider) ClientOption {
|
|
return func(o *Options) {
|
|
o.Provider = p
|
|
}
|
|
}
|
|
|
|
func WithProviderConfig(cfg *config.ProviderConfig) ClientOption {
|
|
return func(o *Options) {
|
|
o.ProviderConfig = cfg
|
|
}
|
|
}
|
|
|
|
func WithDefaultModel(model string) ClientOption {
|
|
return func(o *Options) { o.DefaultModel = model }
|
|
}
|