llmroute

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 22, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RouteKindLLM = routecore.RouteKindLLM
	RouteKindMCP = routecore.RouteKindMCP
)
View Source
const (
	RouteProtocolOpenAI    = routecore.RouteProtocolOpenAI
	RouteProtocolAnthropic = routecore.RouteProtocolAnthropic
	RouteProtocolMCP       = routecore.RouteProtocolMCP
)

Variables

This section is empty.

Functions

func CandidateKey

func CandidateKey(providerID string, upstreamModel string) string

func DecodeStoredRoute

func DecodeStoredRoute(data []byte) (any, error)

DecodeStoredRoute decodes a persisted route config and converts it to a runtime route.

Types

type AgentRouteConfig

type AgentRouteConfig = routecore.AgentRouteConfig

type DirectProviderTarget

type DirectProviderTarget struct {
	ProviderID string `json:"provider_id"`
}

type LLMRoute

type LLMRoute struct {
	AgentRouteConfig
	TargetPolicy RouteTargetPolicy
	State        LLMRouteState
}

LLMRoute is the runtime gateway route instance used by dispatch and resolution.

func NewLLMRouteFromConfig

func NewLLMRouteFromConfig(cfg AgentRouteConfig) (LLMRoute, error)

func NewRuntimeLLMRoute

func NewRuntimeLLMRoute(cfg LLMRouteConfig) LLMRoute

func (LLMRoute) Config

func (r LLMRoute) Config() LLMRouteConfig

func (LLMRoute) MarshalJSON

func (r LLMRoute) MarshalJSON() ([]byte, error)

func (*LLMRoute) Normalize

func (r *LLMRoute) Normalize()

func (*LLMRoute) NormalizeTimestamps

func (r *LLMRoute) NormalizeTimestamps(now time.Time)

func (LLMRoute) ProviderIDs

func (r LLMRoute) ProviderIDs() []string

func (LLMRoute) ResolveTarget

func (LLMRoute) ToConfig

func (r LLMRoute) ToConfig() (AgentRouteConfig, error)

func (*LLMRoute) UnmarshalJSON

func (r *LLMRoute) UnmarshalJSON(data []byte) error

func (LLMRoute) UsesLogicalModel

func (r LLMRoute) UsesLogicalModel() bool

func (LLMRoute) ValidateDefinition

func (r LLMRoute) ValidateDefinition() error

func (LLMRoute) ValidateStaticDefinition

func (r LLMRoute) ValidateStaticDefinition() error

type LLMRouteConfig

type LLMRouteConfig struct {
	AgentRouteConfig
	TargetPolicy RouteTargetPolicy
}

LLMRouteConfig is the expanded configuration form of an LLM route.

func NewLLMRouteConfigFromConfig

func NewLLMRouteConfigFromConfig(cfg AgentRouteConfig) (LLMRouteConfig, error)

func (LLMRouteConfig) MarshalJSON

func (r LLMRouteConfig) MarshalJSON() ([]byte, error)

func (*LLMRouteConfig) Normalize

func (r *LLMRouteConfig) Normalize()

Normalize fills defaults on a route config value before it is used.

func (*LLMRouteConfig) NormalizeTimestamps

func (r *LLMRouteConfig) NormalizeTimestamps(now time.Time)

func (LLMRouteConfig) ProviderIDs

func (r LLMRouteConfig) ProviderIDs() []string

func (LLMRouteConfig) ResolveTarget

func (LLMRouteConfig) ToConfig

func (r LLMRouteConfig) ToConfig() (AgentRouteConfig, error)

func (*LLMRouteConfig) UnmarshalJSON

func (r *LLMRouteConfig) UnmarshalJSON(data []byte) error

func (LLMRouteConfig) UsesLogicalModel

func (r LLMRouteConfig) UsesLogicalModel() bool

func (LLMRouteConfig) ValidateDefinition

func (r LLMRouteConfig) ValidateDefinition() error

func (LLMRouteConfig) ValidateStaticDefinition

func (r LLMRouteConfig) ValidateStaticDefinition() error

type LLMRouteResolver

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

func NewLLMRouteResolver

func NewLLMRouteResolver(configManager *routecore.AgentRouteConfigManager) *LLMRouteResolver

func (*LLMRouteResolver) ConfigManager

func (*LLMRouteResolver) CreateConfig

func (r *LLMRouteResolver) CreateConfig(ctx context.Context, route routecore.AgentRouteConfig, tag string) error

func (*LLMRouteResolver) DeleteConfig

func (r *LLMRouteResolver) DeleteConfig(ctx context.Context, routeID string) error

func (*LLMRouteResolver) GetConfig

func (r *LLMRouteResolver) GetConfig(ctx context.Context, routeID string) (routecore.AgentRouteConfig, error)

func (*LLMRouteResolver) ListConfigs

func (*LLMRouteResolver) Resolve

