(bug-fix) : fix VertexAI missing configurations (#1926)

This commit is contained in:
Divyanshu Prasad
2024-10-03 21:34:14 +05:30
committed by GitHub
parent c09c4926a7
commit d107b639b3
5 changed files with 15 additions and 8 deletions

View File

@@ -126,6 +126,7 @@
"components/embedders/models/azure_openai",
"components/embedders/models/ollama",
"components/embedders/models/huggingface",
"components/embedders/models/vertexai",
"components/embedders/models/gemini"
]
}

View File

@@ -25,6 +25,8 @@ class BaseEmbedderConfig(ABC):
# AzureOpenAI specific
azure_kwargs: Optional[AzureConfig] = {},
http_client_proxies: Optional[Union[Dict, str]] = None,
# VertexAI specific
vertex_credentials_json: Optional[str] = None,
):
"""
Initializes a configuration class instance for the Embeddings.
@@ -63,3 +65,6 @@ class BaseEmbedderConfig(ABC):
# AzureOpenAI specific
self.azure_kwargs = AzureConfig(**azure_kwargs) or {}
# VertexAI specific
self.vertex_credentials_json = vertex_credentials_json

View File

@@ -7,7 +7,7 @@ from mem0.configs.embeddings.base import BaseEmbedderConfig
from mem0.embeddings.base import EmbeddingBase
class VertexAI(EmbeddingBase):
class VertexAIEmbedding(EmbeddingBase):
def __init__(self, config: Optional[BaseEmbedderConfig] = None):
super().__init__(config)

View File

@@ -42,6 +42,7 @@ class EmbedderFactory:
"huggingface": "mem0.embeddings.huggingface.HuggingFaceEmbedding",
"azure_openai": "mem0.embeddings.azure_openai.AzureOpenAIEmbedding",
"gemini": "mem0.embeddings.gemini.GoogleGenAIEmbedding",
"vertexai": "mem0.embeddings.vertexai.VertexAIEmbedding",
}
@classmethod

View File

@@ -1,6 +1,6 @@
import pytest
from unittest.mock import Mock, patch
from mem0.embeddings.vertexai import VertexAI
from mem0.embeddings.vertexai import VertexAIEmbedding
from mem0.configs.embeddings.base import BaseEmbedderConfig
@@ -32,7 +32,7 @@ def test_embed_default_model(mock_text_embedding_model, mock_os_environ, mock_co
mock_config.return_value.embedding_dims = 256
config = mock_config()
embedder = VertexAI(config)
embedder = VertexAIEmbedding(config)
mock_embedding = Mock(values=[0.1, 0.2, 0.3])
mock_text_embedding_model.from_pretrained.return_value.get_embeddings.return_value = [
@@ -57,7 +57,7 @@ def test_embed_custom_model(mock_text_embedding_model, mock_os_environ, mock_con
config = mock_config()
embedder = VertexAI(config)
embedder = VertexAIEmbedding(config)
mock_embedding = Mock(values=[0.4, 0.5, 0.6])
mock_text_embedding_model.from_pretrained.return_value.get_embeddings.return_value = [
@@ -81,7 +81,7 @@ def test_credentials_from_environment(mock_os, mock_text_embedding_model, mock_c
mock_os.getenv.return_value = "/path/to/env/credentials.json"
mock_config.vertex_credentials_json = None
config = mock_config()
VertexAI(config)
VertexAIEmbedding(config)
mock_os.environ.setitem.assert_not_called()
@@ -96,7 +96,7 @@ def test_missing_credentials(mock_os, mock_text_embedding_model, mock_config):
with pytest.raises(
ValueError, match="Google application credentials JSON is not provided"
):
VertexAI(config)
VertexAIEmbedding(config)
@patch("mem0.embeddings.vertexai.TextEmbeddingModel")
@@ -107,7 +107,7 @@ def test_embed_with_different_dimensions(
mock_config.return_value.embedding_dims = 1024
config = mock_config()
embedder = VertexAI(config)
embedder = VertexAIEmbedding(config)
mock_embedding = Mock(values=[0.1] * 1024)
mock_text_embedding_model.from_pretrained.return_value.get_embeddings.return_value = [