Spaces:
Configuration error
Configuration error
| package model | |
| import ( | |
| "context" | |
| pb "github.com/mudler/LocalAI/pkg/grpc/proto" | |
| ) | |
| type Options struct { | |
| backendString string | |
| model string | |
| modelID string | |
| assetDir string | |
| context context.Context | |
| gRPCOptions *pb.ModelOptions | |
| externalBackends map[string]string | |
| grpcAttempts int | |
| grpcAttemptsDelay int | |
| singleActiveBackend bool | |
| parallelRequests bool | |
| } | |
| type Option func(*Options) | |
| var EnableParallelRequests = func(o *Options) { | |
| o.parallelRequests = true | |
| } | |
| func WithExternalBackend(name string, uri string) Option { | |
| return func(o *Options) { | |
| if o.externalBackends == nil { | |
| o.externalBackends = make(map[string]string) | |
| } | |
| o.externalBackends[name] = uri | |
| } | |
| } | |
| func WithGRPCAttempts(attempts int) Option { | |
| return func(o *Options) { | |
| o.grpcAttempts = attempts | |
| } | |
| } | |
| func WithGRPCAttemptsDelay(delay int) Option { | |
| return func(o *Options) { | |
| o.grpcAttemptsDelay = delay | |
| } | |
| } | |
| func WithBackendString(backend string) Option { | |
| return func(o *Options) { | |
| o.backendString = backend | |
| } | |
| } | |
| func WithModel(modelFile string) Option { | |
| return func(o *Options) { | |
| o.model = modelFile | |
| } | |
| } | |
| func WithLoadGRPCLoadModelOpts(opts *pb.ModelOptions) Option { | |
| return func(o *Options) { | |
| o.gRPCOptions = opts | |
| } | |
| } | |
| func WithAssetDir(assetDir string) Option { | |
| return func(o *Options) { | |
| o.assetDir = assetDir | |
| } | |
| } | |
| func WithContext(ctx context.Context) Option { | |
| return func(o *Options) { | |
| o.context = ctx | |
| } | |
| } | |
| func WithSingleActiveBackend() Option { | |
| return func(o *Options) { | |
| o.singleActiveBackend = true | |
| } | |
| } | |
| func WithModelID(id string) Option { | |
| return func(o *Options) { | |
| o.modelID = id | |
| } | |
| } | |
| func NewOptions(opts ...Option) *Options { | |
| o := &Options{ | |
| gRPCOptions: &pb.ModelOptions{}, | |
| context: context.Background(), | |
| grpcAttempts: 20, | |
| grpcAttemptsDelay: 2, | |
| } | |
| for _, opt := range opts { | |
| opt(o) | |
| } | |
| return o | |
| } | |