weaviate

Форк
0
54 строки · 1.6 Кб
1
//                           _       _
2
// __      _____  __ ___   ___  __ _| |_ ___
3
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
4
//  \ V  V /  __/ (_| |\ V /| | (_| | ||  __/
5
//   \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
6
//
7
//  Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
8
//
9
//  CONTACT: hello@weaviate.io
10
//
11

12
package vectorizer
13

14
import (
15
	"context"
16

17
	"github.com/pkg/errors"
18
	"github.com/weaviate/weaviate/entities/moduletools"
19
	"github.com/weaviate/weaviate/modules/text2vec-contextionary/vectorizer"
20
	"github.com/weaviate/weaviate/modules/text2vec-huggingface/ent"
21
	libvectorizer "github.com/weaviate/weaviate/usecases/vectorizer"
22
)
23

24
func (v *Vectorizer) VectorizeInput(ctx context.Context, input string,
25
	icheck vectorizer.ClassIndexCheck,
26
) ([]float32, error) {
27
	res, err := v.client.VectorizeQuery(ctx, input, ent.VectorizationConfig{})
28
	if err != nil {
29
		return nil, err
30
	}
31
	return res.Vector, nil
32
}
33

34
func (v *Vectorizer) Texts(ctx context.Context, inputs []string,
35
	cfg moduletools.ClassConfig,
36
) ([]float32, error) {
37
	settings := NewClassSettings(cfg)
38
	vectors := make([][]float32, len(inputs))
39
	for i := range inputs {
40
		res, err := v.client.VectorizeQuery(ctx, inputs[i], ent.VectorizationConfig{
41
			EndpointURL:  settings.EndpointURL(),
42
			Model:        settings.QueryModel(),
43
			WaitForModel: settings.OptionWaitForModel(),
44
			UseGPU:       settings.OptionUseGPU(),
45
			UseCache:     settings.OptionUseCache(),
46
		})
47
		if err != nil {
48
			return nil, errors.Wrap(err, "remote client vectorize")
49
		}
50
		vectors[i] = res.Vector
51
	}
52

53
	return libvectorizer.CombineVectors(vectors), nil
54
}
55

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.