pricing

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CacheWriteWindow

type CacheWriteWindow string
const (
	CacheWriteWindowFiveMinutes CacheWriteWindow = "5m"
	CacheWriteWindowOneHour     CacheWriteWindow = "1h"
)

func (CacheWriteWindow) IsValid

func (w CacheWriteWindow) IsValid() bool

type PricingMode

type PricingMode string
const (
	PricingModeFlat   PricingMode = "flat"
	PricingModeTiered PricingMode = "tiered"
	PricingModeRouted PricingMode = "routed"
)

func (PricingMode) IsValid

func (m PricingMode) IsValid() bool

type PricingSourceKind

type PricingSourceKind string
const (
	PricingSourceKindCustom   PricingSourceKind = "custom"
	PricingSourceKindOfficial PricingSourceKind = "official"
)

func (PricingSourceKind) IsValid

func (k PricingSourceKind) IsValid() bool

type ProviderModelPricingConfig

type ProviderModelPricingConfig struct {
	Version                 string                     `json:"version,omitempty"`
	SourceKind              PricingSourceKind          `json:"source_kind,omitempty"`
	PricingMode             PricingMode                `json:"pricing_mode,omitempty"`
	Provider                string                     `json:"provider,omitempty"`
	ModelID                 string                     `json:"model_id,omitempty"`
	SourceURL               string                     `json:"source_url,omitempty"`
	SourceVerifiedAt        string                     `json:"source_verified_at,omitempty"`
	DefaultCacheWriteWindow CacheWriteWindow           `json:"default_cache_write_window,omitempty"`
	Notes                   []string                   `json:"notes,omitempty"`
	Rates                   ProviderModelPricingRates  `json:"rates,omitempty"`
	Tiers                   []ProviderModelPricingTier `json:"tiers,omitempty"`
}

func CustomFlatPricingConfig

func CustomFlatPricingConfig(inputPerToken float64, outputPerToken float64) ProviderModelPricingConfig

func NormalizeProviderModelPricingConfig

func NormalizeProviderModelPricingConfig(
	config ProviderModelPricingConfig,
) (ProviderModelPricingConfig, error)

func ParseRawProviderModelPricingConfig

func ParseRawProviderModelPricingConfig(
	raw map[string]any,
	fallbackInputPerToken float64,
	fallbackOutputPerToken float64,
) (ProviderModelPricingConfig, error)

func (ProviderModelPricingConfig) CacheWriteRate

func (c ProviderModelPricingConfig) CacheWriteRate(window CacheWriteWindow, promptTokens int64) float64

func (ProviderModelPricingConfig) Clone

func (ProviderModelPricingConfig) HasAnyPricing

func (c ProviderModelPricingConfig) HasAnyPricing() bool

func (ProviderModelPricingConfig) IsZero

func (c ProviderModelPricingConfig) IsZero() bool

func (ProviderModelPricingConfig) SelectRates

func (c ProviderModelPricingConfig) SelectRates(promptTokens int64) ProviderModelPricingRates

func (ProviderModelPricingConfig) SummaryInputPerToken

func (c ProviderModelPricingConfig) SummaryInputPerToken() float64

func (ProviderModelPricingConfig) SummaryOutputPerToken

func (c ProviderModelPricingConfig) SummaryOutputPerToken() float64

func (ProviderModelPricingConfig) ToMap

func (c ProviderModelPricingConfig) ToMap() map[string]any

type ProviderModelPricingRates

type ProviderModelPricingRates struct {
	InputPerToken                 float64 `json:"input_per_token,omitempty"`
	OutputPerToken                float64 `json:"output_per_token,omitempty"`
	CachedInputReadPerToken       float64 `json:"cached_input_read_per_token,omitempty"`
	CacheWriteFiveMinutesPerToken float64 `json:"cache_write_5m_per_token,omitempty"`
	CacheWriteOneHourPerToken     float64 `json:"cache_write_1h_per_token,omitempty"`
	CacheStoragePerTokenHour      float64 `json:"cache_storage_per_token_hour,omitempty"`
}

type ProviderModelPricingTier

type ProviderModelPricingTier struct {
	Label           string                    `json:"label,omitempty"`
	MaxPromptTokens int64                     `json:"max_prompt_tokens,omitempty"`
	Rates           ProviderModelPricingRates `json:"rates"`
}

Jump to

Keyboard shortcuts

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