diff --git a/embedchain/embedchain.py b/embedchain/embedchain.py index 639c3ad6..3e7331f5 100644 --- a/embedchain/embedchain.py +++ b/embedchain/embedchain.py @@ -588,7 +588,7 @@ class EmbedChain(JSONSerializable): else: return answer - def search(self, query, num_documents=3, where=None, raw_filter=None): + def search(self, query, num_documents=3, where=None, raw_filter=None, namespace=None): """ Search for similar documents related to the query in the vector database. @@ -597,6 +597,7 @@ class EmbedChain(JSONSerializable): num_documents (int, optional): Number of similar documents to fetch. Defaults to 3. where (dict[str, any], optional): Filter criteria for the search. raw_filter (dict[str, any], optional): Advanced raw filter criteria for the search. + namespace (str, optional): The namespace to search in. Defaults to None. Raises: ValueError: If both `raw_filter` and `where` are used simultaneously. @@ -618,6 +619,7 @@ class EmbedChain(JSONSerializable): "n_results": num_documents, "citations": True, "app_id": self.config.id, + "namespace": namespace, filter_type: filter_criteria, } diff --git a/embedchain/vectordb/pinecone.py b/embedchain/vectordb/pinecone.py index 23fd64ce..1e083f9a 100644 --- a/embedchain/vectordb/pinecone.py +++ b/embedchain/vectordb/pinecone.py @@ -230,6 +230,9 @@ class PineconeDB(BaseVectorDB): @staticmethod def _generate_filter(where: dict): query = {} + if where is None: + return query + for k, v in where.items(): query[k] = {"$eq": v} return query diff --git a/pyproject.toml b/pyproject.toml index 5b1cea35..8987f60e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "embedchain" -version = "0.1.90" +version = "0.1.91" description = "Simplest open source retrieval(RAG) framework" authors = [ "Taranjeet Singh ",