calibration

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AggregatedMetrics

type AggregatedMetrics struct {
	// Run statistics
	TotalRuns          int64         `json:"total_runs"`
	SuccessfulRuns     int64         `json:"successful_runs"`
	FailedRuns         int64         `json:"failed_runs"`
	SuccessRate        float64       `json:"success_rate"`
	AverageRunDuration time.Duration `json:"average_run_duration"`

	// Pattern statistics
	TotalPatternsProcessed int64   `json:"total_patterns_processed"`
	TotalPatternsUpdated   int64   `json:"total_patterns_updated"`
	UpdateRate             float64 `json:"update_rate"` // patterns updated / patterns processed

	// Confidence statistics
	ConfidenceDistribution ConfidenceDistribution `json:"confidence_distribution"`
	AverageConfidence      float64                `json:"average_confidence"`
	ConfidenceTrend        string                 `json:"confidence_trend"` // "improving", "stable", "declining"

	// Time-based metrics
	LastRunAt          *time.Time `json:"last_run_at,omitempty"`
	NextScheduledRun   *time.Time `json:"next_scheduled_run,omitempty"`
	MetricsGeneratedAt time.Time  `json:"metrics_generated_at"`

	// Performance indicators
	RecentSamples    []MetricsSample `json:"recent_samples"`
	PerformanceScore float64         `json:"performance_score"` // 0-100 based on various factors
}

AggregatedMetrics provides a comprehensive view of calibration performance

type CalibrationConfig

type CalibrationConfig struct {
	Enabled              bool          `yaml:"enabled" json:"enabled"`
	Schedule             string        `yaml:"schedule" json:"schedule"`                             // Cron format: "0 2 * * *"
	BatchSize            int           `yaml:"batch_size" json:"batch_size"`                         // Patterns to process per batch
	MinFeedbackThreshold int           `yaml:"min_feedback_threshold" json:"min_feedback_threshold"` // Minimum feedback required
	DecayRate            float64       `yaml:"decay_rate" json:"decay_rate"`                         // Daily decay rate (0.98)
	RecencyDecayDays     int           `yaml:"recency_decay_days" json:"recency_decay_days"`         // Days for recency weight
	MaxFrequencyBoost    float64       `yaml:"max_frequency_boost" json:"max_frequency_boost"`       // Cap for frequency boost
	CalibrationTimeout   time.Duration `yaml:"calibration_timeout" json:"calibration_timeout"`       // Max time per calibration run
}

CalibrationConfig holds configuration for confidence calibration

func DefaultCalibrationConfig

func DefaultCalibrationConfig() CalibrationConfig

DefaultCalibrationConfig returns sensible defaults

type CalibrationMetrics

type CalibrationMetrics struct {
	LastRunAt           time.Time     `json:"last_run_at"`
	PatternsProcessed   int           `json:"patterns_processed"`
	PatternsUpdated     int           `json:"patterns_updated"`
	AverageConfidence   float64       `json:"average_confidence"`
	HighConfidenceCount int           `json:"high_confidence_count"` // > 0.8
	LowConfidenceCount  int           `json:"low_confidence_count"`  // < 0.3
	ProcessingDuration  time.Duration `json:"processing_duration"`
	ErrorsEncountered   int           `json:"errors_encountered"`
}

CalibrationMetrics tracks calibration effectiveness

type CalibrationProgress

type CalibrationProgress struct {
	Stage             string  `json:"stage"`
	PatternsFound     int     `json:"patterns_found"`
	PatternsProcessed int     `json:"patterns_processed"`
	PatternsUpdated   int     `json:"patterns_updated"`
	ErrorsEncountered int     `json:"errors_encountered"`
	PercentComplete   float64 `json:"percent_complete"`
	EstimatedTimeLeft string  `json:"estimated_time_left"`
}

CalibrationProgress tracks calibration progress

type CalibrationRun

type CalibrationRun struct {
	ID         string               `json:"id"`
	StartedAt  time.Time            `json:"started_at"`
	ProjectID  string               `json:"project_id,omitempty"`
	Status     CalibrationRunStatus `json:"status"`
	Progress   CalibrationProgress  `json:"progress"`
	Context    context.Context      `json:"-"`
	CancelFunc context.CancelFunc   `json:"-"`
}

CalibrationRun represents an active calibration process

type CalibrationRunStatus

type CalibrationRunStatus string

CalibrationRunStatus represents the status of a calibration run

const (
	StatusStarting  CalibrationRunStatus = "starting"
	StatusRunning   CalibrationRunStatus = "running"
	StatusCompleted CalibrationRunStatus = "completed"
	StatusFailed    CalibrationRunStatus = "failed"
	StatusCancelled CalibrationRunStatus = "cancelled"
)

type CalibrationRunSummary

type CalibrationRunSummary struct {
	ID                string               `json:"id"`
	StartedAt         time.Time            `json:"started_at"`
	CompletedAt       time.Time            `json:"completed_at"`
	Duration          time.Duration        `json:"duration"`
	Status            CalibrationRunStatus `json:"status"`
	PatternsProcessed int                  `json:"patterns_processed"`
	PatternsUpdated   int                  `json:"patterns_updated"`
	FinalMetrics      *CalibrationMetrics  `json:"final_metrics,omitempty"`
	Error             string               `json:"error,omitempty"`
}

CalibrationRunSummary is a condensed view of a completed run

type ConfidenceCalibrator

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

ConfidenceCalibrator handles confidence score recalibration

func NewConfidenceCalibrator

func NewConfidenceCalibrator(store knowledge.Store, config CalibrationConfig) *ConfidenceCalibrator

