88
99from gptscript .confirm import AuthResponse
1010from gptscript .credentials import Credential , to_credential
11- from gptscript .datasets import DatasetMeta , Dataset , DatasetElementMeta , DatasetElement
11+ from gptscript .datasets import DatasetElementMeta , DatasetElement
1212from gptscript .fileinfo import FileInfo
1313from gptscript .frame import RunFrame , CallFrame , PromptFrame , Program
1414from gptscript .opts import GlobalOptions
@@ -213,109 +213,54 @@ async def delete_credential(self, context: str = "default", name: str = "") -> s
213213 {"context" : [context ], "name" : name }
214214 )
215215
216- async def list_datasets (self , workspace_id : str ) -> List [DatasetMeta ]:
217- if workspace_id == "" :
218- workspace_id = os .environ ["GPTSCRIPT_WORKSPACE_ID" ]
219-
216+ # list_datasets returns an array of dataset IDs
217+ async def list_datasets (self ) -> List [str ]:
220218 res = await self ._run_basic_command (
221219 "datasets" ,
222- {"input" : "{}" , "workspaceID" : workspace_id , "datasetToolRepo" : self .opts .DatasetToolRepo ,
223- "env" : self .opts .Env }
224- )
225- return [DatasetMeta .model_validate (d ) for d in json .loads (res )]
226-
227- async def create_dataset (self , workspace_id : str , name : str , description : str = "" ) -> Dataset :
228- if workspace_id == "" :
229- workspace_id = os .environ ["GPTSCRIPT_WORKSPACE_ID" ]
230-
231- if name == "" :
232- raise ValueError ("name cannot be empty" )
233-
234- res = await self ._run_basic_command (
235- "datasets/create" ,
236220 {
237- "input" : json .dumps ({"datasetName" : name , "datasetDescription" : description }),
238- "workspaceID" : workspace_id ,
239- "datasetToolRepo" : self .opts .DatasetToolRepo ,
240- "env" : self .opts .Env ,
241- }
242- )
243- return Dataset .model_validate_json (res )
244-
245- async def add_dataset_element (self , workspace_id : str , datasetID : str , elementName : str , elementContent : bytes ,
246- elementDescription : str = "" ) -> DatasetElementMeta :
247- if workspace_id == "" :
248- workspace_id = os .environ ["GPTSCRIPT_WORKSPACE_ID" ]
249-
250- if datasetID == "" :
251- raise ValueError ("datasetID cannot be empty" )
252- elif elementName == "" :
253- raise ValueError ("elementName cannot be empty" )
254- elif not elementContent :
255- raise ValueError ("elementContent cannot be empty" )
256-
257- res = await self ._run_basic_command (
258- "datasets/add-element" ,
259- {
260- "input" : json .dumps ({
261- "datasetID" : datasetID ,
262- "elementName" : elementName ,
263- "elementContent" : base64 .b64encode (elementContent ).decode ("utf-8" ),
264- "elementDescription" : elementDescription ,
265- }),
266- "workspaceID" : workspace_id ,
267- "datasetToolRepo" : self .opts .DatasetToolRepo ,
221+ "input" : json .dumps ({"workspaceID" : os .getenv ("GPTSCRIPT_WORKSPACE_ID" )}),
222+ "datasetTool" : self .opts .DatasetTool ,
268223 "env" : self .opts .Env
269224 }
270225 )
271- return DatasetElementMeta . model_validate_json (res )
226+ return json . loads (res )
272227
273- async def add_dataset_elements (self , workspace_id : str , datasetID : str , elements : List [DatasetElement ]) -> str :
274- if workspace_id == "" :
275- workspace_id = os .environ ["GPTSCRIPT_WORKSPACE_ID" ]
276-
277- if datasetID == "" :
278- raise ValueError ("datasetID cannot be empty" )
279- elif not elements :
228+ async def add_dataset_elements (self , elements : List [DatasetElement ], datasetID : str = "" ) -> str :
229+ if not elements :
280230 raise ValueError ("elements cannot be empty" )
281231
282232 res = await self ._run_basic_command (
283233 "datasets/add-elements" ,
284234 {
285235 "input" : json .dumps ({
236+ "workspaceID" : os .getenv ("GPTSCRIPT_WORKSPACE_ID" ),
286237 "datasetID" : datasetID ,
287238 "elements" : [element .model_dump () for element in elements ],
288239 }),
289- "workspaceID" : workspace_id ,
290- "datasetToolRepo" : self .opts .DatasetToolRepo ,
240+ "datasetTool" : self .opts .DatasetTool ,
291241 "env" : self .opts .Env
292242 }
293243 )
294244 return res
295245
296-
297- async def list_dataset_elements (self , workspace_id : str , datasetID : str ) -> List [DatasetElementMeta ]:
298- if workspace_id == "" :
299- workspace_id = os .environ ["GPTSCRIPT_WORKSPACE_ID" ]
300-
246+ async def list_dataset_elements (self , datasetID : str ) -> List [DatasetElementMeta ]:
301247 if datasetID == "" :
302248 raise ValueError ("datasetID cannot be empty" )
303249
304250 res = await self ._run_basic_command (
305251 "datasets/list-elements" ,
306252 {
307- "input" : json .dumps ({"datasetID" : datasetID }),
308- "workspaceID" : workspace_id ,
309- "datasetToolRepo" : self .opts .DatasetToolRepo ,
253+ "input" : json .dumps ({
254+ "workspaceID" : os .getenv ("GPTSCRIPT_WORKSPACE_ID" ),
255+ "datasetID" : datasetID ,
256+ }),
257+ "datasetTool" : self .opts .DatasetTool ,
310258 "env" : self .opts .Env
311259 }
312260 )
313261 return [DatasetElementMeta .model_validate (d ) for d in json .loads (res )]
314262
315- async def get_dataset_element (self , workspace_id : str , datasetID : str , elementName : str ) -> DatasetElement :
316- if workspace_id == "" :
317- workspace_id = os .environ ["GPTSCRIPT_WORKSPACE_ID" ]
318-
263+ async def get_dataset_element (self , datasetID : str , elementName : str ) -> DatasetElement :
319264 if datasetID == "" :
320265 raise ValueError ("datasetID cannot be empty" )
321266 elif elementName == "" :
@@ -324,9 +269,12 @@ async def get_dataset_element(self, workspace_id: str, datasetID: str, elementNa
324269 res = await self ._run_basic_command (
325270 "datasets/get-element" ,
326271 {
327- "input" : json .dumps ({"datasetID" : datasetID , "element" : elementName }),
328- "workspaceID" : workspace_id ,
329- "datasetToolRepo" : self .opts .DatasetToolRepo ,
272+ "input" : json .dumps ({
273+ "workspaceID" : os .getenv ("GPTSCRIPT_WORKSPACE_ID" ),
274+ "datasetID" : datasetID ,
275+ "name" : elementName ,
276+ }),
277+ "datasetTool" : self .opts .DatasetTool ,
330278 "env" : self .opts .Env ,
331279 }
332280 )
0 commit comments