config

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

config 包的 HTTP 配置管理 API。

提供配置查询、更新、热重载触发与变更历史查询能力。

默认配置定义与默认值构造函数。

Package config 提供 AgentFlow 的配置管理功能。

包含配置加载、热重载、配置 API 和变更历史管理。 支持从文件、环境变量和命令行参数加载配置, 并提供运行时热重载能力。

配置热重载管理器实现。

支持局部更新、变更通知、应用前校验与审计记录。

配置加载器实现。

支持默认值、YAML 文件与环境变量覆盖,并按优先级合并配置。

配置文件变更监听器实现。

基于文件系统事件与轮询兜底机制触发配置重载回调。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetHotReloadableFields

func GetHotReloadableFields() map[string]HotReloadableField

GetHotReloadableFields 返回可热重载字段的列表

func IsHotReloadable

func IsHotReloadable(path string) bool

IsHotReloadable 检查字段是否可以热重载

func MaskAPIKey

func MaskAPIKey(key string) string

MaskAPIKey 掩码 API Key,用于日志记录 例如: "sk-1234567890abcdef" -> "sk-123...def"

func MaskSensitive

func MaskSensitive(s string) string

MaskSensitive 掩码敏感信息,用于日志记录 例如: "mysecretpassword" -> "mys***ord"

Types

type AgentConfig

type AgentConfig struct {
	// 名称
	Name string `yaml:"name" env:"NAME"`
	// 描述
	Description string `yaml:"description" env:"DESCRIPTION"`
	// 模型名称
	Model string `yaml:"model" env:"MODEL"`
	// 系统提示词
	SystemPrompt string `yaml:"system_prompt" env:"SYSTEM_PROMPT"`
	// 最大迭代次数
	MaxIterations int `yaml:"max_iterations" env:"MAX_ITERATIONS"`
	// 温度参数
	Temperature float64 `yaml:"temperature" env:"TEMPERATURE"`
	// 最大 Token 数
	MaxTokens int `yaml:"max_tokens" env:"MAX_TOKENS"`
	// 超时时间
	Timeout time.Duration `yaml:"timeout" env:"TIMEOUT"`
	// 是否启用流式输出
	StreamEnabled bool `yaml:"stream_enabled" env:"STREAM_ENABLED"`
	// 记忆配置
	Memory MemoryConfig `yaml:"memory" env:"MEMORY"`
}

AgentConfig Agent 配置(与 types.AgentConfig 兼容)

func DefaultAgentConfig

func DefaultAgentConfig() AgentConfig

DefaultAgentConfig 返回默认 Agent 配置

type ChangeCallback

type ChangeCallback func(change ConfigChange)

ChangeCallback 配置更改时调用

type Config

type Config struct {
	// Server 服务器配置
	Server ServerConfig `yaml:"server" env:"SERVER"`

	// Agent 默认 Agent 配置
	Agent AgentConfig `yaml:"agent" env:"AGENT"`

	// Redis 缓存配置
	Redis RedisConfig `yaml:"redis" env:"REDIS"`

	// Database 数据库配置
	Database DatabaseConfig `yaml:"database" env:"DATABASE"`

	// Qdrant 向量存储配置
	Qdrant QdrantConfig `yaml:"qdrant" env:"QDRANT"`

	// Weaviate 向量存储配置
	Weaviate WeaviateConfig `yaml:"weaviate" env:"WEAVIATE"`

	// Milvus 向量存储配置
	Milvus MilvusConfig `yaml:"milvus" env:"MILVUS"`

	// LLM 大语言模型配置
	LLM LLMConfig `yaml:"llm" env:"LLM"`

	// Log 日志配置
	Log LogConfig `yaml:"log" env:"LOG"`

	// Telemetry 遥测配置
	Telemetry TelemetryConfig `yaml:"telemetry" env:"TELEMETRY"`
}

Config 是 AgentFlow 的完整配置结构

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig 返回默认配置

func LoadFromEnv

func LoadFromEnv() (*Config, error)

LoadFromEnv 仅从环境变量加载配置

func MustLoad

func MustLoad(path string) *Config

MustLoad 加载配置,失败时 panic

func (*Config) Validate

func (c *Config) Validate() error

Validate 验证配置

type ConfigAPIHandler

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

ConfigAPIHandler 处理配置 API 请求

func NewConfigAPIHandler

func NewConfigAPIHandler(manager *HotReloadManager, allowedOrigin ...string) *ConfigAPIHandler

