Documentation
¶
Index ¶
- type CacheConfig
- type ErrorCode
- type FallbackAction
- type FallbackPolicy
- type FallbackType
- type LLMConfig
- type ModelConfig
- type PolicyManager
- func (pm *PolicyManager) FindPolicy(provider, model string, errCode ErrorCode) *FallbackPolicy
- func (pm *PolicyManager) GetFallbackAction(provider, model string, errCode ErrorCode) *FallbackAction
- func (pm *PolicyManager) GetFallbackChain(provider, model string) []FallbackPolicy
- func (pm *PolicyManager) GetRetryDelay(provider, model string, errCode ErrorCode, attempt int) int
- func (pm *PolicyManager) ShouldRetry(provider, model string, errCode ErrorCode, attempt int) bool
- func (pm *PolicyManager) Update(policies []FallbackPolicy)
- type PrefixRule
- type ProviderConfig
- type RoutingWeight
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 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 (*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 路由权重配置
Click to show internal directories.
Click to hide internal directories.