Documentation
¶
Index ¶
- Variables
- type Config
- type LangRouter
- type LangRouterConfig
- func (c *LangRouterConfig) BuildModels(tel *telemetry.Telemetry) ([]*providers.LanguageModel, []*providers.LanguageModel, error)
- func (c *LangRouterConfig) BuildRetry() *retry.ExpRetry
- func (c *LangRouterConfig) BuildRouting(chatModels []*providers.LanguageModel, ...) (routing.LangModelRouting, routing.LangModelRouting, error)
- func (c *LangRouterConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
- type RouterID
- type RouterManager
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNoModels = errors.New("no models configured for router")
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
LanguageRouters []LangRouterConfig `yaml:"language" validate:"required,gte=1,dive"` // the list of language routers
}
func (*Config) BuildLangRouters ¶
func (c *Config) BuildLangRouters(tel *telemetry.Telemetry) ([]*LangRouter, error)
type LangRouter ¶
type LangRouter struct {
Config *LangRouterConfig
// contains filtered or unexported fields
}
func NewLangRouter ¶
func NewLangRouter(cfg *LangRouterConfig, tel *telemetry.Telemetry) (*LangRouter, error)
func (*LangRouter) Chat ¶
func (r *LangRouter) Chat(ctx context.Context, req *schemas.ChatRequest) (*schemas.ChatResponse, error)
func (*LangRouter) ChatStream ¶
func (r *LangRouter) ChatStream( ctx context.Context, req *schemas.ChatStreamRequest, respC chan<- *schemas.ChatStreamMessage, )
func (*LangRouter) ID ¶
func (r *LangRouter) ID() RouterID
type LangRouterConfig ¶
type LangRouterConfig struct {
ID string `yaml:"id" json:"routers" validate:"required"` // Unique router ID
Enabled bool `yaml:"enabled" json:"enabled" validate:"required"` // Is router enabled?
Retry *retry.ExpRetryConfig `yaml:"retry" json:"retry" validate:"required"` // retry when no healthy model is available to router
RoutingStrategy routing.Strategy `yaml:"strategy" json:"strategy" swaggertype:"primitive,string" validate:"required"` // strategy on picking the next model to serve the request
Models []providers.LangModelConfig `yaml:"models" json:"models" validate:"required,min=1,dive"` // the list of models that could handle requests
}
TODO: how to specify other backoff strategies? TODO: Had to keep RoutingStrategy because of https://github.com/swaggo/swag/issues/1738 LangRouterConfig
func DefaultLangRouterConfig ¶
func DefaultLangRouterConfig() LangRouterConfig
func (*LangRouterConfig) BuildModels ¶
func (c *LangRouterConfig) BuildModels(tel *telemetry.Telemetry) ([]*providers.LanguageModel, []*providers.LanguageModel, error)
BuildModels creates LanguageModel slice out of the given config
func (*LangRouterConfig) BuildRetry ¶
func (c *LangRouterConfig) BuildRetry() *retry.ExpRetry
func (*LangRouterConfig) BuildRouting ¶
func (c *LangRouterConfig) BuildRouting( chatModels []*providers.LanguageModel, chatStreamModels []*providers.LanguageModel, ) (routing.LangModelRouting, routing.LangModelRouting, error)
func (*LangRouterConfig) UnmarshalYAML ¶
func (c *LangRouterConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
type RouterManager ¶
type RouterManager struct {
Config *Config
// contains filtered or unexported fields
}
func NewManager ¶
func NewManager(cfg *Config, tel *telemetry.Telemetry) (*RouterManager, error)
NewManager creates a new instance of Router Manager that creates, holds and returns all routers
func (*RouterManager) GetLangRouter ¶
func (r *RouterManager) GetLangRouter(routerID string) (*LangRouter, error)
GetLangRouter returns a router by type and ID
func (*RouterManager) GetLangRouters ¶
func (r *RouterManager) GetLangRouters() []*LangRouter
Click to show internal directories.
Click to hide internal directories.