NewConfigAPIHandler 创建一个新的配置 API 处理程序。 allowedOrigin 指定 CORS 允许的来源,为空时默认不设置 Access-Control-Allow-Origin。

func (*ConfigAPIHandler) RegisterRoutes

func (h *ConfigAPIHandler) RegisterRoutes(mux *http.ServeMux)

RegisterRoutes 注册配置 API 路由

type ConfigAPIMiddleware

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

ConfigAPIMiddleware 为配置API提供中间件

func NewConfigAPIMiddleware

func NewConfigAPIMiddleware(handler *ConfigAPIHandler, apiKey string) *ConfigAPIMiddleware

NewConfigAPIMiddleware 创建一个新的配置API中间件

func (*ConfigAPIMiddleware) LogRequests

func (m *ConfigAPIMiddleware) LogRequests(next http.HandlerFunc, logger func(method, path string, status int, duration time.Duration)) http.HandlerFunc

LogRequests 使用请求日志记录来包装处理程序

func (*ConfigAPIMiddleware) RequireAuth

func (m *ConfigAPIMiddleware) RequireAuth(next http.HandlerFunc) http.HandlerFunc

RequireAuth 使用 API 密钥身份验证包装处理程序

type ConfigChange

type ConfigChange struct {
	// 变更的时间戳
	Timestamp time.Time `json:"timestamp"`

	// 更改的来源(文件、api、env)
	Source string `json:"source"`

	// 已更改字段的路径(例如“Server.HTTPPort”)
	Path string `json:"path"`

	// 更改前的 OldValue(可能会对敏感字段进行编辑)
	OldValue any `json:"old_value,omitempty"`

	// 更改后的 NewValue(可能会对敏感字段进行编辑)
	NewValue any `json:"new_value,omitempty"`

	// RequiresRestart 指示此更改是否需要重新启动
	RequiresRestart bool `json:"requires_restart"`

	// 已应用指示是否应用了更改
	Applied bool `json:"applied"`

	// 如果更改失败则出错
	Error string `json:"error,omitempty"`
}

ConfigChange 代表配置更改

type ConfigResponse

type ConfigResponse struct {
	// success表示操作是否成功
	Success bool `json:"success"`

	// 消息提供附加信息
	Message string `json:"message,omitempty"`

	// 配置是当前配置(已清理)
	Config map[string]any `json:"config,omitempty"`

	// Fields 列出了热可重载字段
	Fields map[string]FieldInfo `json:"fields,omitempty"`

	// 更改列出配置更改
	Changes []ConfigChange `json:"changes,omitempty"`

	// 错误提供错误详细信息
	Error string `json:"error,omitempty"`

	// RequiresRestart 表示是否需要重启
	RequiresRestart bool `json:"requires_restart,omitempty"`

	// 响应的时间戳
	Timestamp time.Time `json:"timestamp"`
}

ConfigResponse 表示配置 API 响应

type ConfigSnapshot

type ConfigSnapshot struct {
	Config    *Config   `json:"config"`
	Timestamp time.Time `json:"timestamp"`
	Source    string    `json:"source"`   // 变更来源:file, api, env
	Version   int       `json:"version"`  // 递增版本号
	Checksum  string    `json:"checksum"` // 配置内容校验和
}

ConfigSnapshot 配置快照(用于历史记录和回滚)

type ConfigUpdateRequest

type ConfigUpdateRequest struct {
	// 更新是到新值的字段路径的映射
	Updates map[string]any `json:"updates"`
}

ConfigUpdateRequest 代表配置更新请求

type DatabaseConfig

type DatabaseConfig struct {
	// 驱动类型: postgres, mysql, sqlite
	Driver string `yaml:"driver" env:"DRIVER"`
	// 主机
	Host string `yaml:"host" env:"HOST"`
	// 端口
	Port int `yaml:"port" env:"PORT"`
	// 用户名
	User string `yaml:"user" env:"USER"`
	// 密码
	Password string `yaml:"password" env:"PASSWORD"`
	// 数据库名
	Name string `yaml:"name" env:"NAME"`
	// SSL 模式
	SSLMode string `yaml:"ssl_mode" env:"SSL_MODE"`
	// 最大连接数
	MaxOpenConns int `yaml:"max_open_conns" env:"MAX_OPEN_CONNS"`
	// 最大空闲连接
	MaxIdleConns int `yaml:"max_idle_conns" env:"MAX_IDLE_CONNS"`
	// 连接最大生命周期
	ConnMaxLifetime time.Duration `yaml:"conn_max_lifetime" env:"CONN_MAX_LIFETIME"`
}

