mirror of
https://github.com/mudler/LocalAI.git
synced 2025-05-25 21:15:00 +00:00
fix(model-loading): keep track of open GRPC Clients (#3377)
Due to a previous refactor we moved the client constructor tight to the model address, however that was just a string which we would use to build the client each time. With this change we make the loader to return a *Model which carries a constructor for the client and stores the client on the first connection. Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
This commit is contained in:
parent
771a052480
commit
7f06954425
10 changed files with 176 additions and 171 deletions
29
pkg/model/model.go
Normal file
29
pkg/model/model.go
Normal file
|
@ -0,0 +1,29 @@
|
|||
package model
|
||||
|
||||
import grpc "github.com/mudler/LocalAI/pkg/grpc"
|
||||
|
||||
type Model struct {
|
||||
address string
|
||||
client grpc.Backend
|
||||
}
|
||||
|
||||
func NewModel(address string) *Model {
|
||||
return &Model{
|
||||
address: address,
|
||||
}
|
||||
}
|
||||
|
||||
func (m *Model) GRPC(parallel bool, wd *WatchDog) grpc.Backend {
|
||||
if m.client != nil {
|
||||
return m.client
|
||||
}
|
||||
|
||||
enableWD := false
|
||||
if wd != nil {
|
||||
enableWD = true
|
||||
}
|
||||
|
||||
client := grpc.NewClient(m.address, parallel, wd, enableWD)
|
||||
m.client = client
|
||||
return client
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue