mirror of
https://github.com/mudler/LocalAI.git
synced 2024-12-24 06:46:39 +00:00
109 lines
1.9 KiB
Go
109 lines
1.9 KiB
Go
|
package api
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
model "github.com/go-skynet/LocalAI/pkg/model"
|
||
|
)
|
||
|
|
||
|
type Option struct {
|
||
|
context context.Context
|
||
|
configFile string
|
||
|
loader *model.ModelLoader
|
||
|
uploadLimitMB, threads, ctxSize int
|
||
|
f16 bool
|
||
|
debug, disableMessage bool
|
||
|
imageDir string
|
||
|
cors bool
|
||
|
corsAllowOrigins string
|
||
|
}
|
||
|
|
||
|
type AppOption func(*Option)
|
||
|
|
||
|
func newOptions(o ...AppOption) *Option {
|
||
|
opt := &Option{
|
||
|
context: context.Background(),
|
||
|
uploadLimitMB: 15,
|
||
|
threads: 1,
|
||
|
ctxSize: 512,
|
||
|
debug: true,
|
||
|
disableMessage: true,
|
||
|
}
|
||
|
for _, oo := range o {
|
||
|
oo(opt)
|
||
|
}
|
||
|
return opt
|
||
|
}
|
||
|
|
||
|
func WithCors(b bool) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.cors = b
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithCorsAllowOrigins(b string) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.corsAllowOrigins = b
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithContext(ctx context.Context) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.context = ctx
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithConfigFile(configFile string) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.configFile = configFile
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithModelLoader(loader *model.ModelLoader) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.loader = loader
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithUploadLimitMB(limit int) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.uploadLimitMB = limit
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithThreads(threads int) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.threads = threads
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithContextSize(ctxSize int) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.ctxSize = ctxSize
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithF16(f16 bool) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.f16 = f16
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithDebug(debug bool) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.debug = debug
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithDisableMessage(disableMessage bool) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.disableMessage = disableMessage
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithImageDir(imageDir string) AppOption {
|
||
|
return func(o *Option) {
|
||
|
o.imageDir = imageDir
|
||
|
}
|
||
|
}
|