DatabaseConfig 数据库配置

func DefaultDatabaseConfig

func DefaultDatabaseConfig() DatabaseConfig

DefaultDatabaseConfig 返回默认数据库配置

func (*DatabaseConfig) DSN

func (d *DatabaseConfig) DSN() string

DSN 返回数据库连接字符串

func (*DatabaseConfig) SafeDSN

func (d *DatabaseConfig) SafeDSN() string

SafeDSN 返回用于日志记录的安全连接字符串(密码已掩码) 使用此方法而非 DSN() 来记录日志,防止敏感信息泄露

type FieldInfo

type FieldInfo struct {
	// Path是字段路径
	Path string `json:"path"`

	// 字段描述
	Description string `json:"description"`

	// RequiresRestart 指示更改是否需要重新启动
	RequiresRestart bool `json:"requires_restart"`

	// Sensitive 表示该字段是否敏感
	Sensitive bool `json:"sensitive"`

	// CurrentValue 是当前值(如果敏感则进行编辑)
	CurrentValue any `json:"current_value,omitempty"`
}

FieldInfo 提供有关配置字段的信息

type FileEvent

type FileEvent struct {
	// Path是改变的文件路径
	Path string `json:"path"`

	// op 是操作类型
	Op FileOp `json:"op"`

	// 时间戳是事件发生的时间
	Timestamp time.Time `json:"timestamp"`

	// 检测过程中如有错误
	Error error `json:"error,omitempty"`
}

FileEvent 代表文件更改事件

type FileOp

type FileOp int

FileOp 代表文件操作类型

const (
	// FileOpCreate 表示文件已创建
	FileOpCreate FileOp = iota
	// FileOpWrite 指示文件已被修改
	FileOpWrite
	// FileOpRemove 表示文件已被删除
	FileOpRemove
	// FileOpRename 表示文件已重命名
	FileOpRename
	// FileOpChmod 表示文件权限已更改
	FileOpChmod
)

func (FileOp) String

func (op FileOp) String() string

String 返回 FileOp 的字符串表示形式

type FileWatcher

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

FileWatcher 监视配置文件的更改

func NewFileWatcher

func NewFileWatcher(paths []string, opts ...WatcherOption) (*FileWatcher, error)

NewFileWatcher 创建一个新的文件观察器

func (*FileWatcher) AddPath

func (w *FileWatcher) AddPath(path string) error

AddPath 添加新的观看路径

func (*FileWatcher) IsRunning

func (w *FileWatcher) IsRunning() bool

IsRunning 返回观察者是否正在运行

func (*FileWatcher) OnChange

func (w *FileWatcher) OnChange(callback func(FileEvent))

OnChange 注册文件更改事件的回调

func (*FileWatcher) Paths

func (w *FileWatcher) Paths() []string

Paths 返回监视路径的列表

func (*FileWatcher) RemovePath

func (w *FileWatcher) RemovePath(path string) error

RemovePath 从观看中删除一条路径

func (*FileWatcher) Start

func (w *FileWatcher) Start(ctx context.Context) error

Start 开始监视文件更改

func (*FileWatcher) Stop

func (w *FileWatcher) Stop() error

Stop 停止文件观察器

type HotReloadManager

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

HotReloadManager 管理配置热重载

func NewHotReloadManager

func NewHotReloadManager(config *Config, opts ...HotReloadOption) *HotReloadManager

NewHotReloadManager 创建一个新的热重载管理器

func (*HotReloadManager) ApplyConfig

func (m *HotReloadManager) ApplyConfig(newConfig *Config, source string) error

ApplyConfig 应用新配置

func (*HotReloadManager) GetChangeLog

func (m *HotReloadManager) GetChangeLog(limit int) []ConfigChange

GetChangeLog 返回配置变更日志

func (*HotReloadManager) GetConfig

func (m *HotReloadManager) GetConfig() *Config

GetConfig 返回当前配置

func (*HotReloadManager) GetConfigHistory

func (m *HotReloadManager) GetConfigHistory() []ConfigSnapshot

GetConfigHistory 获取配置变更历史

func (*HotReloadManager) GetCurrentVersion

func (m *HotReloadManager) GetCurrentVersion() int

GetCurrentVersion 获取当前配置版本号

func (*HotReloadManager) OnChange

