made local rag needs optional (prevents having to have torch / sentence-transformers if you never use local embedding)
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user