NewConfidenceCalibrator creates a new calibration instance

func (*ConfidenceCalibrator) CalibratePatterns

func (cc *ConfidenceCalibrator) CalibratePatterns(ctx context.Context, projectID string) (*CalibrationMetrics, error)

CalibratePatterns performs confidence calibration on all eligible patterns

func (*ConfidenceCalibrator) GetMetrics

func (cc *ConfidenceCalibrator) GetMetrics() CalibrationMetrics

GetMetrics returns the current calibration metrics

type ConfidenceDistribution

type ConfidenceDistribution struct {
	Range_0_0_to_0_2 int `json:"0.0-0.2"`
	Range_0_2_to_0_4 int `json:"0.2-0.4"`
	Range_0_4_to_0_6 int `json:"0.4-0.6"`
	Range_0_6_to_0_8 int `json:"0.6-0.8"`
	Range_0_8_to_1_0 int `json:"0.8-1.0"`
}

ConfidenceDistribution tracks how confidence scores are distributed

type CurrentRunInfo

type CurrentRunInfo struct {
	ID        string               `json:"id"`
	StartedAt time.Time            `json:"started_at"`
	Status    CalibrationRunStatus `json:"status"`
	Progress  CalibrationProgress  `json:"progress"`
	ProjectID string               `json:"project_id,omitempty"`
}

CurrentRunInfo provides details about the currently running calibration

type MetricsCollector

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

MetricsCollector tracks calibration performance and effectiveness

func NewMetricsCollector

func NewMetricsCollector() *MetricsCollector

NewMetricsCollector creates a new metrics collector

func (*MetricsCollector) ExportMetrics

func (mc *MetricsCollector) ExportMetrics() ([]byte, error)

ExportMetrics exports metrics in JSON format

func (*MetricsCollector) GetAggregatedMetrics

func (mc *MetricsCollector) GetAggregatedMetrics() AggregatedMetrics

GetAggregatedMetrics returns comprehensive calibration metrics

func (*MetricsCollector) RecordCalibrationRun

func (mc *MetricsCollector) RecordCalibrationRun(runID string, metrics CalibrationMetrics, success bool)

RecordCalibrationRun records metrics from a calibration run

func (*MetricsCollector) Reset

func (mc *MetricsCollector) Reset()

Reset clears all collected metrics

func (*MetricsCollector) String

func (mc *MetricsCollector) String() string

String returns a formatted string representation of current metrics

type MetricsSample

type MetricsSample struct {
	Timestamp           time.Time     `json:"timestamp"`
	RunID               string        `json:"run_id"`
	Duration            time.Duration `json:"duration"`
	PatternsProcessed   int           `json:"patterns_processed"`
	PatternsUpdated     int           `json:"patterns_updated"`
	AverageConfidence   float64       `json:"average_confidence"`
	HighConfidenceCount int           `json:"high_confidence_count"`
	LowConfidenceCount  int           `json:"low_confidence_count"`
	ErrorsEncountered   int           `json:"errors_encountered"`
}

MetricsSample represents a point-in-time metrics snapshot

type PatternCalibrationData

type PatternCalibrationData struct {
	Pattern         knowledge.Memory `json:"pattern"`
	Feedback        PatternFeedback  `json:"feedback"`
	NewConfidence   float64          `json:"new_confidence"`
	ConfidenceDelta float64          `json:"confidence_delta"`
}

PatternCalibrationData holds pattern and its feedback for calibration

type PatternFeedback

type PatternFeedback struct {
	PatternID             string    `json:"pattern_id"`
	TotalFeedback         int       `json:"total_feedback"`
	ConfirmedCount        int       `json:"confirmed_count"`
	FailedCount           int       `json:"failed_count"`
	SuccessRate           float64   `json:"success_rate"`
	LastFeedbackAt        time.Time `json:"last_feedback_at"`
	FirstFeedbackAt       time.Time `json:"first_feedback_at"`
	DaysSinceLastFeedback int       `json:"days_since_last_feedback"`
}

PatternFeedback aggregates feedback for a pattern

type Scheduler

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

Scheduler manages background confidence calibration runs

func NewScheduler

func NewScheduler(store knowledge.Store, config CalibrationConfig) (*Scheduler, error)

NewScheduler creates a new calibration scheduler

func (*Scheduler) CancelCurrentRun

func (s *Scheduler) CancelCurrentRun() error

CancelCurrentRun cancels the currently running calibration

func (*Scheduler) GetStatus

func (s *Scheduler) GetStatus() SchedulerStatus

GetStatus returns the current scheduler status

func (*Scheduler) Start

func (s *Scheduler) Start(ctx context.Context) error

Start begins the calibration scheduler

func (*Scheduler) Stop

func (s *Scheduler) Stop()

Stop stops the calibration scheduler

func (*Scheduler) TriggerCalibration

func (s *Scheduler) TriggerCalibration(projectID string) (string, error)

TriggerCalibration starts a manual calibration run

type SchedulerStatus

type SchedulerStatus struct {
	Enabled    bool                    `json:"enabled"`
	IsRunning  bool                    `json:"is_running"`
	Schedule   string                  `json:"schedule"`
	LastRun    time.Time               `json:"last_run"`
	NextRun    time.Time               `json:"next_run"`
	CurrentRun *CurrentRunInfo         `json:"current_run,omitempty"`
	RunHistory []CalibrationRunSummary `json:"run_history"`
}

SchedulerStatus represents the current state of the scheduler

Jump to

Keyboard shortcuts

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