Documentation
¶
Index ¶
- Constants
- func BillingKey(model, tier string) string
- type CompactPrice
- type Fetcher
- type FetcherConfig
- type Service
- type Snapshot
- type Source
- func (s *Source) Calculate(t Tokens, model, tier string) (cost float64, priced bool)
- func (s *Source) CalculateTokens(input, cached, output int64, model, tier string) (cost float64, priced bool)
- func (s *Source) Lookup(model string) (CompactPrice, bool)
- func (s *Source) Misses() map[string]int64
- func (s *Source) RecordMiss(billingKey string)
- func (s *Source) Replace(snap *Snapshot)
- func (s *Source) Snapshot() *Snapshot
- type StatusReport
- type Tokens
Constants ¶
View Source
const ( OriginEmbedded = "embedded" OriginLiteLLM = "litellm" OriginBolt = "bbolt" )
View Source
const LiteLLMURL = "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json"
Variables ¶
This section is empty.
Functions ¶
func BillingKey ¶
Types ¶
type CompactPrice ¶
type CompactPrice struct {
InputCost float64 `json:"input_cost_per_token,omitempty"`
InputCostPriority float64 `json:"input_cost_per_token_priority,omitempty"`
InputCostFlex float64 `json:"input_cost_per_token_flex,omitempty"`
OutputCost float64 `json:"output_cost_per_token,omitempty"`
OutputCostPriority float64 `json:"output_cost_per_token_priority,omitempty"`
OutputCostFlex float64 `json:"output_cost_per_token_flex,omitempty"`
CacheReadCost float64 `json:"cache_read_input_token_cost,omitempty"`
CacheReadCostPriority float64 `json:"cache_read_input_token_cost_priority,omitempty"`
CacheReadCostFlex float64 `json:"cache_read_input_token_cost_flex,omitempty"`
}
func (CompactPrice) HasPricing ¶
func (p CompactPrice) HasPricing() bool
type Fetcher ¶
type Fetcher struct {
// contains filtered or unexported fields
}
func NewFetcher ¶
func NewFetcher(source *Source, cfg FetcherConfig) *Fetcher
type FetcherConfig ¶
type Service ¶
func (*Service) CalculateTokens ¶
func (*Service) Status ¶
func (s *Service) Status() StatusReport
type Snapshot ¶
type Snapshot struct {
Models map[string]CompactPrice
FetchedAt time.Time
Origin string
}
func LoadEmbedded ¶
type Source ¶
type Source struct {
// contains filtered or unexported fields
}
func (*Source) CalculateTokens ¶
func (*Source) RecordMiss ¶
type StatusReport ¶
type StatusReport struct {
Origin string `json:"origin"`
ModelsCount int `json:"models_count"`
FetchedAt time.Time `json:"fetched_at,omitzero"`
URL string `json:"url,omitempty"`
LastAttempt time.Time `json:"last_attempt_at,omitzero"`
LastSuccess time.Time `json:"last_success_at,omitzero"`
LastError string `json:"last_error,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.