func (m *HotReloadManager) OnChange(callback ChangeCallback)

OnChange 注册配置更改的回调

func (*HotReloadManager) OnReload

func (m *HotReloadManager) OnReload(callback ReloadCallback)

OnReload 注册配置重新加载的回调

func (*HotReloadManager) OnRollback

func (m *HotReloadManager) OnRollback(callback RollbackCallback)

OnRollback 注册回滚事件回调

func (*HotReloadManager) ReloadFromFile

func (m *HotReloadManager) ReloadFromFile() error

ReloadFromFile 从文件重新加载配置

func (*HotReloadManager) Rollback

func (m *HotReloadManager) Rollback() error

Rollback 回滚到上一个有效配置

func (*HotReloadManager) RollbackToVersion

func (m *HotReloadManager) RollbackToVersion(version int) error

RollbackToVersion 回滚到指定版本

func (*HotReloadManager) SanitizedConfig

func (m *HotReloadManager) SanitizedConfig() map[string]any

SanitizedConfig 返回包含敏感字段的配置副本

func (*HotReloadManager) Start

func (m *HotReloadManager) Start(ctx context.Context) error

Start 启动热重载管理器

func (*HotReloadManager) Stop

func (m *HotReloadManager) Stop() error

Stop 停止热重载管理器

func (*HotReloadManager) UpdateField

func (m *HotReloadManager) UpdateField(path string, value any) error

UpdateField 更新单个配置字段

type HotReloadOption

type HotReloadOption func(*HotReloadManager)

HotReloadOption 配置 HotReloadManager

func WithConfigPath

func WithConfigPath(path string) HotReloadOption

WithConfigPath 设置配置文件路径

func WithHotReloadLogger

func WithHotReloadLogger(logger *zap.Logger) HotReloadOption

WithHotReloadLogger 设置记录器

func WithMaxHistorySize

func WithMaxHistorySize(size int) HotReloadOption

WithMaxHistorySize 设置配置历史最大记录数

func WithValidateFunc

func WithValidateFunc(fn ValidateFunc) HotReloadOption

WithValidateFunc 设置配置验证钩子

type HotReloadableField

type HotReloadableField struct {
	// Path 是字段路径(例如“Log.Level”)
	Path string

	// 字段描述
	Description string

	// RequiresRestart 指示更改此字段是否需要重新启动
	RequiresRestart bool

	// Sensitive 表示该字段是否包含敏感数据
	Sensitive bool

	// Validator 是可选的校验函数
	Validator func(value any) error
}

HotReloadableField 定义哪些字段可以热重载

type LLMConfig

type LLMConfig struct {
	// 默认 Provider
	DefaultProvider string `yaml:"default_provider" env:"DEFAULT_PROVIDER"`
	// API Key(通用)
	APIKey string `yaml:"api_key" env:"API_KEY"`
	// 基础 URL(可选)
	BaseURL string `yaml:"base_url" env:"BASE_URL"`
	// 请求超时
	Timeout time.Duration `yaml:"timeout" env:"TIMEOUT"`
	// 最大重试次数
	MaxRetries int `yaml:"max_retries" env:"MAX_RETRIES"`
}

LLMConfig LLM 配置

func DefaultLLMConfig

func DefaultLLMConfig() LLMConfig

DefaultLLMConfig 返回默认 LLM 配置

type Loader

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

Loader 配置加载器(Builder 模式)

func NewLoader

func NewLoader() *Loader

NewLoader 创建新的配置加载器

func (*Loader) Load

func (l *Loader) Load() (*Config, error)

Load 加载配置 优先级: 默认值 → YAML 文件 → 环境变量

func (*Loader) WithConfigPath

func (l *Loader) WithConfigPath(path string) *Loader

WithConfigPath 设置配置文件路径

func (*Loader) WithEnvPrefix

func (l *Loader) WithEnvPrefix(prefix string) *Loader

WithEnvPrefix 设置环境变量前缀

func (*Loader) WithValidator

func (l *Loader) WithValidator(v func(*Config) error) *Loader

WithValidator 添加配置验证器

type LogConfig

type LogConfig struct {
	// 日志级别: debug, info, warn, error
	Level string `yaml:"level" env:"LEVEL"`
	// 输出格式: json, console
	Format string `yaml:"format" env:"FORMAT"`
	// 输出路径
	OutputPaths []string `yaml:"output_paths" env:"OUTPUT_PATHS"`
	// 是否启用调用者信息
	EnableCaller bool `yaml:"enable_caller" env:"ENABLE_CALLER"`
	// 是否启用堆栈跟踪
	EnableStacktrace bool `yaml:"enable_stacktrace" env:"ENABLE_STACKTRACE"`
}

