Spaces:
Configuration error
Configuration error
package main | |
// This is a wrapper to statisfy the GRPC service interface | |
// It is meant to be used by the main executable that is the server for the specific backend type (falcon, gpt3, etc) | |
import ( | |
bert "github.com/go-skynet/go-bert.cpp" | |
"github.com/mudler/LocalAI/pkg/grpc/base" | |
pb "github.com/mudler/LocalAI/pkg/grpc/proto" | |
) | |
type Embeddings struct { | |
base.SingleThread | |
bert *bert.Bert | |
} | |
func (llm *Embeddings) Load(opts *pb.ModelOptions) error { | |
model, err := bert.New(opts.ModelFile) | |
llm.bert = model | |
return err | |
} | |
func (llm *Embeddings) Embeddings(opts *pb.PredictOptions) ([]float32, error) { | |
if len(opts.EmbeddingTokens) > 0 { | |
tokens := []int{} | |
for _, t := range opts.EmbeddingTokens { | |
tokens = append(tokens, int(t)) | |
} | |
return llm.bert.TokenEmbeddings(tokens, bert.SetThreads(int(opts.Threads))) | |
} | |
return llm.bert.Embeddings(opts.Embeddings, bert.SetThreads(int(opts.Threads))) | |
} | |