41 lines
2.4 KiB
Go
41 lines
2.4 KiB
Go
package models
|
|
|
|
import "time"
|
|
|
|
// ModelInvocation stores a governed LLM request/response record.
|
|
type ModelInvocation struct {
|
|
ID int `db:"id,primarykey,autoincrement" json:"id"`
|
|
TraceID string `db:"trace_id" json:"trace_id"`
|
|
SessionID *string `db:"session_id" json:"session_id,omitempty"`
|
|
RequestID string `db:"request_id" json:"request_id"`
|
|
UserID *int `db:"user_id" json:"user_id,omitempty"`
|
|
InstanceID *int `db:"instance_id" json:"instance_id,omitempty"`
|
|
InstanceMode *string `db:"instance_mode" json:"instance_mode,omitempty"`
|
|
RuntimeType *string `db:"runtime_type" json:"runtime_type,omitempty"`
|
|
GatewayID *string `db:"gateway_id" json:"gateway_id,omitempty"`
|
|
RuntimePodID *int64 `db:"runtime_pod_id" json:"runtime_pod_id,omitempty"`
|
|
ModelID *int `db:"model_id" json:"model_id,omitempty"`
|
|
ProviderType string `db:"provider_type" json:"provider_type"`
|
|
RequestedModel string `db:"requested_model" json:"requested_model"`
|
|
ActualProviderModel string `db:"actual_provider_model" json:"actual_provider_model"`
|
|
TrafficClass string `db:"traffic_class" json:"traffic_class"`
|
|
RequestPayload *string `db:"request_payload" json:"request_payload,omitempty"`
|
|
ResponsePayload *string `db:"response_payload" json:"response_payload,omitempty"`
|
|
PromptTokens int `db:"prompt_tokens" json:"prompt_tokens"`
|
|
CompletionTokens int `db:"completion_tokens" json:"completion_tokens"`
|
|
TotalTokens int `db:"total_tokens" json:"total_tokens"`
|
|
CachedTokens *int `db:"cached_tokens" json:"cached_tokens,omitempty"`
|
|
ReasoningTokens *int `db:"reasoning_tokens" json:"reasoning_tokens,omitempty"`
|
|
LatencyMs *int `db:"latency_ms" json:"latency_ms,omitempty"`
|
|
IsStreaming bool `db:"is_streaming" json:"is_streaming"`
|
|
Status string `db:"status" json:"status"`
|
|
ErrorMessage *string `db:"error_message" json:"error_message,omitempty"`
|
|
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
|
CompletedAt *time.Time `db:"completed_at" json:"completed_at,omitempty"`
|
|
}
|
|
|
|
// TableName returns the table name for model invocations.
|
|
func (m ModelInvocation) TableName() string {
|
|
return "model_invocations"
|
|
}
|