client

package
v0.6.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 5, 2023 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CacheScopeLocal = CacheScope(1)
	CacheScopeL1    = CacheScope(2)
	CacheScopeL2    = CacheScope(4)
)

Variables

This section is empty.

Functions

func NewReader

func NewReader(data interface{}) ([]byte, error)

NewReader creates a new data reader

Types

type Cachable

type Cachable interface {
	CacheKey() string
	CacheKeyAt(index int) string
	BatchSize() int
	FlagCacheHit(index int)
	CacheHit(index int) bool
}

Cachable returns a cacheable key

type CacheScope

type CacheScope int

func (CacheScope) IsL1

func (c CacheScope) IsL1() bool

func (CacheScope) IsL2

func (c CacheScope) IsL2() bool

func (CacheScope) IsLocal

func (c CacheScope) IsLocal() bool

type Config

type Config struct {
	Hosts              []*Host
	Model              string
	CacheSizeMb        int
	CacheScope         *CacheScope
	Datastore          *config.Remote
	MaxRetry           int
	Debug              bool
	DictHashValidation bool
}

Config represents a client config

func (*Config) CacheSize

func (c *Config) CacheSize() int

CacheSize returns cache size

type Dictionary

type Dictionary struct {
	// contains filtered or unexported fields
}

Dictionary represents Dictionary

func NewDictionary

func NewDictionary(dict *common.Dictionary, inputs []*shared.Field) *Dictionary

NewDictionary creates new Dictionary

func (*Dictionary) Fields added in v0.2.2

func (d *Dictionary) Fields() map[string]*shared.Field

func (*Dictionary) KeysLen

func (d *Dictionary) KeysLen() int

type Host

type Host struct {
	Name string
	Port int

	*circut.Breaker
	// contains filtered or unexported fields
}

Host represents endpoint host

func NewHost

func NewHost(name string, port int) *Host

NewHost returns new host

func NewHosts

func NewHosts(port int, names []string) []*Host

NewHosts creates hosts

func (*Host) Init

func (h *Host) Init()

func (*Host) IsSecurePort

func (h *Host) IsSecurePort() bool

IsSecurePort() returns true if secure port

func (*Host) Probe

func (h *Host) Probe()

type Message

type Message struct {
	// contains filtered or unexported fields
}

Message represents the client-side perspective of the ML prediction. The JSON payload is built along the method calls; be sure to call (*Message).start() to set up the opening "{". TODO document how cache management is built into this type. There are 2 "modes" for building the message: single and batch modes. For single mode, the JSON object contents are written to Message.buf per method call. Single mode functions include:

(*Message).StringKey(string, string)
(*Message).IntKey(string, int)
(*Message).FloatKey(string, float32)

Batch mode is initiated by called (*Message).SetBatchSize() to a value greater than 0. For batch mode, the JSON payload is generated when (*Message).end() is called. Batch mode functions include (the type is plural):

(*Message).StringsKey(string, []string)
(*Message).IntsKey(string, []int)
(*Message).FloatsKey(string, []float32)

There is no strict struct for request payload since some of the keys of the request are dynamically generated based on the model inputs. The resulting JSON will have property keys that are set based on the model, and two optional keys, "batch_size" and "cache_key". Depending on if single or batch mode, the property values will be scalars or arrays. See service.Request for server-side perspective.

func (*Message) BatchSize

func (m *Message) BatchSize() int

func (*Message) Bytes

func (m *Message) Bytes() []byte

Bytes returns message bytes

func (*Message) CacheHit

func (m *Message) CacheHit(index int) bool

func (*Message) CacheKey

func (m *Message) CacheKey() string

CacheKey returns cache key

func (*Message) CacheKeyAt

func (m *Message) CacheKeyAt(index int) string

CacheKeyAt returns cache key for supplied index

func (*Message) FlagCacheHit

func (m *Message) FlagCacheHit(index int)

func (*Message) FloatKey

func (m *Message) FloatKey(key string, value float32)

FloatKey sets key/value pair

func (*Message) FloatsKey

func (m *Message) FloatsKey(key string, values []float32)

FloatsKey sets key/values pair

func (*Message) IntKey

func (m *Message) IntKey(key string, value int)

IntKey sets key/value pair

func (*Message) IntsKey

func (m *Message) IntsKey(key string, values []int)

IntsKey sets key/values pair

func (*Message) Release

func (m *Message) Release()

Release releases message to the grpcPool

func (*Message) SetBatchSize added in v0.1.3

func (m *Message) SetBatchSize(batchSize int)

func (*Message) Size

func (m *Message) Size() int

Size returns message size

func (*Message) StringKey

func (m *Message) StringKey(key, value string)

StringKey sets key/value pair

func (*Message) Strings added in v0.2.2

func (m *Message) Strings() []string

Strings is used to debug the current message.

func (*Message) StringsKey

func (m *Message) StringsKey(key string, values []string)

StringsKey sets key/values pair

type Messages

type Messages interface {
	Borrow() *Message
}

Messages represent a message

func NewMessages

func NewMessages(newDict func() *Dictionary) Messages

NewMessages creates a new message grpcPool

type Option

type Option interface {
	Apply(c *Service)
}

Option client option

func WithCacheScope

func WithCacheScope(scope CacheScope) Option

WithCacheScope creates cache scope option

func WithCacheSize

func WithCacheSize(sizeMB int) Option

WithCacheSize returns cache size MB

func WithDataStorer

func WithDataStorer(storer datastore.Storer) Option

WithDataStorer creates dictionary option

func WithDebug added in v0.6.0

func WithDebug(enable bool) Option

func WithDictionary

func WithDictionary(dictionary *Dictionary) Option

WithDictionary creates dictionary option

func WithGmetrics

func WithGmetrics(gmetrics *gmetric.Service) Option

WithGmetrics returns gmetric options

func WithHashValidation

func WithHashValidation(enable bool) Option

WithHashValidation creates a new dict has validation

func WithRemoteConfig

func WithRemoteConfig(config *cconfig.Remote) Option

WithCacheScope creates cache scope option

type Releaser

type Releaser interface {
	Release()
}

Releaser releaser

type Response

type Response struct {
	Status      string        `json:"status"`
	Error       string        `json:"error,omitempty"`
	ServiceTime time.Duration `json:"serviceTime"`
	DictHash    int           `json:"dictHash"`
	Data        interface{}   `json:"data"`
}

Response represents a response

func NewResponse

func NewResponse(data interface{}) *Response

NewResponse creates a new response

func (*Response) DataItemType

func (r *Response) DataItemType() reflect.Type

func (*Response) NKeys

func (r *Response) NKeys() int

NKeys returns object keys JSON (gojay API)

func (*Response) UnmarshalJSONObject

func (r *Response) UnmarshalJSONObject(dec *gojay.Decoder, key string) error

UnmarshalJSONObject unmsrhal JSON (gojay API)

type Service

type Service struct {
	Config
	sync.RWMutex
	// contains filtered or unexported fields
}

Service represent mly client

func New

func New(model string, hosts []*Host, options ...Option) (*Service, error)

New creates new mly client

func (*Service) Close

func (s *Service) Close() error

Close closes the service

func (*Service) NewMessage

func (s *Service) NewMessage() *Message

NewMessage returns a new message

func (*Service) Run

func (s *Service) Run(ctx context.Context, input interface{}, response *Response) error

Run run model prediction

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL