store

package
v0.14.0 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2024 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.

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.

Jump to

Keyboard shortcuts

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