summaryrefslogtreecommitdiff
path: root/rag/rag.go
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2026-03-05 19:20:21 +0300
committerGrail Finder <wohilas@gmail.com>2026-03-05 19:20:21 +0300
commitac8c8bb0558a00cf0d025ab8522aaa57b8cba7de (patch)
treef3a78123e7ef5039109b26565041f4a129d1fec2 /rag/rag.go
parentc2c107c78688dedb8429ef13bd0aa102eeb32fdb (diff)
Enha: onnx config vars
Diffstat (limited to 'rag/rag.go')
-rw-r--r--rag/rag.go16
1 files changed, 14 insertions, 2 deletions
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,