func (*LLMRouteResolver) ResolveByID

func (r *LLMRouteResolver) ResolveByID(ctx context.Context, routeID string) (*LLMRoute, error)

func (*LLMRouteResolver) UpdateConfig

func (r *LLMRouteResolver) UpdateConfig(ctx context.Context, routeID string, route routecore.AgentRouteConfig) error

func (*LLMRouteResolver) Validate

func (r *LLMRouteResolver) Validate(ctx context.Context, routeID string, resolver ProviderResolver) error

type LLMRouteState

type LLMRouteState struct{}

LLMRouteState holds runtime-only state for a resolved route.

type ModelCatalogResolver

type ModelCatalogResolver interface {
	GetManagedModel(ctx context.Context, providerID string, upstreamModel string) (*modelcatalog.ManagedModel, bool, error)
	GetResolvedManagedModel(ctx context.Context, providerID string, upstreamModel string) (*modelcatalog.ResolvedManagedModel, bool, error)
}

type ProviderConfigResolver

type ProviderConfigResolver interface {
	GetConfig(ctx context.Context, providerID string) (provider.ProviderConfig, error)
}

type ProviderResolver

type ProviderResolver interface {
	ResolveProvider(ctx context.Context, providerID string) (provider.Provider, string, error)
}

type RequestRequirements

type RequestRequirements struct {
	Model              string
	RequireStreaming   bool
	RequireTools       bool
	RequireVision      bool
	RequireEmbeddings  bool
	ExcludedCandidates map[string]struct{}
}

RequestRequirements captures request attributes required for route resolution. Model means logical model ID in logical-model mode and upstream model in direct mode.

type ResolvedTarget

type ResolvedTarget struct {
	LogicalModel    string
	ProviderID      string
	ProviderType    string
	UpstreamModel   string
	CredentialScope string
	Capabilities    provider.ModelCapabilities
}

type RouteAuthPolicy

type RouteAuthPolicy = routecore.RouteAuthPolicy

type RouteCredentialScope

type RouteCredentialScope string
const (
	RouteCredentialScopeModelCustom RouteCredentialScope = "model_custom"
	RouteCredentialScopeProviderID  RouteCredentialScope = "provider_id"
)

type RouteCredentialSelectStrategy

type RouteCredentialSelectStrategy string
const (
	RouteCredentialSelectRoundRobin RouteCredentialSelectStrategy = "round_robin"
	RouteCredentialSelectFillFirst  RouteCredentialSelectStrategy = "fill_first"
)

type RouteCredentialType

type RouteCredentialType string
const (
	RouteCredentialTypeAPIKey       RouteCredentialType = "api_key"
	RouteCredentialTypeCLIAuthToken RouteCredentialType = "cliauth_token"
)

type RouteDirectProviderPolicy

type RouteDirectProviderPolicy struct {
	RouteTargetPolicyCommon
	ProviderID     string               `json:"provider_id,omitempty"`
	ProviderTarget DirectProviderTarget `json:"provider_target,omitempty"`
}

func DirectProviderPolicyOf

func DirectProviderPolicyOf(policy RouteTargetPolicy) (*RouteDirectProviderPolicy, bool)

func (*RouteDirectProviderPolicy) CredentialScopeOrder

func (p *RouteDirectProviderPolicy) CredentialScopeOrder() []RouteCredentialScope

func (*RouteDirectProviderPolicy) CredentialSelector

func (*RouteDirectProviderPolicy) CredentialTypeOrder

func (p *RouteDirectProviderPolicy) CredentialTypeOrder() []RouteCredentialType

func (*RouteDirectProviderPolicy) FallbackPolicy

func (p *RouteDirectProviderPolicy) FallbackPolicy() RouteFallbackPolicy

func (RouteDirectProviderPolicy) MarshalJSON

func (p RouteDirectProviderPolicy) MarshalJSON() ([]byte, error)

func (*RouteDirectProviderPolicy) Normalize

func (p *RouteDirectProviderPolicy) Normalize()

func (*RouteDirectProviderPolicy) PolicyKind

func (*RouteDirectProviderPolicy) ProviderIDs

func (p *RouteDirectProviderPolicy) ProviderIDs() []string

func (*RouteDirectProviderPolicy) ResolveTarget

func (*RouteDirectProviderPolicy) ValidateDefinition

func (p *RouteDirectProviderPolicy) ValidateDefinition(routeID string) error

type RouteFallbackPolicy

type RouteFallbackPolicy struct {
	Enabled bool `json:"enabled,omitempty"`
	MaxNum  int  `json:"max_num,omitempty"`
}

type RouteKind

type RouteKind = routecore.RouteKind

type RouteLogicalModelTargetPolicy