LogConfig 日志配置

func DefaultLogConfig

func DefaultLogConfig() LogConfig

DefaultLogConfig 返回默认日志配置

type MemoryConfig

type MemoryConfig struct {
	// 是否启用
	Enabled bool `yaml:"enabled" env:"ENABLED"`
	// 类型: buffer, summary, vector
	Type string `yaml:"type" env:"TYPE"`
	// 最大消息数
	MaxMessages int `yaml:"max_messages" env:"MAX_MESSAGES"`
	// Token 限制
	TokenLimit int `yaml:"token_limit" env:"TOKEN_LIMIT"`
}

MemoryConfig 记忆配置

type MilvusConfig

type MilvusConfig struct {
	// 主机
	Host string `yaml:"host" env:"HOST"`
	// gRPC 端口
	Port int `yaml:"port" env:"PORT"`
	// 用户名(可选)
	Username string `yaml:"username" env:"USERNAME"`
	// 密码(可选)
	Password string `yaml:"password" env:"PASSWORD"`
	// Token(用于 Zilliz Cloud)
	Token string `yaml:"token" env:"TOKEN"`
	// 数据库名
	Database string `yaml:"database" env:"DATABASE"`
	// 默认集合名
	Collection string `yaml:"collection" env:"COLLECTION"`
	// 向量维度
	VectorDimension int `yaml:"vector_dimension" env:"VECTOR_DIMENSION"`
	// 索引类型: IVF_FLAT, HNSW, FLAT, IVF_SQ8, IVF_PQ
	IndexType string `yaml:"index_type" env:"INDEX_TYPE"`
	// 距离度量: L2, IP, COSINE
	MetricType string `yaml:"metric_type" env:"METRIC_TYPE"`
	// 是否自动创建集合
	AutoCreateCollection bool `yaml:"auto_create_collection" env:"AUTO_CREATE_COLLECTION"`
	// 请求超时
	Timeout time.Duration `yaml:"timeout" env:"TIMEOUT"`
	// 批量操作大小
	BatchSize int `yaml:"batch_size" env:"BATCH_SIZE"`
	// 一致性级别: Strong, Session, Bounded, Eventually
	ConsistencyLevel string `yaml:"consistency_level" env:"CONSISTENCY_LEVEL"`
}

MilvusConfig Milvus 向量存储配置

func DefaultMilvusConfig

func DefaultMilvusConfig() MilvusConfig

DefaultMilvusConfig 返回默认 Milvus 配置

type QdrantConfig

type QdrantConfig struct {
	// 主机
	Host string `yaml:"host" env:"HOST"`
	// gRPC 端口
	Port int `yaml:"port" env:"PORT"`
	// API Key(可选)
	APIKey string `yaml:"api_key" env:"API_KEY"`
	// 默认集合名
	Collection string `yaml:"collection" env:"COLLECTION"`
}

QdrantConfig Qdrant 向量存储配置

func DefaultQdrantConfig

func DefaultQdrantConfig() QdrantConfig

DefaultQdrantConfig 返回默认 Qdrant 配置

type RedisConfig

type RedisConfig struct {
	// 地址
	Addr string `yaml:"addr" env:"ADDR"`
	// 密码
	Password string `yaml:"password" env:"PASSWORD"`
	// 数据库编号
	DB int `yaml:"db" env:"DB"`
	// 连接池大小
	PoolSize int `yaml:"pool_size" env:"POOL_SIZE"`
	// 最小空闲连接
	MinIdleConns int `yaml:"min_idle_conns" env:"MIN_IDLE_CONNS"`
}

RedisConfig Redis 配置

func DefaultRedisConfig

func DefaultRedisConfig() RedisConfig

DefaultRedisConfig 返回默认 Redis 配置

type ReloadCallback

type ReloadCallback func(oldConfig, newConfig *Config)

ReloadCallback 重新加载配置后调用

type RollbackCallback

type RollbackCallback func(event RollbackEvent)

RollbackCallback 回滚事件回调

type RollbackEvent

type RollbackEvent struct {
	Timestamp      time.Time `json:"timestamp"`
	Reason         string    `json:"reason"`
	FailedConfig   *Config   `json:"failed_config"`
	RestoredConfig *Config   `json:"restored_config"`
	Version        int       `json:"version"`
	Error          error     `json:"error,omitempty"`
}

