|
7 | 7 | "context" |
8 | 8 | "encoding/base64" |
9 | 9 | "encoding/json" |
10 | | - "errors" |
11 | 10 | "fmt" |
12 | 11 | "io" |
13 | 12 | "log/slog" |
@@ -389,176 +388,6 @@ func (g *GPTScript) DeleteCredential(ctx context.Context, credCtx, name string) |
389 | 388 | return err |
390 | 389 | } |
391 | 390 |
|
392 | | -// Dataset methods |
393 | | - |
394 | | -func (g *GPTScript) ListDatasets(ctx context.Context, workspace string) ([]DatasetMeta, error) { |
395 | | - if workspace == "" { |
396 | | - workspace = os.Getenv("GPTSCRIPT_WORKSPACE_DIR") |
397 | | - } |
398 | | - |
399 | | - out, err := g.runBasicCommand(ctx, "datasets", datasetRequest{ |
400 | | - Input: "{}", |
401 | | - Workspace: workspace, |
402 | | - DatasetToolRepo: g.globalOpts.DatasetToolRepo, |
403 | | - }) |
404 | | - |
405 | | - if err != nil { |
406 | | - return nil, err |
407 | | - } |
408 | | - |
409 | | - if strings.HasPrefix(out, "ERROR:") { |
410 | | - return nil, errors.New(out) |
411 | | - } |
412 | | - |
413 | | - var datasets []DatasetMeta |
414 | | - if err = json.Unmarshal([]byte(out), &datasets); err != nil { |
415 | | - return nil, err |
416 | | - } |
417 | | - return datasets, nil |
418 | | -} |
419 | | - |
420 | | -func (g *GPTScript) CreateDataset(ctx context.Context, workspace, name, description string) (Dataset, error) { |
421 | | - if workspace == "" { |
422 | | - workspace = os.Getenv("GPTSCRIPT_WORKSPACE_DIR") |
423 | | - } |
424 | | - |
425 | | - args := createDatasetArgs{ |
426 | | - Name: name, |
427 | | - Description: description, |
428 | | - } |
429 | | - argsJSON, err := json.Marshal(args) |
430 | | - if err != nil { |
431 | | - return Dataset{}, fmt.Errorf("failed to marshal dataset args: %w", err) |
432 | | - } |
433 | | - |
434 | | - out, err := g.runBasicCommand(ctx, "datasets/create", datasetRequest{ |
435 | | - Input: string(argsJSON), |
436 | | - Workspace: workspace, |
437 | | - DatasetToolRepo: g.globalOpts.DatasetToolRepo, |
438 | | - }) |
439 | | - |
440 | | - if err != nil { |
441 | | - return Dataset{}, err |
442 | | - } |
443 | | - |
444 | | - if strings.HasPrefix(out, "ERROR:") { |
445 | | - return Dataset{}, errors.New(out) |
446 | | - } |
447 | | - |
448 | | - var dataset Dataset |
449 | | - if err = json.Unmarshal([]byte(out), &dataset); err != nil { |
450 | | - return Dataset{}, err |
451 | | - } |
452 | | - return dataset, nil |
453 | | -} |
454 | | - |
455 | | -func (g *GPTScript) AddDatasetElement(ctx context.Context, workspace, datasetID, elementName, elementDescription, elementContent string) (DatasetElementMeta, error) { |
456 | | - if workspace == "" { |
457 | | - workspace = os.Getenv("GPTSCRIPT_WORKSPACE_DIR") |
458 | | - } |
459 | | - |
460 | | - args := addDatasetElementArgs{ |
461 | | - DatasetID: datasetID, |
462 | | - ElementName: elementName, |
463 | | - ElementDescription: elementDescription, |
464 | | - ElementContent: elementContent, |
465 | | - } |
466 | | - argsJSON, err := json.Marshal(args) |
467 | | - if err != nil { |
468 | | - return DatasetElementMeta{}, fmt.Errorf("failed to marshal element args: %w", err) |
469 | | - } |
470 | | - |
471 | | - out, err := g.runBasicCommand(ctx, "datasets/add-element", datasetRequest{ |
472 | | - Input: string(argsJSON), |
473 | | - Workspace: workspace, |
474 | | - DatasetToolRepo: g.globalOpts.DatasetToolRepo, |
475 | | - }) |
476 | | - |
477 | | - if err != nil { |
478 | | - return DatasetElementMeta{}, err |
479 | | - } |
480 | | - |
481 | | - if strings.HasPrefix(out, "ERROR:") { |
482 | | - return DatasetElementMeta{}, errors.New(out) |
483 | | - } |
484 | | - |
485 | | - var element DatasetElementMeta |
486 | | - if err = json.Unmarshal([]byte(out), &element); err != nil { |
487 | | - return DatasetElementMeta{}, err |
488 | | - } |
489 | | - return element, nil |
490 | | -} |
491 | | - |
492 | | -func (g *GPTScript) ListDatasetElements(ctx context.Context, workspace, datasetID string) ([]DatasetElementMeta, error) { |
493 | | - if workspace == "" { |
494 | | - workspace = os.Getenv("GPTSCRIPT_WORKSPACE_DIR") |
495 | | - } |
496 | | - |
497 | | - args := listDatasetElementArgs{ |
498 | | - DatasetID: datasetID, |
499 | | - } |
500 | | - argsJSON, err := json.Marshal(args) |
501 | | - if err != nil { |
502 | | - return nil, fmt.Errorf("failed to marshal element args: %w", err) |
503 | | - } |
504 | | - |
505 | | - out, err := g.runBasicCommand(ctx, "datasets/list-elements", datasetRequest{ |
506 | | - Input: string(argsJSON), |
507 | | - Workspace: workspace, |
508 | | - DatasetToolRepo: g.globalOpts.DatasetToolRepo, |
509 | | - }) |
510 | | - |
511 | | - if err != nil { |
512 | | - return nil, err |
513 | | - } |
514 | | - |
515 | | - if strings.HasPrefix(out, "ERROR:") { |
516 | | - return nil, errors.New(out) |
517 | | - } |
518 | | - |
519 | | - var elements []DatasetElementMeta |
520 | | - if err = json.Unmarshal([]byte(out), &elements); err != nil { |
521 | | - return nil, err |
522 | | - } |
523 | | - return elements, nil |
524 | | -} |
525 | | - |
526 | | -func (g *GPTScript) GetDatasetElement(ctx context.Context, workspace, datasetID, elementName string) (DatasetElement, error) { |
527 | | - if workspace == "" { |
528 | | - workspace = os.Getenv("GPTSCRIPT_WORKSPACE_DIR") |
529 | | - } |
530 | | - |
531 | | - args := getDatasetElementArgs{ |
532 | | - DatasetID: datasetID, |
533 | | - Element: elementName, |
534 | | - } |
535 | | - argsJSON, err := json.Marshal(args) |
536 | | - if err != nil { |
537 | | - return DatasetElement{}, fmt.Errorf("failed to marshal element args: %w", err) |
538 | | - } |
539 | | - |
540 | | - out, err := g.runBasicCommand(ctx, "datasets/get-element", datasetRequest{ |
541 | | - Input: string(argsJSON), |
542 | | - Workspace: workspace, |
543 | | - DatasetToolRepo: g.globalOpts.DatasetToolRepo, |
544 | | - }) |
545 | | - |
546 | | - if err != nil { |
547 | | - return DatasetElement{}, err |
548 | | - } |
549 | | - |
550 | | - if strings.HasPrefix(out, "ERROR:") { |
551 | | - return DatasetElement{}, errors.New(out) |
552 | | - } |
553 | | - |
554 | | - var element DatasetElement |
555 | | - if err = json.Unmarshal([]byte(out), &element); err != nil { |
556 | | - return DatasetElement{}, err |
557 | | - } |
558 | | - |
559 | | - return element, nil |
560 | | -} |
561 | | - |
562 | 391 | func (g *GPTScript) runBasicCommand(ctx context.Context, requestPath string, body any) (string, error) { |
563 | 392 | run := &Run{ |
564 | 393 | url: g.globalOpts.URL, |
|
0 commit comments