summaryrefslogtreecommitdiff
path: root/rag/embedder.go
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2026-03-06 09:32:45 +0300
committerGrail Finder <wohilas@gmail.com>2026-03-06 09:32:45 +0300
commit4ef0a215119924347c2219f4677f11a96358307f (patch)
treea04b9701ff5e6d68c67ce76688b29219bbec74a1 /rag/embedder.go
parentd2caebdb4fd3ad148aad20866503b7d46d546404 (diff)
Enha (onnx): unload model if noop for 30s
Diffstat (limited to 'rag/embedder.go')
-rw-r--r--rag/embedder.go13
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