type RouteLogicalModelTargetPolicy struct {
	RouteTargetPolicyCommon
	DefaultModel          string                 `json:"default_model,omitempty"`
	ModelSelectorStrategy RouteSelectionStrategy `json:"model_selector_strategy,omitempty"`
	Fallback              RouteFallbackPolicy    `json:"fallback,omitempty"`
	ModelTargets          []RouteModelTarget     `json:"model_targets,omitempty"`
}

func LogicalModelTargetPolicyOf

func LogicalModelTargetPolicyOf(policy RouteTargetPolicy) (*RouteLogicalModelTargetPolicy, bool)

func (*RouteLogicalModelTargetPolicy) CredentialScopeOrder

func (p *RouteLogicalModelTargetPolicy) CredentialScopeOrder() []RouteCredentialScope

func (*RouteLogicalModelTargetPolicy) CredentialSelector

func (*RouteLogicalModelTargetPolicy) CredentialTypeOrder

func (p *RouteLogicalModelTargetPolicy) CredentialTypeOrder() []RouteCredentialType

func (*RouteLogicalModelTargetPolicy) FallbackPolicy

func (RouteLogicalModelTargetPolicy) MarshalJSON

func (p RouteLogicalModelTargetPolicy) MarshalJSON() ([]byte, error)

func (*RouteLogicalModelTargetPolicy) Normalize

func (p *RouteLogicalModelTargetPolicy) Normalize()

func (*RouteLogicalModelTargetPolicy) PolicyKind

func (*RouteLogicalModelTargetPolicy) ProviderIDs

func (p *RouteLogicalModelTargetPolicy) ProviderIDs() []string

func (*RouteLogicalModelTargetPolicy) ResolveTarget

func (*RouteLogicalModelTargetPolicy) ValidateDefinition

func (p *RouteLogicalModelTargetPolicy) ValidateDefinition(routeID string) error

type RouteMatchPolicy

type RouteMatchPolicy = routecore.RouteMatchPolicy

type RouteModelCandidate

type RouteModelCandidate struct {
	ProviderID    string `json:"provider_id"`
	UpstreamModel string `json:"upstream_model"`
	Weight        int    `json:"weight,omitempty"`
	Priority      int    `json:"priority,omitempty"`
	Default       bool   `json:"default,omitempty"`
}

type RouteModelTarget

type RouteModelTarget struct {
	Name             string                 `json:"name"`
	Strategy         RouteSelectionStrategy `json:"strategy,omitempty"`
	DefaultCandidate string                 `json:"default_candidate,omitempty"`
	Candidates       []RouteModelCandidate  `json:"candidates,omitempty"`
}

type RouteProtocol

type RouteProtocol = routecore.RouteProtocol

type RouteSelectionStrategy

type RouteSelectionStrategy string

RouteSelectionStrategy controls how a route prefers model candidates.

const (
	RouteSelectionStrategyAuto     RouteSelectionStrategy = "auto"
	RouteSelectionStrategyWeighted RouteSelectionStrategy = "weighted"
	RouteSelectionStrategyPriority RouteSelectionStrategy = "priority"
)

type RouteTargetPolicy

type RouteTargetPolicy interface {
	Normalize()
	PolicyKind() RouteTargetPolicyKind
	ValidateDefinition(routeID string) error
	ResolveTarget(ctx context.Context, routeID string, catalog ModelCatalogResolver, providers ProviderConfigResolver, req RequestRequirements) (*ResolvedTarget, error)
	ProviderIDs() []string
	CredentialSelector() RouteCredentialSelectStrategy
	CredentialScopeOrder() []RouteCredentialScope
	CredentialTypeOrder() []RouteCredentialType
	FallbackPolicy() RouteFallbackPolicy
}

type RouteTargetPolicyCommon

type RouteTargetPolicyCommon struct {
	CredentialSelectorValue   RouteCredentialSelectStrategy `json:"credential_selector,omitempty"`
	CredentialScopeOrderValue []RouteCredentialScope        `json:"credential_scope_order,omitempty"`
	CredentialTypeOrderValue  []RouteCredentialType         `json:"credential_type_order,omitempty"`
}

func (RouteTargetPolicyCommon) CredentialScopeOrder

func (c RouteTargetPolicyCommon) CredentialScopeOrder() []RouteCredentialScope

func (RouteTargetPolicyCommon) CredentialSelector

func (RouteTargetPolicyCommon) CredentialTypeOrder

func (c RouteTargetPolicyCommon) CredentialTypeOrder() []RouteCredentialType

func (*RouteTargetPolicyCommon) Normalize

func (c *RouteTargetPolicyCommon) Normalize()

type RouteTargetPolicyKind

type RouteTargetPolicyKind string
const (
	RouteTargetPolicyKindDirectProvider RouteTargetPolicyKind = "direct-provider"
	RouteTargetPolicyKindLogicalModel   RouteTargetPolicyKind = "logical-model"
)

Jump to

Keyboard shortcuts

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