loadbalance

package
v1.0.21 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package loadbalance provides a virtual provider that distributes requests across multiple providers. It supports multiple strategies including round-robin, random, and weighted distribution for load balancing and resource optimization.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Strategy      Strategy `yaml:"strategy"`
	ProviderNames []string `yaml:"providers"`
}

type LoadBalanceProvider

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

LoadBalanceProvider distributes requests across providers

func NewLoadBalanceProvider

func NewLoadBalanceProvider(name string, config *Config) *LoadBalanceProvider

func (*LoadBalanceProvider) Authenticate

func (lb *LoadBalanceProvider) Authenticate(ctx context.Context, authConfig types.AuthConfig) error

func (*LoadBalanceProvider) Configure

func (lb *LoadBalanceProvider) Configure(config types.ProviderConfig) error

func (*LoadBalanceProvider) Description

func (lb *LoadBalanceProvider) Description() string

func (*LoadBalanceProvider) GenerateChatCompletion

func (lb *LoadBalanceProvider) GenerateChatCompletion(ctx context.Context, opts types.GenerateOptions) (types.ChatCompletionStream, error)

func (*LoadBalanceProvider) GetConfig

func (lb *LoadBalanceProvider) GetConfig() types.ProviderConfig

func (*LoadBalanceProvider) GetDefaultModel

func (lb *LoadBalanceProvider) GetDefaultModel() string

func (*LoadBalanceProvider) GetMetrics

func (lb *LoadBalanceProvider) GetMetrics() types.ProviderMetrics

func (*LoadBalanceProvider) GetModels

func (lb *LoadBalanceProvider) GetModels(ctx context.Context) ([]types.Model, error)

func (*LoadBalanceProvider) GetToolFormat

func (lb *LoadBalanceProvider) GetToolFormat() types.ToolFormat

func (*LoadBalanceProvider) HealthCheck

func (lb *LoadBalanceProvider) HealthCheck(ctx context.Context) error

func (*LoadBalanceProvider) InvokeServerTool

func (lb *LoadBalanceProvider) InvokeServerTool(ctx context.Context, toolName string, params interface{}) (interface{}, error)

func (*LoadBalanceProvider) IsAuthenticated

func (lb *LoadBalanceProvider) IsAuthenticated() bool

func (*LoadBalanceProvider) Logout

func (lb *LoadBalanceProvider) Logout(ctx context.Context) error

func (*LoadBalanceProvider) Name

func (lb *LoadBalanceProvider) Name() string

func (*LoadBalanceProvider) SetMetricsCollector added in v1.0.7

func (lb *LoadBalanceProvider) SetMetricsCollector(collector types.MetricsCollector)

func (*LoadBalanceProvider) SetProviders

func (lb *LoadBalanceProvider) SetProviders(providers []types.Provider)

func (*LoadBalanceProvider) SupportsResponsesAPI

func (lb *LoadBalanceProvider) SupportsResponsesAPI() bool

func (*LoadBalanceProvider) SupportsStreaming

func (lb *LoadBalanceProvider) SupportsStreaming() bool

func (*LoadBalanceProvider) SupportsToolCalling

func (lb *LoadBalanceProvider) SupportsToolCalling() bool

func (*LoadBalanceProvider) Type

type Strategy

type Strategy string
const (
	StrategyRoundRobin Strategy = "round_robin"
	StrategyRandom     Strategy = "random"
	StrategyWeighted   Strategy = "weighted"
)

Jump to

Keyboard shortcuts

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