community: add delete method to rocksetdb vectorstore to support recordmanager (#17030)

- **Description:** This adds a delete method so that rocksetdb can be
used with `RecordManager`.
  - **Issue:** N/A
  - **Dependencies:** N/A
  - **Twitter handle:** `@_morgan_adams_`

---------

Co-authored-by: Rockset API Bot <admin@rockset.io>
This commit is contained in:
morgana
2024-02-12 19:50:20 -08:00
committed by GitHub
parent c454dc36fc
commit 722aae4fd1
4 changed files with 35 additions and 1 deletions

View File

@@ -6,6 +6,7 @@ from typing import Any, Iterable, List, Optional, Tuple
from langchain_core.documents import Document
from langchain_core.embeddings import Embeddings
from langchain_core.runnables import run_in_executor
from langchain_core.vectorstores import VectorStore
logger = logging.getLogger(__name__)
@@ -332,3 +333,19 @@ LIMIT {str(k)}
data=[DeleteDocumentsRequestData(id=i) for i in ids],
workspace=self._workspace,
)
def delete(self, ids: Optional[List[str]] = None, **kwargs: Any) -> Optional[bool]:
try:
if ids is None:
ids = []
self.delete_texts(ids)
except Exception as e:
logger.error("Exception when deleting docs from Rockset: %s\n", e)
return False
return True
async def adelete(
self, ids: Optional[List[str]] = None, **kwargs: Any
) -> Optional[bool]:
return await run_in_executor(None, self.delete, ids, **kwargs)