Documentation
¶
Index ¶
- func NeedsQueuing(location, serviceType string) bool
- type Cleaner
- func (c *Cleaner) ForceCleanup()
- func (c *Cleaner) GetIdleTimeout() time.Duration
- func (c *Cleaner) GetStats() map[string]interface{}
- func (c *Cleaner) IsStarted() bool
- func (c *Cleaner) SetIdleTimeout(timeout time.Duration)
- func (c *Cleaner) Start(cleanupInterval time.Duration)
- func (c *Cleaner) Stop()
- type Loader
- func (l *Loader) EnsureModelLoaded(ctx context.Context, modelName string, ...) error
- func (l *Loader) ForceUnloadModel(modelName string) error
- func (l *Loader) GetAllModelStates() map[string]*ModelState
- func (l *Loader) GetCurrentModel() string
- func (l *Loader) GetIdleModels(idleTimeout time.Duration) []*ModelState
- func (l *Loader) GetModelState(modelName string) (*ModelState, bool)
- func (l *Loader) GetStats() map[string]interface{}
- func (l *Loader) InitializeRunningModels()
- func (l *Loader) LoadModel(modelName string, provider provider.ModelServiceProvider) error
- func (l *Loader) MarkModelIdle(modelName string) error
- func (l *Loader) MarkModelInUse(modelName string) error
- func (l *Loader) SwitchModel(newModel string, provider provider.ModelServiceProvider) error
- func (l *Loader) UnloadModel(modelName string, provider provider.ModelServiceProvider) error
- type Manager
- func (m *Manager) CompleteLocalModelRequest(taskID uint64)
- func (m *Manager) EnqueueLocalModelRequest(ctx context.Context, modelName string, ...) (chan struct{}, chan error, error)
- func (m *Manager) ForceUnloadModel(modelName string) error
- func (m *Manager) GetAllModelStates() map[string]*ModelState
- func (m *Manager) GetCurrentModel() string
- func (m *Manager) GetModelState(modelName string) (*ModelState, bool)
- func (m *Manager) GetStats() map[string]interface{}
- func (m *Manager) MarkModelIdle(modelName string) error
- func (m *Manager) MarkModelInUse(modelName string) error
- func (m *Manager) SetCurrentModel(modelName string)
- func (m *Manager) SetIdleTimeout(timeout time.Duration)
- func (m *Manager) Start(cleanupInterval time.Duration)
- func (m *Manager) Stop()
- type ModelLoader
- type ModelState
- func (ms *ModelState) DecrementRef()
- func (ms *ModelState) GetRefCount() int
- func (ms *ModelState) GetStatus() ModelStatus
- func (ms *ModelState) IncrementRef()
- func (ms *ModelState) IsIdle(idleTimeout time.Duration) bool
- func (ms *ModelState) SetStatus(status ModelStatus)
- func (ms *ModelState) UpdateLastUsedTime()
- type ModelStateManager
- type ModelStatus
- type Queue
- func (q *Queue) CompleteRequest(taskID uint64)
- func (q *Queue) EnqueueRequest(request *QueuedRequest) error
- func (q *Queue) GetCurrentRequest() *QueuedRequest
- func (q *Queue) GetQueueLength() int
- func (q *Queue) GetStats() map[string]interface{}
- func (q *Queue) HasActiveRequests() bool
- func (q *Queue) HasPendingRequests() bool
- func (q *Queue) IsProcessing() bool
- func (q *Queue) Start()
- func (q *Queue) Stop()
- type QueueStatusChecker
- type QueuedRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NeedsQueuing ¶
NeedsQueuing determines if request needs to enter queuing mechanism (exported function)
Types ¶
type Cleaner ¶
type Cleaner struct {
// contains filtered or unexported fields
}
Cleaner 模型自动清理服务 负责定期检查并卸载空闲超时的模型
func NewCleaner ¶
func NewCleaner(queueChecker QueueStatusChecker, modelLoader ModelLoader) *Cleaner
NewCleaner 创建新的清理器
func (*Cleaner) GetIdleTimeout ¶
GetIdleTimeout 获取空闲超时时间
func (*Cleaner) SetIdleTimeout ¶
SetIdleTimeout 设置空闲超时时间
type Loader ¶
type Loader struct {
// contains filtered or unexported fields
}
Loader 模型加载管理器
func (*Loader) EnsureModelLoaded ¶
func (l *Loader) EnsureModelLoaded(ctx context.Context, modelName string, providerInstance provider.ModelServiceProvider, providerName, providerType string) error
EnsureModelLoaded 确保模型已加载,如果未加载则自动加载
func (*Loader) ForceUnloadModel ¶
ForceUnloadModel 强制卸载指定模型
func (*Loader) GetAllModelStates ¶
func (l *Loader) GetAllModelStates() map[string]*ModelState
GetAllModelStates 获取所有模型状态信息
func (*Loader) GetCurrentModel ¶
GetCurrentModel 获取当前加载的模型
func (*Loader) GetIdleModels ¶
func (l *Loader) GetIdleModels(idleTimeout time.Duration) []*ModelState
GetIdleModels 获取空闲超时的模型列表
func (*Loader) GetModelState ¶
func (l *Loader) GetModelState(modelName string) (*ModelState, bool)
GetModelState 获取模型状态信息
func (*Loader) InitializeRunningModels ¶
func (l *Loader) InitializeRunningModels()
InitializeRunningModels 初始化时获取已运行的模型并清理它们
func (*Loader) LoadModel ¶
func (l *Loader) LoadModel(modelName string, provider provider.ModelServiceProvider) error
LoadModel 加载模型
func (*Loader) MarkModelIdle ¶
MarkModelIdle 标记模型为空闲
func (*Loader) MarkModelInUse ¶
MarkModelInUse 标记模型为使用中
func (*Loader) SwitchModel ¶
func (l *Loader) SwitchModel(newModel string, provider provider.ModelServiceProvider) error
SwitchModel 切换模型
func (*Loader) UnloadModel ¶
func (l *Loader) UnloadModel(modelName string, provider provider.ModelServiceProvider) error
UnloadModel 卸载模型
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager model manager, implements ModelStateManager interface
func GetModelMemoryManager ¶
func GetModelMemoryManager() *Manager
GetModelMemoryManager 获取全局模型管理器实例(保持向后兼容)
func (*Manager) CompleteLocalModelRequest ¶
CompleteLocalModelRequest 完成本地模型请求处理
func (*Manager) EnqueueLocalModelRequest ¶
func (m *Manager) EnqueueLocalModelRequest(ctx context.Context, modelName string, providerInstance provider.ModelServiceProvider, providerName, providerType string, taskID uint64) (chan struct{}, chan error, error)
EnqueueLocalModelRequest 将本地模型请求加入队列,返回准备完成通道和错误通道
func (*Manager) ForceUnloadModel ¶
ForceUnloadModel 强制卸载指定模型
func (*Manager) GetAllModelStates ¶
func (m *Manager) GetAllModelStates() map[string]*ModelState
GetAllModelStates 获取所有模型状态信息
func (*Manager) GetCurrentModel ¶
GetCurrentModel 获取当前加载的模型
func (*Manager) GetModelState ¶
func (m *Manager) GetModelState(modelName string) (*ModelState, bool)
GetModelState 获取模型状态信息
func (*Manager) MarkModelIdle ¶
MarkModelIdle 标记模型为空闲
func (*Manager) MarkModelInUse ¶
MarkModelInUse 标记模型为使用中
func (*Manager) SetCurrentModel ¶
SetCurrentModel 设置当前模型
func (*Manager) SetIdleTimeout ¶
SetIdleTimeout 设置空闲超时时间
type ModelLoader ¶
type ModelLoader interface {
SwitchModel(newModel string, provider provider.ModelServiceProvider) error
LoadModel(modelName string, provider provider.ModelServiceProvider) error
UnloadModel(modelName string, provider provider.ModelServiceProvider) error
ForceUnloadModel(modelName string) error
}
ModelLoader 模型加载接口
type ModelState ¶
type ModelState struct {
ModelName string // 模型名称
ProviderName string // 提供商名称
ProviderType string // 提供商类型
Status ModelStatus // 当前状态
LastUsedTime time.Time // 最后使用时间
LoadedTime time.Time // 加载时间
RefCount int // 引用计数(并发使用数)
Provider provider.ModelServiceProvider // 提供商实例
// contains filtered or unexported fields
}
ModelState 模型状态信息
func (*ModelState) DecrementRef ¶
func (ms *ModelState) DecrementRef()
DecrementRef 减少引用计数,如果为0则设置为空闲
func (*ModelState) IsIdle ¶
func (ms *ModelState) IsIdle(idleTimeout time.Duration) bool
IsIdle 检查是否空闲且超过指定时间
func (*ModelState) SetStatus ¶
func (ms *ModelState) SetStatus(status ModelStatus)
SetStatus 设置状态(线程安全)
func (*ModelState) UpdateLastUsedTime ¶
func (ms *ModelState) UpdateLastUsedTime()
UpdateLastUsedTime 更新最后使用时间
type ModelStateManager ¶
type ModelStateManager interface {
GetCurrentModel() string
MarkModelInUse(modelName string) error
MarkModelIdle(modelName string) error
SetCurrentModel(modelName string)
}
ModelStateManager 模型状态管理接口
type ModelStatus ¶
type ModelStatus int
ModelStatus 模型状态枚举
const ( ModelStatusUnloaded ModelStatus = iota // 未加载 ModelStatusLoading // 加载中 ModelStatusIdle // 空闲 ModelStatusInUse // 使用中 ModelStatusUnloading // 卸载中 )
func (ModelStatus) String ¶
func (s ModelStatus) String() string
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
Queue model request queue
func NewQueue ¶
func NewQueue(stateManager ModelStateManager, loader ModelLoader) *Queue
NewQueue creates a new queue
func (*Queue) CompleteRequest ¶
CompleteRequest 完成请求处理
func (*Queue) EnqueueRequest ¶
func (q *Queue) EnqueueRequest(request *QueuedRequest) error
EnqueueRequest 将请求加入队列(非阻塞)
func (*Queue) GetCurrentRequest ¶
func (q *Queue) GetCurrentRequest() *QueuedRequest
GetCurrentRequest 获取当前处理的请求
func (*Queue) HasActiveRequests ¶
HasActiveRequests 检查是否有活跃的请求
func (*Queue) HasPendingRequests ¶
HasPendingRequests 检查是否有待处理的请求
type QueueStatusChecker ¶
type QueueStatusChecker interface {
HasPendingRequests() bool
HasActiveRequests() bool
GetCurrentRequest() *QueuedRequest
}
QueueStatusChecker 队列状态检查接口
type QueuedRequest ¶
type QueuedRequest struct {
TaskID uint64 // Task ID
ModelName string // Model name
Provider provider.ModelServiceProvider // Provider instance
ProviderName string // Provider name
ProviderType string // Provider type
Context context.Context // Context
StartTime time.Time // Start time
ReadyChan chan struct{} // Model ready notification channel
CompleteChan chan struct{} // Task execution completion notification channel
ErrorChan chan error // Error notification channel
}
QueuedRequest queued request