Skip to content

Commit bb40e3f

Browse files
committed
indexing impl
1 parent af14a2e commit bb40e3f

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

nucleus/__init__.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
JOB_CREATION_TIME_KEY,
9595
IMAGE_KEY,
9696
IMAGE_URL_KEY,
97+
INDEX_CONTINUOUS_ENABLE_KEY,
9798
ITEM_METADATA_SCHEMA_KEY,
9899
ITEMS_KEY,
99100
KEEP_HISTORY_KEY,
@@ -1205,6 +1206,37 @@ def delete_custom_index(self, dataset_id: str):
12051206
requests_command=requests.delete,
12061207
)
12071208

1209+
def toggle_continuous_indexing(self, dataset_id: str, enable: bool = True):
1210+
"""
1211+
Toggles continuous indexing for a given dataset, which will automatically generate embeddings whenever
1212+
new images are uploaded. This endpoint is currently locked for most users. Please contact the nucleus team if
1213+
you wish to use this endpoint.
1214+
1215+
:param
1216+
dataset_id: id of dataset that continuous indexing is being toggled for
1217+
enable: boolean, sets whether we are enabling or disabling continuous indexing. The default behavior is to enable.
1218+
"""
1219+
return self.make_request(
1220+
{INDEX_CONTINUOUS_ENABLE_KEY: enable},
1221+
f"indexing/{dataset_id}/toggleContinuous",
1222+
requests_command=requests.post,
1223+
)
1224+
1225+
def kickoff_image_indexing(self, dataset_id: str, enable: bool = True):
1226+
"""
1227+
Starts indexing generating embeddings for images without embeddings in a given dataset. These embeddings will
1228+
be used for autotag and similarity search. This endpoint is currently locked for most users.
1229+
Please contact the nucleus team if you wish to use this endpoint.
1230+
1231+
:param
1232+
dataset_id: id of dataset for generating embeddings on.
1233+
"""
1234+
return self.make_request(
1235+
{},
1236+
f"indexing/{dataset_id}/kickoffImage",
1237+
requests_command=requests.post,
1238+
)
1239+
12081240
def make_request(
12091241
self, payload: dict, route: str, requests_command=requests.post
12101242
) -> dict:

nucleus/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
IMAGE_KEY = "image"
3838
IMAGE_URL_KEY = "image_url"
3939
INDEX_KEY = "index"
40+
INDEX_CONTINUOUS_ENABLE_KEY = "enable"
4041
ITEMS_KEY = "items"
4142
ITEM_ID_KEY = "item_id"
4243
ITEM_KEY = "item"

nucleus/dataset.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,12 @@ def create_custom_index(self, embeddings_urls: list, embedding_dim: int):
376376
def delete_custom_index(self):
377377
return self._client.delete_custom_index(self.id)
378378

379+
def toggle_continuous_indexing(self, enable: bool = True):
380+
return self._client.toggle_continuous_indexing(self.id, enable)
381+
382+
def kickoff_image_indexing(self):
383+
return self._client.kickoff_image_indexing(self.id)
384+
379385
def check_index_status(self, job_id: str):
380386
return self._client.check_index_status(job_id)
381387

0 commit comments

Comments
 (0)