diff options
| author | Grail Finder <wohilas@gmail.com> | 2026-03-06 09:32:45 +0300 |
|---|---|---|
| committer | Grail Finder <wohilas@gmail.com> | 2026-03-06 09:32:45 +0300 |
| commit | 4ef0a215119924347c2219f4677f11a96358307f (patch) | |
| tree | a04b9701ff5e6d68c67ce76688b29219bbec74a1 /rag/embedder.go | |
| parent | d2caebdb4fd3ad148aad20866503b7d46d546404 (diff) | |
Enha (onnx): unload model if noop for 30s
Diffstat (limited to 'rag/embedder.go')
| -rw-r--r-- | rag/embedder.go | 13 |
1 files changed, 13 insertions, 0 deletions
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 |
