Private
Public Access
0
0

made local rag needs optional (prevents having to have torch / sentence-transformers if you never use local embedding)

This commit is contained in:
2026-06-06 13:21:28 -04:00
parent 32e633b3ec
commit 9e4fac496d
4 changed files with 23 additions and 16 deletions
+8 -1
View File
@@ -2,6 +2,7 @@ import pytest
import os
from unittest.mock import MagicMock, patch
from src import models
from src import rag_engine
from src.rag_engine import RAGEngine, BaseEmbeddingProvider, LocalEmbeddingProvider, GeminiEmbeddingProvider
class MockEmbeddingProvider(BaseEmbeddingProvider):
@@ -11,13 +12,19 @@ class MockEmbeddingProvider(BaseEmbeddingProvider):
@pytest.fixture
def mock_rag_config():
vs_config = models.VectorStoreConfig(provider='mock', collection_name='test')
return models.RAGConfig(enabled=True, vector_store=vs_config, embedding_provider='local')
return models.RAGConfig(enabled=True, vector_store=vs_config, embedding_provider='gemini')
def test_rag_engine_init_mock(mock_rag_config):
engine = RAGEngine(mock_rag_config)
assert engine.config.enabled is True
assert engine.collection == "mock"
def test_local_embedding_provider_missing_dependency_has_install_hint():
with patch.object(rag_engine, "_SENTENCE_TRANSFORMERS", None):
with patch.dict("sys.modules", {"sentence_transformers": None}):
with pytest.raises(ImportError, match=r"manual_slop\[local-rag\]"):
LocalEmbeddingProvider()
@patch('src.rag_engine.LocalEmbeddingProvider.embed')
@patch('src.rag_engine._get_chromadb')
def test_rag_engine_chroma(mock_get_chroma, mock_embed):