From ac8c8bb0558a00cf0d025ab8522aaa57b8cba7de Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Thu, 5 Mar 2026 19:20:21 +0300 Subject: Enha: onnx config vars --- rag/rag.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'rag/rag.go') diff --git a/rag/rag.go b/rag/rag.go index 3d0f38f..654afde 100644 --- a/rag/rag.go +++ b/rag/rag.go @@ -34,8 +34,20 @@ type RAG struct { } func New(l *slog.Logger, s storage.FullRepo, cfg *config.Config) *RAG { - // Initialize with API embedder by default, could be configurable later - embedder := NewAPIEmbedder(l, cfg) + var embedder Embedder + if cfg.EmbedModelPath != "" && cfg.EmbedTokenizerPath != "" { + emb, err := NewONNXEmbedder(cfg.EmbedModelPath, cfg.EmbedTokenizerPath, cfg.EmbedDims, l) + if err != nil { + l.Error("failed to create ONNX embedder, falling back to API", "error", err) + embedder = NewAPIEmbedder(l, cfg) + } else { + embedder = emb + l.Info("using ONNX embedder", "model", cfg.EmbedModelPath, "dims", cfg.EmbedDims) + } + } else { + embedder = NewAPIEmbedder(l, cfg) + l.Info("using API embedder", "url", cfg.EmbedURL) + } rag := &RAG{ logger: l, store: s, -- cgit v1.2.3