tokenratelimit

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2026 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const PluginName = "token_rate_limiter"

Variables

This section is empty.

Functions

This section is empty.

Types

type Plugin

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

func New

func New(redisClient *redis.Client, registry *adapter.Registry, pricing appcatalog.PricingResolver) *Plugin

func (*Plugin) Execute

func (p *Plugin) Execute(ctx context.Context, in appplugins.ExecInput) (*appplugins.Result, error)

func (*Plugin) MandatoryStages

func (p *Plugin) MandatoryStages() []policy.Stage

func (*Plugin) MutatesMetadata added in v0.2.3

func (p *Plugin) MutatesMetadata() bool

func (*Plugin) MutatesRequestBody added in v0.2.3

func (p *Plugin) MutatesRequestBody() bool

func (*Plugin) MutatesResponseBody added in v0.2.3

func (p *Plugin) MutatesResponseBody() bool

func (*Plugin) Name

func (p *Plugin) Name() string

func (*Plugin) SupportedModes

func (p *Plugin) SupportedModes() []policy.Mode

func (*Plugin) SupportedStages

func (p *Plugin) SupportedStages() []policy.Stage

func (*Plugin) ValidateConfig

func (p *Plugin) ValidateConfig(settings map[string]any) error

type TokenRateLimiterData

type TokenRateLimiterData struct {
	Stage            string  `json:"stage"`
	CounterKey       string  `json:"counter_key"`
	Provider         string  `json:"provider,omitempty"`
	Model            string  `json:"model,omitempty"`
	WindowUnit       string  `json:"window_unit"`
	WindowMax        int     `json:"window_max"`
	TokensConsumed   int     `json:"tokens_consumed"`
	TokensActual     int     `json:"tokens_actual,omitempty"`
	TokensRemaining  int     `json:"tokens_remaining"`
	LimitExceeded    bool    `json:"limit_exceeded"`
	Unit             string  `json:"unit,omitempty"`
	CostMicroUSD     int64   `json:"cost_micro_usd,omitempty"`
	ConsumedMicroUSD int64   `json:"consumed_micro_usd,omitempty"`
	Unpriced         bool    `json:"unpriced,omitempty"`
	CostCapViolation bool    `json:"cost_cap_violation,omitempty"`
	UnknownModel     bool    `json:"unknown_model,omitempty"`
	InputPricePer1k  float64 `json:"input_price_per_1k,omitempty"`
	OutputPricePer1k float64 `json:"output_price_per_1k,omitempty"`
	MaxInputPer1k    float64 `json:"max_input_per_1k,omitempty"`
	MaxOutputPer1k   float64 `json:"max_output_per_1k,omitempty"`
}

Jump to

Keyboard shortcuts

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