From 4ef0a215119924347c2219f4677f11a96358307f Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Fri, 6 Mar 2026 09:32:45 +0300 Subject: Enha (onnx): unload model if noop for 30s --- rag/embedder.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'rag/embedder.go') diff --git a/rag/embedder.go b/rag/embedder.go index 13f6a6e..39f4b5c 100644 --- a/rag/embedder.go +++ b/rag/embedder.go @@ -308,6 +308,19 @@ func (e *ONNXEmbedder) getModelPath() string { return e.modelPath } +func (e *ONNXEmbedder) Destroy() error { + e.mu.Lock() + defer e.mu.Unlock() + if e.session != nil { + if err := e.session.Destroy(); err != nil { + return fmt.Errorf("failed to destroy ONNX session: %w", err) + } + e.session = nil + e.logger.Info("ONNX session destroyed, VRAM freed") + } + return nil +} + func (e *ONNXEmbedder) Embed(text string) ([]float32, error) { if err := e.ensureInitialized(); err != nil { return nil, err -- cgit v1.2.3