Skip to content

Commit 2289075

Browse files
committed
workspaceID updates
Signed-off-by: Grant Linville <[email protected]>
1 parent 1c35ccf commit 2289075

File tree

3 files changed

+38
-23
lines changed

3 files changed

+38
-23
lines changed

gptscript/datasets.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
from pydantic import BaseModel, field_serializer, field_validator, BeforeValidator
33

44

5+
class DatasetMeta(BaseModel):
6+
id: str
7+
name: str
8+
description: str
9+
10+
511
class DatasetElementMeta(BaseModel):
612
name: str
713
description: str

gptscript/gptscript.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
from gptscript.confirm import AuthResponse
1010
from gptscript.credentials import Credential, to_credential
11-
from gptscript.datasets import DatasetElementMeta, DatasetElement
11+
from gptscript.datasets import DatasetElementMeta, DatasetElement, DatasetMeta
1212
from gptscript.fileinfo import FileInfo
1313
from gptscript.frame import RunFrame, CallFrame, PromptFrame, Program
1414
from gptscript.opts import GlobalOptions
@@ -214,27 +214,34 @@ async def delete_credential(self, context: str = "default", name: str = "") -> s
214214
)
215215

216216
# list_datasets returns an array of dataset IDs
217-
async def list_datasets(self) -> List[str]:
217+
async def list_datasets(self) -> List[DatasetMeta]:
218218
res = await self._run_basic_command(
219219
"datasets",
220220
{
221-
"input": json.dumps({"workspaceID": os.getenv("GPTSCRIPT_WORKSPACE_ID")}),
221+
"input": "{}",
222222
"datasetTool": self.opts.DatasetTool,
223223
"env": self.opts.Env
224224
}
225225
)
226-
return json.loads(res)
226+
return [DatasetMeta.model_validate(d) for d in json.loads(res)]
227227

228-
async def add_dataset_elements(self, elements: List[DatasetElement], datasetID: str = "") -> str:
228+
async def add_dataset_elements(
229+
self,
230+
elements: List[DatasetElement],
231+
datasetID: str = "",
232+
name: str = "",
233+
description: str = ""
234+
) -> str:
229235
if not elements:
230236
raise ValueError("elements cannot be empty")
231237

232238
res = await self._run_basic_command(
233239
"datasets/add-elements",
234240
{
235241
"input": json.dumps({
236-
"workspaceID": os.getenv("GPTSCRIPT_WORKSPACE_ID"),
237242
"datasetID": datasetID,
243+
"name": name,
244+
"description": description,
238245
"elements": [element.model_dump() for element in elements],
239246
}),
240247
"datasetTool": self.opts.DatasetTool,
@@ -250,10 +257,7 @@ async def list_dataset_elements(self, datasetID: str) -> List[DatasetElementMeta
250257
res = await self._run_basic_command(
251258
"datasets/list-elements",
252259
{
253-
"input": json.dumps({
254-
"workspaceID": os.getenv("GPTSCRIPT_WORKSPACE_ID"),
255-
"datasetID": datasetID,
256-
}),
260+
"input": json.dumps({"datasetID": datasetID}),
257261
"datasetTool": self.opts.DatasetTool,
258262
"env": self.opts.Env
259263
}
@@ -270,7 +274,6 @@ async def get_dataset_element(self, datasetID: str, elementName: str) -> Dataset
270274
"datasets/get-element",
271275
{
272276
"input": json.dumps({
273-
"workspaceID": os.getenv("GPTSCRIPT_WORKSPACE_ID"),
274277
"datasetID": datasetID,
275278
"name": elementName,
276279
}),

tests/test_gptscript.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -761,36 +761,40 @@ async def test_credentials(gptscript):
761761
@pytest.mark.asyncio
762762
async def test_datasets(gptscript):
763763
workspace_id = await gptscript.create_workspace("directory")
764-
os.environ["GPTSCRIPT_WORKSPACE_ID"] = workspace_id
764+
765+
new_client = GPTScript(GlobalOptions(
766+
apiKey=os.getenv("OPENAI_API_KEY"),
767+
env=[f"GPTSCRIPT_WORKSPACE_ID={workspace_id}"],
768+
))
765769

766770
# Create dataset
767-
dataset_id = await gptscript.add_dataset_elements([
771+
dataset_id = await new_client.add_dataset_elements([
768772
DatasetElement(name="element1", contents="element1 contents", description="element1 description"),
769773
DatasetElement(name="element2", binaryContents=b"element2 contents", description="element2 description"),
770-
])
774+
], name="test-dataset", description="test dataset description")
771775

772776
# Add two more elements
773-
await gptscript.add_dataset_elements([
777+
await new_client.add_dataset_elements([
774778
DatasetElement(name="element3", contents="element3 contents", description="element3 description"),
775779
DatasetElement(name="element4", contents="element3 contents", description="element4 description"),
776-
], dataset_id)
780+
], datasetID=dataset_id)
777781

778782
# Get the elements
779-
e1 = await gptscript.get_dataset_element(dataset_id, "element1")
783+
e1 = await new_client.get_dataset_element(dataset_id, "element1")
780784
assert e1.name == "element1", "Expected element name to match"
781785
assert e1.contents == "element1 contents", "Expected element contents to match"
782786
assert e1.description == "element1 description", "Expected element description to match"
783-
e2 = await gptscript.get_dataset_element(dataset_id, "element2")
787+
e2 = await new_client.get_dataset_element(dataset_id, "element2")
784788
assert e2.name == "element2", "Expected element name to match"
785789
assert e2.binaryContents == b"element2 contents", "Expected element contents to match"
786790
assert e2.description == "element2 description", "Expected element description to match"
787-
e3 = await gptscript.get_dataset_element(dataset_id, "element3")
791+
e3 = await new_client.get_dataset_element(dataset_id, "element3")
788792
assert e3.name == "element3", "Expected element name to match"
789793
assert e3.contents == "element3 contents", "Expected element contents to match"
790794
assert e3.description == "element3 description", "Expected element description to match"
791795

792796
# List elements in the dataset
793-
elements = await gptscript.list_dataset_elements(dataset_id)
797+
elements = await new_client.list_dataset_elements(dataset_id)
794798
assert len(elements) == 4, "Expected four elements in the dataset"
795799
assert elements[0].name == "element1", "Expected element name to match"
796800
assert elements[0].description == "element1 description", "Expected element description to match"
@@ -802,9 +806,11 @@ async def test_datasets(gptscript):
802806
assert elements[3].description == "element4 description", "Expected element description to match"
803807

804808
# List datasets
805-
dataset_ids = await gptscript.list_datasets()
806-
assert len(dataset_ids) > 0, "Expected at least one dataset"
807-
assert dataset_ids[0] == dataset_id, "Expected dataset id to match"
809+
datasets = await new_client.list_datasets()
810+
assert len(datasets) > 0, "Expected at least one dataset"
811+
assert datasets[0].id == dataset_id, "Expected dataset id to match"
812+
assert datasets[0].name == "test-dataset", "Expected dataset name to match"
813+
assert datasets[0].description == "test dataset description", "Expected dataset description to match"
808814

809815
await gptscript.delete_workspace(workspace_id)
810816

0 commit comments

Comments
 (0)