config

package
v1.0.0 Latest Latest
Warning

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

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

Documentation

Overview

Package config 提供 LLM 层的配置类型定义, 包括降级策略 (FallbackPolicy)、路由规则等配置结构。

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