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] #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