embedding

package
v0.21.0 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2026 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package embedding instruments Core embedding calls with OpenTelemetry.

Index

Examples

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidConfig = errors.New("otel/embedding: invalid config")
	ErrInvalidModel  = errors.New("otel/embedding: invalid model")
)

Functions

This section is empty.

Types

type Middleware

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

Middleware is an immutable embedding instrumentation decorator.

func NewMiddleware

func NewMiddleware(config MiddlewareConfig) (Middleware, error)

NewMiddleware snapshots provider identity and resolves nil OTel providers to the official process globals.

func (Middleware) Wrap

Wrap decorates one embedding Model without changing its request, response, or error semantics.

Example
package main

import (
	"context"
	"fmt"

	coreembedding "github.com/Tangerg/scope/core/embedding"
	otelembedding "github.com/Tangerg/scope/otel/embedding"
)

func main() {
	middleware, err := otelembedding.NewMiddleware(otelembedding.MiddlewareConfig{Provider: "example"})
	if err != nil {
		panic(err)
	}
	model, err := middleware.Wrap(coreembedding.ModelFunc(func(context.Context, *coreembedding.Request) (*coreembedding.Response, error) {
		return &coreembedding.Response{Metadata: &coreembedding.ResponseMetadata{Model: "served-model"}}, nil
	}))
	if err != nil {
		panic(err)
	}
	request, err := coreembedding.NewRequest([]string{"text"})
	if err != nil {
		panic(err)
	}
	response, err := model.Call(context.Background(), request)
	if err != nil {
		panic(err)
	}

	fmt.Println(response.Metadata.Model)
}
Output:
served-model

type MiddlewareConfig

type MiddlewareConfig struct {
	Provider       string
	TracerProvider trace.TracerProvider
	MeterProvider  metric.MeterProvider
	// LoggerProvider receives GenAI exception events. Nil uses the global provider.
	LoggerProvider log.LoggerProvider
}

MiddlewareConfig identifies the provider and optional OTel providers used by embedding instrumentation.

func (MiddlewareConfig) Validate

func (m MiddlewareConfig) Validate() error

Validate checks construction inputs without resolving global providers.

Jump to

Keyboard shortcuts

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