Documentation
¶
Index ¶
- Constants
- func GenerateEnabled(generate *bool) bool
- func GenerateFlag(generate bool) *bool
- func GenerateFromContext(ctx context.Context) bool
- func PublishRecord(ctx context.Context, record Record)
- func ReasoningEffortFromContext(ctx context.Context) string
- func RegisterNamedPlugin(name string, plugin Plugin)
- func RegisterPlugin(plugin Plugin)
- func RequestedModelAliasFromContext(ctx context.Context) string
- func ServiceTierFromContext(ctx context.Context) string
- func StartDefault(ctx context.Context)
- func StopDefault()
- func WithGenerate(ctx context.Context, generate bool) context.Context
- func WithReasoningEffort(ctx context.Context, effort string) context.Context
- func WithRequestedModelAlias(ctx context.Context, alias string) context.Context
- func WithServiceTier(ctx context.Context, tier string) context.Context
- type Detail
- type Failure
- type Manager
- type Plugin
- type Record
Constants ¶
const AutoServiceTier = "auto"
AutoServiceTier is the OpenAI request semantics when service_tier is omitted. OpenAI HTTP handlers set it explicitly, without changing other providers' historical direct-SDK default.
const DefaultServiceTier = "default"
DefaultServiceTier is retained for direct SDK and non-OpenAI usage callers.
Variables ¶
This section is empty.
Functions ¶
func GenerateEnabled ¶ added in v7.2.78
GenerateEnabled reports whether generation is enabled for the record field. A nil value defaults to true so legacy callers that omit Generate keep the historical behavior.
func GenerateFlag ¶ added in v7.2.78
GenerateFlag returns a pointer suitable for Record.Generate.
func GenerateFromContext ¶ added in v7.2.78
GenerateFromContext returns whether the client requested actual generation. Missing values default to true.
func PublishRecord ¶
PublishRecord publishes a record using the default manager.
func ReasoningEffortFromContext ¶ added in v7.1.18
ReasoningEffortFromContext returns the client-requested reasoning effort stored in ctx.
func RegisterNamedPlugin ¶ added in v7.1.47
RegisterNamedPlugin registers or replaces a named plugin on the default manager.
func RegisterPlugin ¶
func RegisterPlugin(plugin Plugin)
RegisterPlugin registers a plugin on the default manager.
func RequestedModelAliasFromContext ¶
RequestedModelAliasFromContext returns the client-requested model name stored in ctx.
func ServiceTierFromContext ¶ added in v7.1.27
ServiceTierFromContext returns the client-requested service tier stored in ctx.
func StartDefault ¶
StartDefault starts the default manager's dispatcher.
func WithGenerate ¶ added in v7.2.78
WithGenerate stores whether the client requested actual generation for usage sinks. Missing context values default to true; only an explicit false disables generation.
func WithReasoningEffort ¶ added in v7.1.18
WithReasoningEffort stores the client-requested reasoning effort for usage sinks.
func WithRequestedModelAlias ¶
WithRequestedModelAlias stores the client-requested model name for usage sinks.
Types ¶
type Detail ¶
type Detail struct {
InputTokens int64
OutputTokens int64
ReasoningTokens int64
CachedTokens int64
CacheReadTokens int64
CacheCreationTokens int64
TotalTokens int64
ResponseServiceTier string
}
Detail holds the token usage breakdown.
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager maintains a queue of usage records and delivers them to registered plugins.
func DefaultManager ¶
func DefaultManager() *Manager
DefaultManager returns the global usage manager instance.
func NewManager ¶
NewManager constructs a manager with a buffered queue.
func (*Manager) Publish ¶
Publish enqueues a usage record for processing. If no plugin is registered the record will be discarded downstream.
func (*Manager) RegisterNamed ¶ added in v7.1.47
RegisterNamed registers or replaces a plugin by name.
type Record ¶
type Record struct {
Provider string
// ExecutorType stores the concrete executor type that handled the request.
ExecutorType string
Model string
Alias string
APIKey string
AuthID string
AuthIndex string
AuthType string
Source string
// ReasoningEffort stores the translated upstream thinking level for request event logs.
ReasoningEffort string
// ServiceTier stores the client-requested service tier.
ServiceTier string
// RequestServiceTier is a deprecated input-only alias retained for existing
// plugin callers. It is normalized into ServiceTier and never emitted.
RequestServiceTier string
// ResponseServiceTier stores the final tier reported by the upstream response.
ResponseServiceTier string
// Generate reports whether the client requested actual generation.
// nil or true means generation is enabled; only an explicit false disables generation.
// Use GenerateFlag to set the value and GenerateEnabled to read it with the default.
Generate *bool
RequestedAt time.Time
Latency time.Duration
TTFT time.Duration
Failed bool
Fail Failure
Detail Detail
// ResponseHeaders stores a snapshot of upstream response headers for usage sinks.
ResponseHeaders http.Header
}
Record contains the usage statistics captured for a single provider request.