mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-05-15 11:02:36 +02:00
integrate milvus
This commit is contained in:
parent
490203d20f
commit
986fb784aa
6 changed files with 92 additions and 2 deletions
|
|
@ -7,7 +7,7 @@ from metagpt.rag.schema import (
|
|||
ChromaIndexConfig,
|
||||
ElasticsearchIndexConfig,
|
||||
ElasticsearchStoreConfig,
|
||||
FAISSIndexConfig,
|
||||
FAISSIndexConfig, MilvusIndexConfig,
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -20,6 +20,10 @@ class TestRAGIndexFactory:
|
|||
def faiss_config(self):
|
||||
return FAISSIndexConfig(persist_path="")
|
||||
|
||||
@pytest.fixture
|
||||
def milvus_config(self):
|
||||
return MilvusIndexConfig(uri="", collection_name="")
|
||||
|
||||
@pytest.fixture
|
||||
def chroma_config(self):
|
||||
return ChromaIndexConfig(persist_path="", collection_name="")
|
||||
|
|
@ -65,6 +69,17 @@ class TestRAGIndexFactory:
|
|||
):
|
||||
self.index_factory.get_index(bm25_config, embed_model=mock_embedding)
|
||||
|
||||
|
||||
def test_create_milvus_index(self, mocker, milvus_config, mock_from_vector_store, mock_embedding):
|
||||
# Mock
|
||||
mock_milvus_store = mocker.patch("metagpt.rag.factories.index.MilvusVectorStore")
|
||||
|
||||
# Exec
|
||||
self.index_factory.get_index(milvus_config, embed_model=mock_embedding)
|
||||
|
||||
# Assert
|
||||
mock_milvus_store.assert_called_once()
|
||||
|
||||
def test_create_chroma_index(self, mocker, chroma_config, mock_from_vector_store, mock_embedding):
|
||||
# Mock
|
||||
mock_chroma_db = mocker.patch("metagpt.rag.factories.index.chromadb.PersistentClient")
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from llama_index.core.embeddings import MockEmbedding
|
|||
from llama_index.core.schema import TextNode
|
||||
from llama_index.vector_stores.chroma import ChromaVectorStore
|
||||
from llama_index.vector_stores.elasticsearch import ElasticsearchStore
|
||||
from llama_index.vector_stores.milvus import MilvusVectorStore
|
||||
|
||||
from metagpt.rag.factories.retriever import RetrieverFactory
|
||||
from metagpt.rag.retrievers.bm25_retriever import DynamicBM25Retriever
|
||||
|
|
@ -12,12 +13,14 @@ from metagpt.rag.retrievers.chroma_retriever import ChromaRetriever
|
|||
from metagpt.rag.retrievers.es_retriever import ElasticsearchRetriever
|
||||
from metagpt.rag.retrievers.faiss_retriever import FAISSRetriever
|
||||
from metagpt.rag.retrievers.hybrid_retriever import SimpleHybridRetriever
|
||||
from metagpt.rag.retrievers.milvus_retriever import MilvusRetriever
|
||||
from metagpt.rag.schema import (
|
||||
BM25RetrieverConfig,
|
||||
ChromaRetrieverConfig,
|
||||
ElasticsearchRetrieverConfig,
|
||||
ElasticsearchStoreConfig,
|
||||
FAISSRetrieverConfig,
|
||||
MilvusRetrieverConfig,
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -41,6 +44,10 @@ class TestRetrieverFactory:
|
|||
def mock_chroma_vector_store(self, mocker):
|
||||
return mocker.MagicMock(spec=ChromaVectorStore)
|
||||
|
||||
@pytest.fixture
|
||||
def mock_milvus_vector_store(self, mocker):
|
||||
return mocker.MagicMock(spec=MilvusVectorStore)
|
||||
|
||||
@pytest.fixture
|
||||
def mock_es_vector_store(self, mocker):
|
||||
return mocker.MagicMock(spec=ElasticsearchStore)
|
||||
|
|
@ -91,6 +98,14 @@ class TestRetrieverFactory:
|
|||
|
||||
assert isinstance(retriever, ChromaRetriever)
|
||||
|
||||
def test_get_retriever_with_milvus_config(self, mocker, mock_milvus_vector_store, mock_embedding):
|
||||
mock_config = MilvusRetrieverConfig(uri="/path/to/milvus", collection_name="test_collection")
|
||||
mocker.patch("metagpt.rag.factories.retriever.MilvusVectorStore", return_value=mock_milvus_vector_store)
|
||||
|
||||
retriever = self.retriever_factory.get_retriever(configs=[mock_config], nodes=[], embed_model=mock_embedding)
|
||||
|
||||
assert isinstance(retriever, MilvusRetriever)
|
||||
|
||||
def test_get_retriever_with_es_config(self, mocker, mock_es_vector_store, mock_embedding):
|
||||
mock_config = ElasticsearchRetrieverConfig(store_config=ElasticsearchStoreConfig())
|
||||
mocker.patch("metagpt.rag.factories.retriever.ElasticsearchStore", return_value=mock_es_vector_store)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue