Skip to content

Commit

Permalink
#67: Renamed routers to router package
Browse files Browse the repository at this point in the history
  • Loading branch information
roma-glushko committed Aug 12, 2024
1 parent f872d72 commit f55b24e
Show file tree
Hide file tree
Showing 29 changed files with 54 additions and 55 deletions.
10 changes: 5 additions & 5 deletions pkg/api/http/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"context"
"sync"

"github.com/EinStack/glide/pkg/routers"
"github.com/EinStack/glide/pkg/router"

"github.com/EinStack/glide/pkg/api/schemas"
"github.com/EinStack/glide/pkg/telemetry"
Expand Down Expand Up @@ -32,7 +32,7 @@ type Handler = func(c *fiber.Ctx) error
// @Failure 400 {object} schemas.Error
// @Failure 404 {object} schemas.Error
// @Router /v1/language/{router}/chat [POST]
func LangChatHandler(routerManager *routers.RouterManager) Handler {
func LangChatHandler(routerManager *router.Manager) Handler {
return func(c *fiber.Ctx) error {
if !c.Is("json") {
return c.Status(fiber.StatusBadRequest).JSON(schemas.ErrUnsupportedMediaType)
Expand Down Expand Up @@ -73,7 +73,7 @@ func LangChatHandler(routerManager *routers.RouterManager) Handler {
}
}

func LangStreamRouterValidator(routerManager *routers.RouterManager) Handler {
func LangStreamRouterValidator(routerManager *router.Manager) Handler {
return func(c *fiber.Ctx) error {
if websocket.IsWebSocketUpgrade(c) {
routerID := c.Params("router")
Expand Down Expand Up @@ -108,7 +108,7 @@ func LangStreamRouterValidator(routerManager *routers.RouterManager) Handler {
// @Failure 426
// @Failure 404 {object} schemas.Error
// @Router /v1/language/{router}/chatStream [GET]
func LangStreamChatHandler(tel *telemetry.Telemetry, routerManager *routers.RouterManager) Handler {
func LangStreamChatHandler(tel *telemetry.Telemetry, routerManager *router.Manager) Handler {
// TODO: expose websocket connection configs https://github.com/gofiber/contrib/tree/main/websocket
return websocket.New(func(c *websocket.Conn) {
routerID := c.Params("router")
Expand Down Expand Up @@ -176,7 +176,7 @@ func LangStreamChatHandler(tel *telemetry.Telemetry, routerManager *routers.Rout
// @Produce json
// @Success 200 {object} schemas.RouterListSchema
// @Router /v1/language/ [GET]
func LangRoutersHandler(routerManager *routers.RouterManager) Handler {
func LangRoutersHandler(routerManager *router.Manager) Handler {
return func(c *fiber.Ctx) error {
configuredRouters := routerManager.GetLangRouters()
cfgs := make([]interface{}, 0, len(configuredRouters)) // opaque by design
Expand Down
6 changes: 3 additions & 3 deletions pkg/api/http/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"fmt"
"time"

"github.com/EinStack/glide/pkg/routers"
"github.com/EinStack/glide/pkg/router"

"github.com/gofiber/contrib/otelfiber"

Expand All @@ -25,11 +25,11 @@ import (
type Server struct {
config *ServerConfig
telemetry *telemetry.Telemetry
routerManager *routers.RouterManager
routerManager *router.Manager
server *fiber.App
}

func NewServer(config *ServerConfig, tel *telemetry.Telemetry, routerManager *routers.RouterManager) (*Server, error) {
func NewServer(config *ServerConfig, tel *telemetry.Telemetry, routerManager *router.Manager) (*Server, error) {
srv := config.ToServer()

return &Server{
Expand Down
4 changes: 2 additions & 2 deletions pkg/api/servers.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"context"
"sync"

"github.com/EinStack/glide/pkg/routers"
"github.com/EinStack/glide/pkg/router"

"go.uber.org/zap"

Expand All @@ -19,7 +19,7 @@ type ServerManager struct {
telemetry *telemetry.Telemetry
}

func NewServerManager(cfg *Config, tel *telemetry.Telemetry, router *routers.RouterManager) (*ServerManager, error) {
func NewServerManager(cfg *Config, tel *telemetry.Telemetry, router *router.Manager) (*ServerManager, error) {
httpServer, err := http.NewServer(cfg.HTTP, tel, router)
if err != nil {
return nil, err
Expand Down
8 changes: 4 additions & 4 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ package config

import (
"github.com/EinStack/glide/pkg/api"
"github.com/EinStack/glide/pkg/routers"
"github.com/EinStack/glide/pkg/router"
"github.com/EinStack/glide/pkg/telemetry"
)

// Config is a general top-level Glide configuration
type Config struct {
Telemetry *telemetry.Config `yaml:"telemetry" validate:"required"`
API *api.Config `yaml:"api" validate:"required"`
Routers routers.RoutersConfig `yaml:"routers" validate:"required"`
Telemetry *telemetry.Config `yaml:"telemetry" validate:"required"`
API *api.Config `yaml:"api" validate:"required"`
Routers router.RoutersConfig `yaml:"routers" validate:"required"`
}

func DefaultConfig() *Config {
Expand Down
2 changes: 1 addition & 1 deletion pkg/extmodel/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (

"github.com/EinStack/glide/pkg/clients"
"github.com/EinStack/glide/pkg/resiliency/health"
"github.com/EinStack/glide/pkg/routers/latency"
"github.com/EinStack/glide/pkg/router/latency"
"github.com/EinStack/glide/pkg/telemetry"
)

Expand Down
2 changes: 1 addition & 1 deletion pkg/extmodel/lang.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

"github.com/EinStack/glide/pkg/config/fields"

"github.com/EinStack/glide/pkg/routers/latency"
"github.com/EinStack/glide/pkg/router/latency"

"github.com/EinStack/glide/pkg/api/schemas"
)
Expand Down
2 changes: 1 addition & 1 deletion pkg/extmodel/testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"time"

"github.com/EinStack/glide/pkg/config/fields"
"github.com/EinStack/glide/pkg/routers/latency"
"github.com/EinStack/glide/pkg/router/latency"
)

// LangModelMock
Expand Down
4 changes: 2 additions & 2 deletions pkg/gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"os/signal"
"syscall"

"github.com/EinStack/glide/pkg/routers"
"github.com/EinStack/glide/pkg/router"

"github.com/EinStack/glide/pkg/version"
"go.opentelemetry.io/contrib/instrumentation/host"
Expand Down Expand Up @@ -50,7 +50,7 @@ func NewGateway(configProvider *config.Provider) (*Gateway, error) {
tel.L().Info("🐦Glide is starting up", zap.String("version", version.FullVersion))
tel.L().Debug("✅ Config loaded successfully:\n" + configProvider.GetStr())

routerManager, err := routers.NewManager(&cfg.Routers, tel)
routerManager, err := router.NewManager(&cfg.Routers, tel)
if err != nil {
return nil, err
}
Expand Down
13 changes: 6 additions & 7 deletions pkg/routers/config.go → pkg/router/config.go
Original file line number Diff line number Diff line change
@@ -1,31 +1,30 @@
package routers
package router

import (
"github.com/EinStack/glide/pkg/resiliency/retry"
"github.com/EinStack/glide/pkg/routers/routing"
"github.com/EinStack/glide/pkg/router/routing"
)

// TODO: how to specify other backoff strategies?
// TODO: Had to keep RoutingStrategy because of https://github.com/swaggo/swag/issues/1738

type RouterConfig struct {
type Config 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
}

func DefaultConfig() RouterConfig {
return RouterConfig{
func DefaultConfig() Config {
return Config{
Enabled: true,
RoutingStrategy: routing.Priority,
Retry: retry.DefaultExpRetryConfig(),
}
}

// RoutersConfig defines a config for a set of supported router types
// TODO: remove nolint after renaming the package
type RoutersConfig struct { //nolint: revive
type RoutersConfig struct {
LanguageRouters LangRoutersConfig `yaml:"language" validate:"required,dive"` // the list of language routers
// EmbeddingRouters []EmbeddingRouterConfig `yaml:"embedding" validate:"required,dive"`
}
4 changes: 2 additions & 2 deletions pkg/routers/embed_config.go → pkg/router/embed_config.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package routers
package router

import (
"github.com/EinStack/glide/pkg/extmodel"
Expand All @@ -11,6 +11,6 @@ type (
)

type EmbeddingRouterConfig struct {
RouterConfig
Config
Models EmbedModelPoolConfig `yaml:"models" json:"models" validate:"required,min=1,dive"` // the list of models that could handle requests
}
2 changes: 1 addition & 1 deletion pkg/routers/embed_router.go → pkg/router/embed_router.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package routers
package router

type EmbeddingRouter struct {
// routerID lang.RouterID
Expand Down
16 changes: 8 additions & 8 deletions pkg/routers/lang_config.go → pkg/router/lang_config.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package routers
package router

import (
"fmt"
Expand All @@ -9,7 +9,7 @@ import (
"github.com/EinStack/glide/pkg/extmodel"

"github.com/EinStack/glide/pkg/resiliency/retry"
"github.com/EinStack/glide/pkg/routers/routing"
"github.com/EinStack/glide/pkg/router/routing"
"github.com/EinStack/glide/pkg/telemetry"
"go.uber.org/multierr"
"go.uber.org/zap"
Expand All @@ -22,21 +22,21 @@ type (

// LangRouterConfig
type LangRouterConfig struct {
RouterConfig
Config
Models LangModelPoolConfig `yaml:"models" json:"models" validate:"required,min=1,dive"` // the list of models that could handle requests
}

type RouterConfigOption = func(*LangRouterConfig)
type ConfigOption = func(*LangRouterConfig)

func WithModels(models LangModelPoolConfig) RouterConfigOption {
func WithModels(models LangModelPoolConfig) ConfigOption {
return func(c *LangRouterConfig) {
c.Models = models
}
}

func NewRouterConfig(RouterID string, opt ...RouterConfigOption) *LangRouterConfig {
func NewRouterConfig(RouterID string, opt ...ConfigOption) *LangRouterConfig {
cfg := &LangRouterConfig{
RouterConfig: DefaultConfig(),
Config: DefaultConfig(),
}

cfg.ID = RouterID
Expand Down Expand Up @@ -190,7 +190,7 @@ func (c *LangRouterConfig) BuildRouting(

func DefaultRouterConfig() *LangRouterConfig {
return &LangRouterConfig{
RouterConfig: DefaultConfig(),
Config: DefaultConfig(),
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package routers
package router

import (
"testing"
Expand All @@ -9,8 +9,8 @@ import (
"github.com/EinStack/glide/pkg/provider/cohere"
"github.com/EinStack/glide/pkg/provider/openai"
"github.com/EinStack/glide/pkg/resiliency/health"
"github.com/EinStack/glide/pkg/routers/latency"
"github.com/EinStack/glide/pkg/routers/routing"
"github.com/EinStack/glide/pkg/router/latency"
"github.com/EinStack/glide/pkg/router/routing"
"github.com/EinStack/glide/pkg/telemetry"
"github.com/stretchr/testify/require"
)
Expand Down
10 changes: 5 additions & 5 deletions pkg/routers/lang_router.go → pkg/router/lang_router.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package routers
package router

import (
"context"
Expand All @@ -8,17 +8,17 @@ import (

"github.com/EinStack/glide/pkg/api/schemas"
"github.com/EinStack/glide/pkg/resiliency/retry"
"github.com/EinStack/glide/pkg/routers/routing"
"github.com/EinStack/glide/pkg/router/routing"
"github.com/EinStack/glide/pkg/telemetry"
"go.uber.org/zap"
)

var ErrNoModels = errors.New("no models configured for router")

type RouterID = string
type ID = string

type LangRouter struct {
routerID RouterID
routerID ID
Config *LangRouterConfig
chatModels []*extmodel.LanguageModel
chatStreamModels []*extmodel.LanguageModel
Expand Down Expand Up @@ -55,7 +55,7 @@ func NewLangRouter(cfg *LangRouterConfig, tel *telemetry.Telemetry) (*LangRouter
return router, err
}

func (r *LangRouter) ID() RouterID {
func (r *LangRouter) ID() ID {
return r.routerID
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package routers
package router

import (
"context"
Expand All @@ -14,8 +14,8 @@ import (
"github.com/EinStack/glide/pkg/resiliency/retry"

"github.com/EinStack/glide/pkg/api/schemas"
"github.com/EinStack/glide/pkg/routers/latency"
"github.com/EinStack/glide/pkg/routers/routing"
"github.com/EinStack/glide/pkg/router/latency"
"github.com/EinStack/glide/pkg/router/routing"
"github.com/EinStack/glide/pkg/telemetry"
"github.com/stretchr/testify/require"
)
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
12 changes: 6 additions & 6 deletions pkg/routers/manager.go → pkg/router/manager.go
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package routers
package router

import (
"github.com/EinStack/glide/pkg/api/schemas"
"github.com/EinStack/glide/pkg/telemetry"
)

type RouterManager struct {
type Manager struct {
Config *RoutersConfig
tel *telemetry.Telemetry
langRouterMap *map[string]*LangRouter
langRouters []*LangRouter
}

// NewManager creates a new instance of Router Manager that creates, holds and returns all routers
func NewManager(cfg *RoutersConfig, tel *telemetry.Telemetry) (*RouterManager, error) {
func NewManager(cfg *RoutersConfig, tel *telemetry.Telemetry) (*Manager, error) {
langRouters, err := cfg.LanguageRouters.Build(tel)
if err != nil {
return nil, err
Expand All @@ -25,7 +25,7 @@ func NewManager(cfg *RoutersConfig, tel *telemetry.Telemetry) (*RouterManager, e
langRouterMap[router.ID()] = router
}

manager := RouterManager{
manager := Manager{
Config: cfg,
tel: tel,
langRouters: langRouters,
Expand All @@ -35,12 +35,12 @@ func NewManager(cfg *RoutersConfig, tel *telemetry.Telemetry) (*RouterManager, e
return &manager, err
}

func (r *RouterManager) GetLangRouters() []*LangRouter {
func (r *Manager) GetLangRouters() []*LangRouter {
return r.langRouters
}

// GetLangRouter returns a router by type and ID
func (r *RouterManager) GetLangRouter(routerID string) (*LangRouter, error) {
func (r *Manager) GetLangRouter(routerID string) (*LangRouter, error) {
if router, found := (*r.langRouterMap)[routerID]; found {
return router, nil
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (

"github.com/EinStack/glide/pkg/extmodel"

"github.com/EinStack/glide/pkg/routers/latency"
"github.com/EinStack/glide/pkg/router/latency"
)

const (
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit f55b24e

Please sign in to comment.