Documentation
¶
Index ¶
- Variables
- func CandidateKey(providerID string, upstreamModel string) string
- func DecodeStoredRoute(data []byte) (any, error)
- type AgentRoute
- func (r *AgentRoute) Normalize()
- func (r *AgentRoute) NormalizeTimestamps(now time.Time)
- func (r AgentRoute) ProviderIDs() []string
- func (r AgentRoute) ResolveTarget(ctx context.Context, catalog ModelCatalogResolver, ...) (*ResolvedTarget, error)
- func (r *AgentRoute) UnmarshalJSON(data []byte) error
- func (r AgentRoute) UsesLogicalModel() bool
- func (r AgentRoute) ValidateDefinition() error
- func (r AgentRoute) ValidateStaticDefinition() error
- type AgentRouteManager
- func (m *AgentRouteManager) Create(ctx context.Context, route AgentRoute, tag string) error
- func (m *AgentRouteManager) Delete(ctx context.Context, routeID string) error
- func (m *AgentRouteManager) Get(ctx context.Context, routeID string) (AgentRoute, error)
- func (m *AgentRouteManager) InitStaticRoutes(routes []AgentRoute)
- func (m *AgentRouteManager) IsStatic(routeID string) bool
- func (m *AgentRouteManager) List(ctx context.Context, opts RouteListOptions) ([]AgentRoute, error)
- func (m *AgentRouteManager) Match(ctx context.Context, r *http.Request) (AgentRoute, bool, error)
- func (m *AgentRouteManager) Reset()
- func (m *AgentRouteManager) Update(ctx context.Context, routeID string, route AgentRoute) error
- func (m *AgentRouteManager) Validate(ctx context.Context, routeID string, resolver ProviderResolver) error
- type DirectProviderTarget
- type ModelCatalogResolver
- type ProviderConfigResolver
- type ProviderResolver
- type RequestRequirements
- type ResolvedTarget
- type RouteAuthPolicy
- type RouteCredentialScope
- type RouteCredentialSelectStrategy
- type RouteCredentialType
- type RouteDirectProviderPolicy
- func (p *RouteDirectProviderPolicy) FallbackPolicy() RouteFallbackPolicy
- func (p RouteDirectProviderPolicy) MarshalJSON() ([]byte, error)
- func (p *RouteDirectProviderPolicy) Normalize()
- func (p *RouteDirectProviderPolicy) PolicyKind() RouteTargetPolicyKind
- func (p *RouteDirectProviderPolicy) ProviderIDs() []string
- func (p *RouteDirectProviderPolicy) ResolveTarget(ctx context.Context, routeID string, _ ModelCatalogResolver, ...) (*ResolvedTarget, error)
- func (p *RouteDirectProviderPolicy) ValidateDefinition(routeID string) error
- type RouteFallbackPolicy
- type RouteListOptions
- type RouteLogicalModelTargetPolicy
- func (p *RouteLogicalModelTargetPolicy) FallbackPolicy() RouteFallbackPolicy
- func (p RouteLogicalModelTargetPolicy) MarshalJSON() ([]byte, error)
- func (p *RouteLogicalModelTargetPolicy) Normalize()
- func (p *RouteLogicalModelTargetPolicy) PolicyKind() RouteTargetPolicyKind
- func (p *RouteLogicalModelTargetPolicy) ProviderIDs() []string
- func (p *RouteLogicalModelTargetPolicy) ResolveTarget(ctx context.Context, routeID string, catalog ModelCatalogResolver, ...) (*ResolvedTarget, error)
- func (p *RouteLogicalModelTargetPolicy) ValidateDefinition(routeID string) error
- type RouteMatch
- type RouteModelCandidate
- type RouteModelTarget
- type RouteSelectionStrategy
- type RouteTargetPolicy
- type RouteTargetPolicyCommon
- func (c RouteTargetPolicyCommon) CredentialScopeOrder() []RouteCredentialScope
- func (c RouteTargetPolicyCommon) CredentialSelector() RouteCredentialSelectStrategy
- func (c RouteTargetPolicyCommon) CredentialTypeOrder() []RouteCredentialType
- func (c *RouteTargetPolicyCommon) Normalize(defaultScopes []RouteCredentialScope)
- type RouteTargetPolicyKind
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrRouteNotConfigured = errors.New("route is not configured") ErrStaticRouteReadOnly = errors.New("static route is read-only") )
Functions ¶
func CandidateKey ¶
func DecodeStoredRoute ¶
DecodeStoredRoute decodes a persisted route and fills missing runtime defaults.
Types ¶
type AgentRoute ¶
type AgentRoute struct {
ID string `json:"id"`
Description string `json:"description,omitempty"`
Disabled bool `json:"disabled"`
LLMAPI string `json:"llm_api"`
Match RouteMatch `json:"match"`
TargetPolicy RouteTargetPolicy `json:"target_policy"`
AuthPolicy RouteAuthPolicy `json:"auth_policy"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
AgentRoute is the primary gateway route configuration exposed to agent clients.
func (*AgentRoute) Normalize ¶
func (r *AgentRoute) Normalize()
Normalize fills runtime defaults on a route value before it is used by the gateway.
func (*AgentRoute) NormalizeTimestamps ¶
func (r *AgentRoute) NormalizeTimestamps(now time.Time)
func (AgentRoute) ProviderIDs ¶
func (r AgentRoute) ProviderIDs() []string
func (AgentRoute) ResolveTarget ¶
func (r AgentRoute) ResolveTarget(ctx context.Context, catalog ModelCatalogResolver, providers ProviderConfigResolver, req RequestRequirements) (*ResolvedTarget, error)
func (*AgentRoute) UnmarshalJSON ¶
func (r *AgentRoute) UnmarshalJSON(data []byte) error
func (AgentRoute) UsesLogicalModel ¶
func (r AgentRoute) UsesLogicalModel() bool
func (AgentRoute) ValidateDefinition ¶
func (r AgentRoute) ValidateDefinition() error
func (AgentRoute) ValidateStaticDefinition ¶
func (r AgentRoute) ValidateStaticDefinition() error
type AgentRouteManager ¶
type AgentRouteManager struct {
// contains filtered or unexported fields
}
func NewAgentRouteManager ¶
func NewAgentRouteManager(store configstore.ConfigStore) *AgentRouteManager
func (*AgentRouteManager) Create ¶
func (m *AgentRouteManager) Create(ctx context.Context, route AgentRoute, tag string) error
func (*AgentRouteManager) Delete ¶
func (m *AgentRouteManager) Delete(ctx context.Context, routeID string) error
func (*AgentRouteManager) Get ¶
func (m *AgentRouteManager) Get(ctx context.Context, routeID string) (AgentRoute, error)
func (*AgentRouteManager) InitStaticRoutes ¶
func (m *AgentRouteManager) InitStaticRoutes(routes []AgentRoute)
func (*AgentRouteManager) IsStatic ¶
func (m *AgentRouteManager) IsStatic(routeID string) bool
func (*AgentRouteManager) List ¶
func (m *AgentRouteManager) List(ctx context.Context, opts RouteListOptions) ([]AgentRoute, error)
func (*AgentRouteManager) Match ¶
func (m *AgentRouteManager) Match(ctx context.Context, r *http.Request) (AgentRoute, bool, error)
Match resolves the most specific route whose RouteMatch accepts the request.
func (*AgentRouteManager) Reset ¶
func (m *AgentRouteManager) Reset()
func (*AgentRouteManager) Update ¶
func (m *AgentRouteManager) Update(ctx context.Context, routeID string, route AgentRoute) error
func (*AgentRouteManager) Validate ¶
func (m *AgentRouteManager) Validate(ctx context.Context, routeID string, resolver ProviderResolver) error
type DirectProviderTarget ¶
type DirectProviderTarget struct {
ProviderID string `json:"provider_id"`
}
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 ProviderResolver ¶
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 RouteAuthPolicy ¶
type RouteAuthPolicy struct {
RequireVirtualKey bool `json:"require_virtual_key"`
}
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) 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 (p *RouteDirectProviderPolicy) PolicyKind() RouteTargetPolicyKind
func (*RouteDirectProviderPolicy) ProviderIDs ¶
func (p *RouteDirectProviderPolicy) ProviderIDs() []string
func (*RouteDirectProviderPolicy) ResolveTarget ¶
func (p *RouteDirectProviderPolicy) ResolveTarget(ctx context.Context, routeID string, _ ModelCatalogResolver, providers ProviderConfigResolver, req RequestRequirements) (*ResolvedTarget, error)
func (*RouteDirectProviderPolicy) ValidateDefinition ¶
func (p *RouteDirectProviderPolicy) ValidateDefinition(routeID string) error
type RouteFallbackPolicy ¶
type RouteListOptions ¶
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) FallbackPolicy ¶
func (p *RouteLogicalModelTargetPolicy) FallbackPolicy() RouteFallbackPolicy
func (RouteLogicalModelTargetPolicy) MarshalJSON ¶
func (p RouteLogicalModelTargetPolicy) MarshalJSON() ([]byte, error)
func (*RouteLogicalModelTargetPolicy) Normalize ¶
func (p *RouteLogicalModelTargetPolicy) Normalize()
func (*RouteLogicalModelTargetPolicy) PolicyKind ¶
func (p *RouteLogicalModelTargetPolicy) PolicyKind() RouteTargetPolicyKind
func (*RouteLogicalModelTargetPolicy) ProviderIDs ¶
func (p *RouteLogicalModelTargetPolicy) ProviderIDs() []string
func (*RouteLogicalModelTargetPolicy) ResolveTarget ¶
func (p *RouteLogicalModelTargetPolicy) ResolveTarget(ctx context.Context, routeID string, catalog ModelCatalogResolver, providers ProviderConfigResolver, req RequestRequirements) (*ResolvedTarget, error)
func (*RouteLogicalModelTargetPolicy) ValidateDefinition ¶
func (p *RouteLogicalModelTargetPolicy) ValidateDefinition(routeID string) error
type RouteMatch ¶
type RouteMatch struct {
Host string `json:"host,omitempty"`
PathPrefix string `json:"path_prefix,omitempty"`
Methods []string `json:"methods,omitempty"`
}
RouteMatch contains transport-facing match fields for binding requests to a route.
type RouteModelCandidate ¶
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"`
}
func (*RouteModelTarget) Normalize ¶
func (t *RouteModelTarget) Normalize()
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 (c RouteTargetPolicyCommon) CredentialSelector() RouteCredentialSelectStrategy
func (RouteTargetPolicyCommon) CredentialTypeOrder ¶
func (c RouteTargetPolicyCommon) CredentialTypeOrder() []RouteCredentialType
func (*RouteTargetPolicyCommon) Normalize ¶
func (c *RouteTargetPolicyCommon) Normalize(defaultScopes []RouteCredentialScope)
type RouteTargetPolicyKind ¶
type RouteTargetPolicyKind string
const ( RouteTargetPolicyKindDirectProvider RouteTargetPolicyKind = "direct-provider" RouteTargetPolicyKindLogicalModel RouteTargetPolicyKind = "logical-model" )
Click to show internal directories.
Click to hide internal directories.