store

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Store

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

Store represents the data store.

func New

func New(db *gorm.DB) *Store

New creates a new store instance.

func NewTest

func NewTest(t *testing.T) (*Store, func())

NewTest returns a new test store.

func (*Store) AggregatedUsage added in v0.10.0

func (s *Store) AggregatedUsage(tenantID string, start, end int64) ([]Summary, error)

AggregatedUsage returns the aggregated usage data for the given tenant and time range.

func (*Store) AutoMigrate

func (s *Store) AutoMigrate() error

AutoMigrate sets up the auto-migration task of the database.

func (*Store) CreateUsage

func (s *Store) CreateUsage(usage ...*Usage) error

CreateUsage creates a new usage.

func (*Store) DeleteUsage added in v1.3.0

func (s *Store) DeleteUsage(timestamp int64, limit int) (int64, error)

DeleteUsage deletes a usage.

func (*Store) FindUsages added in v1.3.0

func (s *Store) FindUsages() ([]*Usage, error)

FindUsages returns the usages. This is used for testing.

func (*Store) GetUsagesByGroups added in v1.3.0

func (s *Store) GetUsagesByGroups(tenantID string, start, end int64) ([]*UsageByGroup, error)

GetUsagesByGroups returns the aggregated usage data by groups for the given tenant and time range.

type Summary added in v0.10.0

type Summary struct {
	APIMethod       string
	TotalRequests   int64
	SuccessRequests int64
	FailureRequests int64
	AverageLatency  float64
}

Summary is a struct that represents the summary of the usage data.

type Usage

type Usage struct {
	gorm.Model

	UserID       string `gorm:"uniqueIndex:idx_user_ts"`
	Tenant       string
	Organization string
	Project      string

	APIKeyID string

	APIMethod  string
	StatusCode int32
	Timestamp  int64 `gorm:"uniqueIndex:idx_user_ts"`
	LatencyMS  int32

	// The following fields are used for chat completions and completions.
	// TODO(kenji): Move these fields to a separate table if needed.
	ModelID            string
	TimeToFirstTokenMS int32
	PromptTokens       int32
	CompletionTokens   int32
}

Usage represents a API usage.

type UsageByGroup added in v1.3.0

type UsageByGroup struct {
	APIKeyID string
	UserID   string
	ModelID  string

	TotalRequests           int64
	TotalPromptTokens       int64
	TotalCompletionTokens   int64
	AverageLatency          float64
	AverageTimeToFirstToken float64
}

UsageByGroup represents the aggregated usage data grouped by API key, user, and model.

Jump to

Keyboard shortcuts

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