From 997e6ceef41cde1545f958f34a7a508111060f5c Mon Sep 17 00:00:00 2001
From: James Briggs <james.briggs@hotmail.com>
Date: Mon, 15 Jul 2024 19:14:36 +0800
Subject: [PATCH] feat: add init_async_index param

---
 pyproject.toml                    | 2 +-
 semantic_router/index/base.py     | 1 +
 semantic_router/index/pinecone.py | 6 +++++-
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/pyproject.toml b/pyproject.toml
index d7fba4d0..9e2cfd67 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "semantic-router"
-version = "0.0.51"
+version = "0.0.52"
 description = "Super fast semantic router for AI decision making"
 authors = [
     "James Briggs <james@aurelio.ai>",
diff --git a/semantic_router/index/base.py b/semantic_router/index/base.py
index 9e226da7..76388d1d 100644
--- a/semantic_router/index/base.py
+++ b/semantic_router/index/base.py
@@ -18,6 +18,7 @@ class BaseIndex(BaseModel):
     utterances: Optional[np.ndarray] = None
     dimensions: Union[int, None] = None
     type: str = "base"
+    init_async_index: bool = False
     sync: Union[str, None] = None
 
     def add(
diff --git a/semantic_router/index/pinecone.py b/semantic_router/index/pinecone.py
index a9c93ccd..fdd87320 100644
--- a/semantic_router/index/pinecone.py
+++ b/semantic_router/index/pinecone.py
@@ -66,6 +66,7 @@ class PineconeIndex(BaseIndex):
         namespace: Optional[str] = "",
         base_url: Optional[str] = "https://api.pinecone.io",
         sync: str = "local",
+        init_async_index: bool = False,
     ):
         super().__init__()
         self.index_name = index_name
@@ -84,7 +85,10 @@ class PineconeIndex(BaseIndex):
             raise ValueError("Pinecone API key is required.")
 
         self.client = self._initialize_client(api_key=self.api_key)
-        self.async_client = self._initialize_async_client(api_key=self.api_key)
+        if init_async_index:
+            self.async_client = self._initialize_async_client(api_key=self.api_key)
+        else:
+            self.async_client = None
 
     def _initialize_client(self, api_key: Optional[str] = None):
         try:
-- 
GitLab