From 5ded394e435bb34b955f0b21f7562e2949eb3024 Mon Sep 17 00:00:00 2001 From: Parth Patel <64201651+parthbs@users.noreply.github.com> Date: Tue, 25 Mar 2025 19:01:01 +0000 Subject: [PATCH 1/2] #249 feat: add support for local qdrant client --- .../qdrant_vector_search_tool/qdrant_search_tool.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/crewai_tools/tools/qdrant_vector_search_tool/qdrant_search_tool.py b/src/crewai_tools/tools/qdrant_vector_search_tool/qdrant_search_tool.py index c59dd29d5..3ef467264 100644 --- a/src/crewai_tools/tools/qdrant_vector_search_tool/qdrant_search_tool.py +++ b/src/crewai_tools/tools/qdrant_vector_search_tool/qdrant_search_tool.py @@ -66,8 +66,8 @@ class QdrantVectorSearchTool(BaseTool): ..., description="The URL of the Qdrant server", ) - qdrant_api_key: str = Field( - ..., + qdrant_api_key: Optional[str] = Field( + default=None, description="The API key for the Qdrant server", ) custom_embedding_fn: Optional[callable] = Field( @@ -80,7 +80,7 @@ class QdrantVectorSearchTool(BaseTool): if QDRANT_AVAILABLE: self.client = QdrantClient( url=self.qdrant_url, - api_key=self.qdrant_api_key, + api_key=self.qdrant_api_key if self.qdrant_api_key else None, ) else: import click @@ -133,7 +133,7 @@ class QdrantVectorSearchTool(BaseTool): # Search in Qdrant using the built-in query method query_vector = ( - self._vectorize_query(query) + self._vectorize_query(query, embedding_model="text-embedding-3-large") if not self.custom_embedding_fn else self.custom_embedding_fn(query) ) @@ -158,11 +158,12 @@ class QdrantVectorSearchTool(BaseTool): return json.dumps(results, indent=2) - def _vectorize_query(self, query: str) -> list[float]: + def _vectorize_query(self, query: str, embedding_model: str) -> list[float]: """Default vectorization function with openai. Args: query (str): The query to vectorize + embedding_model (str): The embedding model to use Returns: list[float]: The vectorized query @@ -173,7 +174,7 @@ class QdrantVectorSearchTool(BaseTool): embedding = ( client.embeddings.create( input=[query], - model="text-embedding-3-small", + model=embedding_model, ) .data[0] .embedding From 4fd7db2e5384d73472692dbc3e2239f0174f544e Mon Sep 17 00:00:00 2001 From: Parth Patel <64201651+parthbs@users.noreply.github.com> Date: Tue, 25 Mar 2025 19:16:18 +0000 Subject: [PATCH 2/2] #249: update QdrantVectorSearchTool README --- src/crewai_tools/tools/qdrant_vector_search_tool/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/crewai_tools/tools/qdrant_vector_search_tool/README.md b/src/crewai_tools/tools/qdrant_vector_search_tool/README.md index 131dbca15..26ad9a15f 100644 --- a/src/crewai_tools/tools/qdrant_vector_search_tool/README.md +++ b/src/crewai_tools/tools/qdrant_vector_search_tool/README.md @@ -26,7 +26,7 @@ tool = QdrantVectorSearchTool( collection_name="example_collections", limit=3, qdrant_url="https://your-qdrant-cluster-url.com", - qdrant_api_key="your-qdrant-api-key", + qdrant_api_key="your-qdrant-api-key", # (optional) ) @@ -43,7 +43,7 @@ rag_agent = Agent( - `collection_name` : The name of the collection to search within. (Required) - `qdrant_url` : The URL of the Qdrant cluster. (Required) -- `qdrant_api_key` : The API key for the Qdrant cluster. (Required) +- `qdrant_api_key` : The API key for the Qdrant cluster. (Optional) - `limit` : The number of results to return. (Optional) - `vectorizer` : The vectorizer to use. (Optional)