extproc

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2025 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func StartConfigWatcher

func StartConfigWatcher(ctx context.Context, path string, rcv ConfigReceiver, l *slog.Logger, tick time.Duration) error

StartConfigWatcher starts a watcher for the given path and Receiver. Periodically checks the file for changes and calls the Receiver's UpdateConfig method.

Types

type ConfigReceiver

type ConfigReceiver interface {
	// LoadConfig updates the configuration.
	LoadConfig(ctx context.Context, config *filterapi.Config) error
}

ConfigReceiver is an interface that can receive *filterapi.Config updates. This is mostly for decoupling and testing purposes.

type Processor

type Processor interface {
	// ProcessRequestHeaders processes the request headers message.
	ProcessRequestHeaders(context.Context, *corev3.HeaderMap) (*extprocv3.ProcessingResponse, error)
	// ProcessRequestBody processes the request body message.
	ProcessRequestBody(context.Context, *extprocv3.HttpBody) (*extprocv3.ProcessingResponse, error)
	// ProcessResponseHeaders processes the response headers message.
	ProcessResponseHeaders(context.Context, *corev3.HeaderMap) (*extprocv3.ProcessingResponse, error)
	// ProcessResponseBody processes the response body message.
	ProcessResponseBody(context.Context, *extprocv3.HttpBody) (*extprocv3.ProcessingResponse, error)
}

Processor is the interface for the processor. This decouples the processor implementation detail from the server implementation.

func NewModelsProcessor

func NewModelsProcessor(config *processorConfig, _ map[string]string, logger *slog.Logger) (Processor, error)

NewModelsProcessor creates a new processor that returns the list of declared models

type ProcessorFactory

type ProcessorFactory func(*processorConfig, map[string]string, *slog.Logger) (Processor, error)

ProcessorFactory is the factory function used to create new instances of a processor.

func ChatCompletionProcessorFactory added in v0.1.3

func ChatCompletionProcessorFactory(ccm metrics.ChatCompletion) ProcessorFactory

ChatCompletionProcessorFactory returns a factory method to instantiate the chat completion processor.

type Server

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

Server implements the external processor server.

func NewServer

func NewServer(logger *slog.Logger) (*Server, error)

NewServer creates a new external processor server.

func (*Server) LoadConfig

func (s *Server) LoadConfig(ctx context.Context, config *filterapi.Config) error

LoadConfig updates the configuration of the external processor.

func (*Server) Process

Process implements extprocv3.ExternalProcessorServer.

func (*Server) Register

func (s *Server) Register(path string, newProcessor ProcessorFactory)

Register a new processor for the given request path.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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