diff --git a/llama_stack/providers/remote/vector_io/milvus/milvus.py b/llama_stack/providers/remote/vector_io/milvus/milvus.py index 0eaae81b3..c659bdf6c 100644 --- a/llama_stack/providers/remote/vector_io/milvus/milvus.py +++ b/llama_stack/providers/remote/vector_io/milvus/milvus.py @@ -413,15 +413,6 @@ class MilvusVectorIOAdapter(OpenAIVectorStoreMixin, VectorIO, VectorDBsProtocolP index = await self._get_and_cache_vector_db_index(vector_db_id) if not index: raise VectorStoreNotFoundError(vector_db_id) - - if params and params.get("mode") == "keyword": - # Check if this is inline Milvus (Milvus-Lite) - if hasattr(self.config, "db_path"): - raise NotImplementedError( - "Keyword search is not supported in Milvus-Lite. " - "Please use a remote Milvus server for keyword search functionality." - ) - return await index.query_chunks(query, params) async def delete_chunks(self, store_id: str, chunks_for_deletion: list[ChunkForDeletion]) -> None: diff --git a/pyproject.toml b/pyproject.toml index db0ad1f00..000d87dcf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -93,6 +93,7 @@ unit = [ "blobfile", "faiss-cpu", "pymilvus>=2.5.12", + "milvus-lite>=2.5.0", "litellm", "together", "coverage", @@ -118,6 +119,7 @@ test = [ "sqlalchemy[asyncio]>=2.0.41", "requests", "pymilvus>=2.5.12", + "milvus-lite>=2.5.0", "weaviate-client>=4.16.4", ] docs = [ diff --git a/tests/integration/vector_io/test_openai_vector_stores.py b/tests/integration/vector_io/test_openai_vector_stores.py index 7ccca9077..bead95c26 100644 --- a/tests/integration/vector_io/test_openai_vector_stores.py +++ b/tests/integration/vector_io/test_openai_vector_stores.py @@ -56,6 +56,7 @@ def skip_if_provider_doesnt_support_openai_vector_stores_search(client_with_mode "keyword": [ "inline::sqlite-vec", "remote::milvus", + "inline::milvus", ], "hybrid": [ "inline::sqlite-vec", diff --git a/uv.lock b/uv.lock index 4c56816ef..6f1b933f7 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.12" resolution-markers = [ "(python_full_version >= '3.13' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.13' and sys_platform != 'darwin' and sys_platform != 'linux')", @@ -1809,6 +1809,7 @@ test = [ { name = "chardet" }, { name = "datasets" }, { name = "mcp" }, + { name = "milvus-lite" }, { name = "openai" }, { name = "pymilvus" }, { name = "pypdf" }, @@ -1831,6 +1832,7 @@ unit = [ { name = "faiss-cpu" }, { name = "litellm" }, { name = "mcp" }, + { name = "milvus-lite" }, { name = "ollama" }, { name = "openai" }, { name = "pymilvus" }, @@ -1925,6 +1927,7 @@ test = [ { name = "chardet" }, { name = "datasets" }, { name = "mcp" }, + { name = "milvus-lite", specifier = ">=2.5.0" }, { name = "openai" }, { name = "pymilvus", specifier = ">=2.5.12" }, { name = "pypdf" }, @@ -1946,6 +1949,7 @@ unit = [ { name = "faiss-cpu" }, { name = "litellm" }, { name = "mcp" }, + { name = "milvus-lite", specifier = ">=2.5.0" }, { name = "ollama" }, { name = "openai" }, { name = "pymilvus", specifier = ">=2.5.12" },