KevinStephenson
Adding in weaviate code
b110593
raw
history blame
1.66 kB
// _ _
// __ _____ __ ___ ___ __ _| |_ ___
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
// \ V V / __/ (_| |\ V /| | (_| | || __/
// \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
//
// Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
//
// CONTACT: [email protected]
//
package vectorizer
import (
"context"
"github.com/pkg/errors"
"github.com/weaviate/weaviate/entities/moduletools"
"github.com/weaviate/weaviate/modules/text2vec-contextionary/vectorizer"
"github.com/weaviate/weaviate/modules/text2vec-huggingface/ent"
libvectorizer "github.com/weaviate/weaviate/usecases/vectorizer"
)
func (v *Vectorizer) VectorizeInput(ctx context.Context, input string,
icheck vectorizer.ClassIndexCheck,
) ([]float32, error) {
res, err := v.client.VectorizeQuery(ctx, input, ent.VectorizationConfig{})
if err != nil {
return nil, err
}
return res.Vector, nil
}
func (v *Vectorizer) Texts(ctx context.Context, inputs []string,
cfg moduletools.ClassConfig,
) ([]float32, error) {
settings := NewClassSettings(cfg)
vectors := make([][]float32, len(inputs))
for i := range inputs {
res, err := v.client.VectorizeQuery(ctx, inputs[i], ent.VectorizationConfig{
EndpointURL: settings.EndpointURL(),
Model: settings.QueryModel(),
WaitForModel: settings.OptionWaitForModel(),
UseGPU: settings.OptionUseGPU(),
UseCache: settings.OptionUseCache(),
})
if err != nil {
return nil, errors.Wrap(err, "remote client vectorize")
}
vectors[i] = res.Vector
}
return libvectorizer.CombineVectors(vectors), nil
}