Skip to content

Commit 3a3a70c

Browse files
authored
enhance: use byte slice for dataset element contents (#81)
Signed-off-by: Grant Linville <[email protected]>
1 parent 1fce3cc commit 3a3a70c

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

datasets.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package gptscript
22

33
import (
44
"context"
5+
"encoding/base64"
56
"encoding/json"
67
"fmt"
78
"os"
@@ -14,7 +15,7 @@ type DatasetElementMeta struct {
1415

1516
type DatasetElement struct {
1617
DatasetElementMeta `json:",inline"`
17-
Contents string `json:"contents"`
18+
Contents []byte `json:"contents"`
1819
}
1920

2021
type DatasetMeta struct {
@@ -115,7 +116,7 @@ func (g *GPTScript) CreateDataset(ctx context.Context, workspaceID, name, descri
115116
return dataset, nil
116117
}
117118

118-
func (g *GPTScript) AddDatasetElement(ctx context.Context, workspaceID, datasetID, elementName, elementDescription, elementContent string) (DatasetElementMeta, error) {
119+
func (g *GPTScript) AddDatasetElement(ctx context.Context, workspaceID, datasetID, elementName, elementDescription string, elementContent []byte) (DatasetElementMeta, error) {
119120
if workspaceID == "" {
120121
workspaceID = os.Getenv("GPTSCRIPT_WORKSPACE_ID")
121122
}
@@ -124,7 +125,7 @@ func (g *GPTScript) AddDatasetElement(ctx context.Context, workspaceID, datasetI
124125
DatasetID: datasetID,
125126
ElementName: elementName,
126127
ElementDescription: elementDescription,
127-
ElementContent: elementContent,
128+
ElementContent: base64.StdEncoding.EncodeToString(elementContent),
128129
}
129130
argsJSON, err := json.Marshal(args)
130131
if err != nil {

datasets_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func TestDatasets(t *testing.T) {
2323
require.Equal(t, 0, len(dataset.Elements))
2424

2525
// Add an element
26-
elementMeta, err := g.AddDatasetElement(context.Background(), workspaceID, dataset.ID, "test-element", "This is a test element", "This is the content")
26+
elementMeta, err := g.AddDatasetElement(context.Background(), workspaceID, dataset.ID, "test-element", "This is a test element", []byte("This is the content"))
2727
require.NoError(t, err)
2828
require.Equal(t, "test-element", elementMeta.Name)
2929
require.Equal(t, "This is a test element", elementMeta.Description)
@@ -35,14 +35,14 @@ func TestDatasets(t *testing.T) {
3535
Name: "test-element-2",
3636
Description: "This is a test element 2",
3737
},
38-
Contents: "This is the content 2",
38+
Contents: []byte("This is the content 2"),
3939
},
4040
{
4141
DatasetElementMeta: DatasetElementMeta{
4242
Name: "test-element-3",
4343
Description: "This is a test element 3",
4444
},
45-
Contents: "This is the content 3",
45+
Contents: []byte("This is the content 3"),
4646
},
4747
})
4848
require.NoError(t, err)
@@ -52,14 +52,14 @@ func TestDatasets(t *testing.T) {
5252
require.NoError(t, err)
5353
require.Equal(t, "test-element", element.Name)
5454
require.Equal(t, "This is a test element", element.Description)
55-
require.Equal(t, "This is the content", element.Contents)
55+
require.Equal(t, []byte("This is the content"), element.Contents)
5656

5757
// Get the third element
5858
element, err = g.GetDatasetElement(context.Background(), workspaceID, dataset.ID, "test-element-3")
5959
require.NoError(t, err)
6060
require.Equal(t, "test-element-3", element.Name)
6161
require.Equal(t, "This is a test element 3", element.Description)
62-
require.Equal(t, "This is the content 3", element.Contents)
62+
require.Equal(t, []byte("This is the content 3"), element.Contents)
6363

6464
// List elements in the dataset
6565
elements, err := g.ListDatasetElements(context.Background(), workspaceID, dataset.ID)

0 commit comments

Comments
 (0)