config

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 25, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CacheConfig

type CacheConfig struct {
	LocalMaxSize    int           `json:"local_max_size" yaml:"local_max_size"`
	LocalTTL        time.Duration `json:"local_ttl" yaml:"local_ttl"`
	RedisTTL        time.Duration `json:"redis_ttl" yaml:"redis_ttl"`
	EnableLocal     bool          `json:"enable_local" yaml:"enable_local"`
	EnableRedis     bool          `json:"enable_redis" yaml:"enable_redis"`
	KeyStrategyType string        `json:"key_strategy" yaml:"key_strategy"` // hash | hierarchical
}

CacheConfig 缓存配置

type ErrorCode

type ErrorCode string

ErrorCode 错误码类型

type FallbackAction

type FallbackAction struct {
	Type     FallbackType
	Target   string // 目标 model 或 provider
	Template string // 模板响应
	Policy   *FallbackPolicy
}

FallbackAction 降级动作

type FallbackPolicy

type FallbackPolicy struct {
	ID               string       `json:"id" yaml:"id"`
	Name             string       `json:"name" yaml:"name"`
	Priority         int          `json:"priority" yaml:"priority"`
	TriggerProvider  string       `json:"trigger_provider,omitempty" yaml:"trigger_provider,omitempty"`
	TriggerModel     string       `json:"trigger_model,omitempty" yaml:"trigger_model,omitempty"`
	TriggerErrors    []string     `json:"trigger_errors" yaml:"trigger_errors"`
	FallbackType     FallbackType `json:"fallback_type" yaml:"fallback_type"`
	FallbackTarget   string       `json:"fallback_target,omitempty" yaml:"fallback_target,omitempty"`
	FallbackTemplate string       `json:"fallback_template,omitempty" yaml:"fallback_template,omitempty"`
	RetryMax         int          `json:"retry_max" yaml:"retry_max"`
	RetryDelayMs     int          `json:"retry_delay_ms" yaml:"retry_delay_ms"`
	RetryMultiplier  float64      `json:"retry_multiplier" yaml:"retry_multiplier"`
	Enabled          bool         `json:"enabled" yaml:"enabled"`
	Version          int          `json:"version" yaml:"version"`
}

FallbackPolicy 降级策略配置

type FallbackType

type FallbackType string
const (
	FallbackModel        FallbackType = "model"
	FallbackProvider     FallbackType = "provider"
	FallbackDisableTools FallbackType = "disable_tools"
	FallbackTemplate     FallbackType = "template"
)

type LLMConfig

type LLMConfig struct {
	Version          int64                      `json:"version"`
	UpdatedAt        time.Time                  `json:"updated_at"`
	FallbackPolicies []FallbackPolicy           `json:"fallback_policies"`
	RoutingWeights   map[string][]RoutingWeight `json:"routing_weights"` // key: task_type
	Providers        map[string]ProviderConfig  `json:"providers"`       // key: provider_code
	PrefixRules      []PrefixRule               `json:"prefix_rules" yaml:"prefix_rules"`
	Caching          CacheConfig                `json:"caching" yaml:"caching"`
}

LLMConfig 完整的 LLM 配置

type ModelConfig

type ModelConfig struct {
	ID          string   `json:"id"`
	Name        string   `json:"name"`
	MaxTokens   int      `json:"max_tokens,omitempty"`
	PriceInput  float64  `json:"price_input"`
	PriceOutput float64  `json:"price_output"`
	Tags        []string `json:"tags"`
	Enabled     bool     `json:"enabled"`
}

ModelConfig 模型配置

type PolicyManager

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

PolicyManager 降级策略管理器

func NewPolicyManager

func NewPolicyManager() *PolicyManager

NewPolicyManager 创建策略管理器

func (*PolicyManager) FindPolicy

func (pm *PolicyManager) FindPolicy(provider, model string, errCode ErrorCode) *FallbackPolicy

FindPolicy 查找匹配的降级策略

func (*PolicyManager) GetFallbackAction

func (pm *PolicyManager) GetFallbackAction(provider, model string, errCode ErrorCode) *FallbackAction

GetFallbackAction 根据错误获取降级动作

func (*PolicyManager) GetFallbackChain

func (pm *PolicyManager) GetFallbackChain(provider, model string) []FallbackPolicy

GetFallbackChain 获取完整的降级链

func (*PolicyManager) GetRetryDelay

func (pm *PolicyManager) GetRetryDelay(provider, model string, errCode ErrorCode, attempt int) int

GetRetryDelay 获取重试延迟(毫秒)

func (*PolicyManager) ShouldRetry

func (pm *PolicyManager) ShouldRetry(provider, model string, errCode ErrorCode, attempt int) bool

ShouldRetry 判断是否应该重试

func (*PolicyManager) Update

func (pm *PolicyManager) Update(policies []FallbackPolicy)

Update 更新策略列表

type PrefixRule

type PrefixRule struct {
	Prefix   string `json:"prefix" yaml:"prefix"`     // 模型 ID 前缀
	Provider string `json:"provider" yaml:"provider"` // Provider 代码
}

PrefixRule 前缀路由规则

type ProviderConfig

type ProviderConfig struct {
	Code          string        `json:"code"`
	Name          string        `json:"name"`
	BaseURL       string        `json:"base_url"`
	AuthMode      string        `json:"auth_mode"`
	Enabled       bool          `json:"enabled"`
	FailoverGroup string        `json:"failover_group,omitempty"`
	Models        []ModelConfig `json:"models"`
	Version       int           `json:"version"`
}

ProviderConfig Provider 配置

type RoutingWeight

type RoutingWeight struct {
	ID             string  `json:"id"`
	ModelID        string  `json:"model_id"`
	TaskType       string  `json:"task_type,omitempty"`
	Weight         int     `json:"weight"`
	CostWeight     float64 `json:"cost_weight"`
	LatencyWeight  float64 `json:"latency_weight"`
	QualityWeight  float64 `json:"quality_weight"`
	MaxCostPerReq  float64 `json:"max_cost_per_req,omitempty"`
	MaxLatencyMs   int     `json:"max_latency_ms,omitempty"`
	MinSuccessRate float64 `json:"min_success_rate,omitempty"`
	Enabled        bool    `json:"enabled"`
	Version        int     `json:"version"`
}

RoutingWeight 路由权重配置

Jump to

Keyboard shortcuts

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