Help us shape the future of Go! Take the 2026 Go Developer Survey

batch

package
v1.37.10 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2026 License: BSD-3-Clause Imports: 19 Imported by: 1

Documentation

Index

Constants

View Source
const BatchChannelSize = 100

Variables

This section is empty.

Functions

func GetTokensCount added in v1.32.6

func GetTokensCount(model string, input string, tke *tiktoken.Tiktoken) int

Types

type Batch

type Batch[T dto.Embedding] struct {
	Label string
	// contains filtered or unexported fields
}

func NewBatchVectorizer

func NewBatchVectorizer[T dto.Embedding](client BatchClient[T], maxBatchTime time.Duration, settings Settings, logger logrus.FieldLogger, label string) *Batch[T]

func (*Batch[T]) SubmitBatchAndWait

func (b *Batch[T]) SubmitBatchAndWait(ctx context.Context, cfg moduletools.ClassConfig, skipObject []bool, tokenCounts []int, texts []string) ([]T, map[int]error)

type BatchClient

type BatchClient[T dto.Embedding] interface {
	Vectorize(ctx context.Context, input []string,
		config moduletools.ClassConfig) (*modulecomponents.VectorizationResult[T], *modulecomponents.RateLimits, int, error)
	GetVectorizerRateLimit(ctx context.Context, config moduletools.ClassConfig) *modulecomponents.RateLimits
	GetApiKeyHash(ctx context.Context, config moduletools.ClassConfig) [32]byte
}

type BatchJob

type BatchJob[T dto.Embedding] struct {
	// contains filtered or unexported fields
}

type BatchSimple added in v1.35.23

type BatchSimple[T dto.Embedding] struct {
	// contains filtered or unexported fields
}

BatchSimple exposes the per-object (VectorizeBatch) and per-batch (VectorizeBatchObjects) vectorization helpers used by modules that do not need the full token-aware Batch[T] pipeline.

When a positive RPM is supplied to NewBatchSimple, requests are paced by a token-bucket limiter. One limiter token is reserved per input embedding (NOT per HTTP request) because some providers — e.g. Google Gemini — count each embedding as a separate request against the RPM quota even when multiple inputs are batched into a single HTTP call.

func NewBatchSimple added in v1.35.23

func NewBatchSimple[T dto.Embedding](logger logrus.FieldLogger, rpm int) *BatchSimple[T]

NewBatchSimple returns a BatchSimple. When rpm > 0 requests are limited to approximately rpm embeddings per minute with a burst of max(rpm/60, 1). When rpm <= 0 no rate limiting is applied.

func (*BatchSimple[T]) VectorizeBatch added in v1.35.23

func (b *BatchSimple[T]) VectorizeBatch(
	ctx context.Context,
	objs []*models.Object,
	skipObject []bool,
	cfg moduletools.ClassConfig,
	vectorize objectVectorizer[T],
) ([]T, []models.AdditionalProperties, map[int]error)

func (*BatchSimple[T]) VectorizeBatchObjects added in v1.35.23

func (b *BatchSimple[T]) VectorizeBatchObjects(
	ctx context.Context,
	objs []*models.Object,
	skipObject []bool,
	cfg moduletools.ClassConfig,
	vectorize batchObjectsVectorizer[T],
	batchSize int,
) ([]T, []models.AdditionalProperties, map[int]error)

type EncoderCache added in v1.27.18

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

func NewEncoderCache added in v1.27.18

func NewEncoderCache() *EncoderCache

func (*EncoderCache) Get added in v1.27.18

func (e *EncoderCache) Get(model string) (*tiktoken.Tiktoken, bool)

func (*EncoderCache) Set added in v1.27.18

func (e *EncoderCache) Set(model string, tk *tiktoken.Tiktoken)

type Settings added in v1.25.25

type Settings struct {
	TokenMultiplier    float32
	MaxTimePerBatch    float64
	MaxObjectsPerBatch int
	MaxTokensPerBatch  func(cfg moduletools.ClassConfig) int
	HasTokenLimit      bool
	ReturnsRateLimit   bool
}

type TokenizerFuncType added in v1.25.25

type TokenizerFuncType func(ctx context.Context, objects []*models.Object, skipObject []bool, cfg moduletools.ClassConfig, objectVectorizer *objectsvectorizer.ObjectVectorizer, encoderCache *EncoderCache) ([]string, []int, []bool, bool, error)

func ReturnBatchTokenizer added in v1.25.25

func ReturnBatchTokenizer(multiplier float32, moduleName string, lowerCaseInput bool) TokenizerFuncType

func ReturnBatchTokenizerWithAltNames added in v1.31.20

func ReturnBatchTokenizerWithAltNames(multiplier float32, moduleName string, altNames []string, lowerCaseInput bool) TokenizerFuncType

Jump to

Keyboard shortcuts

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