RollbackEvent 回滚事件

type ServerConfig

type ServerConfig struct {
	// HTTP 端口
	HTTPPort int `yaml:"http_port" env:"HTTP_PORT"`
	// gRPC 端口
	GRPCPort int `yaml:"grpc_port" env:"GRPC_PORT"`
	// Metrics 端口
	MetricsPort int `yaml:"metrics_port" env:"METRICS_PORT"`
	// 读取超时
	ReadTimeout time.Duration `yaml:"read_timeout" env:"READ_TIMEOUT"`
	// 写入超时
	WriteTimeout time.Duration `yaml:"write_timeout" env:"WRITE_TIMEOUT"`
	// 优雅关闭超时
	ShutdownTimeout time.Duration `yaml:"shutdown_timeout" env:"SHUTDOWN_TIMEOUT"`
	// CORS 允许的源
	CORSAllowedOrigins []string `yaml:"cors_allowed_origins" json:"cors_allowed_origins,omitempty"`
	// API 密钥
	APIKeys []string `yaml:"api_keys" json:"api_keys,omitempty"`
	// 是否允许从 URL Query 读取 API Key(默认 false,出于安全考虑)
	AllowQueryAPIKey bool `yaml:"allow_query_api_key" env:"ALLOW_QUERY_API_KEY" json:"allow_query_api_key,omitempty"`
	// 限流 RPS,默认 100
	RateLimitRPS int `yaml:"rate_limit_rps" json:"rate_limit_rps,omitempty"`
	// 限流 Burst,默认 200
	RateLimitBurst int `yaml:"rate_limit_burst" json:"rate_limit_burst,omitempty"`
}

ServerConfig 服务器配置

func DefaultServerConfig

func DefaultServerConfig() ServerConfig

DefaultServerConfig 返回默认服务器配置

type TelemetryConfig

type TelemetryConfig struct {
	// 是否启用
	Enabled bool `yaml:"enabled" env:"ENABLED"`
	// OTLP 端点
	OTLPEndpoint string `yaml:"otlp_endpoint" env:"OTLP_ENDPOINT"`
	// 服务名称
	ServiceName string `yaml:"service_name" env:"SERVICE_NAME"`
	// 采样率
	SampleRate float64 `yaml:"sample_rate" env:"SAMPLE_RATE"`
}

TelemetryConfig 遥测配置

func DefaultTelemetryConfig

func DefaultTelemetryConfig() TelemetryConfig

DefaultTelemetryConfig 返回默认遥测配置

type ValidateFunc

type ValidateFunc func(newConfig *Config) error

ValidateFunc 配置验证钩子函数 接收新配置,返回 error 表示验证失败

type WatcherOption

type WatcherOption func(*FileWatcher)

WatcherOption 配置文件观察器

func WithDebounceDelay

func WithDebounceDelay(d time.Duration) WatcherOption

WithDebounceDelay 设置文件事件的去抖延迟

func WithWatcherLogger

func WithWatcherLogger(logger *zap.Logger) WatcherOption

WithWatcherLogger 设置观察者的记录器

type WeaviateConfig

type WeaviateConfig struct {
	// 主机
	Host string `yaml:"host" env:"HOST"`
	// HTTP 端口
	Port int `yaml:"port" env:"PORT"`
	// 协议: http 或 https
	Scheme string `yaml:"scheme" env:"SCHEME"`
	// API Key(可选)
	APIKey string `yaml:"api_key" env:"API_KEY"`
	// 默认类名(集合名)
	ClassName string `yaml:"class_name" env:"CLASS_NAME"`
	// 是否自动创建 Schema
	AutoCreateSchema bool `yaml:"auto_create_schema" env:"AUTO_CREATE_SCHEMA"`
	// 距离度量: cosine, dot, l2
	Distance string `yaml:"distance" env:"DISTANCE"`
	// 混合搜索 Alpha 值 (0=BM25, 1=向量)
	HybridAlpha float64 `yaml:"hybrid_alpha" env:"HYBRID_ALPHA"`
	// 请求超时
	Timeout time.Duration `yaml:"timeout" env:"TIMEOUT"`
}

WeaviateConfig Weaviate 向量存储配置

func DefaultWeaviateConfig

func DefaultWeaviateConfig() WeaviateConfig

DefaultWeaviateConfig 返回默认 Weaviate 配置

Jump to

Keyboard shortcuts

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