Skip to content

Commit 3b10c03

Browse files
aceldAceld
andauthored
add ImageVariRequest/ImageEditRequest.ResponseFormat (sashabaranov#264)
* add ImageEditRequest.ResponseFormat * add ImageEditRequest/ImageVariRequest.ResponseFormat * complete image_test * delete var prompt param --------- Co-authored-by: Aceld <liudanbing@tal.com>
1 parent 061c97e commit 3b10c03

File tree

2 files changed

+48
-20
lines changed

2 files changed

+48
-20
lines changed

image.go

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,12 @@ func (c *Client) CreateImage(ctx context.Context, request ImageRequest) (respons
5555

5656
// ImageEditRequest represents the request structure for the image API.
5757
type ImageEditRequest struct {
58-
Image *os.File `json:"image,omitempty"`
59-
Mask *os.File `json:"mask,omitempty"`
60-
Prompt string `json:"prompt,omitempty"`
61-
N int `json:"n,omitempty"`
62-
Size string `json:"size,omitempty"`
58+
Image *os.File `json:"image,omitempty"`
59+
Mask *os.File `json:"mask,omitempty"`
60+
Prompt string `json:"prompt,omitempty"`
61+
N int `json:"n,omitempty"`
62+
Size string `json:"size,omitempty"`
63+
ResponseFormat string `json:"response_format,omitempty"`
6364
}
6465

6566
// CreateEditImage - API call to create an image. This is the main endpoint of the DALL-E API.
@@ -85,14 +86,22 @@ func (c *Client) CreateEditImage(ctx context.Context, request ImageEditRequest)
8586
if err != nil {
8687
return
8788
}
89+
8890
err = builder.writeField("n", strconv.Itoa(request.N))
8991
if err != nil {
9092
return
9193
}
94+
9295
err = builder.writeField("size", request.Size)
9396
if err != nil {
9497
return
9598
}
99+
100+
err = builder.writeField("response_format", request.ResponseFormat)
101+
if err != nil {
102+
return
103+
}
104+
96105
err = builder.close()
97106
if err != nil {
98107
return
@@ -111,9 +120,10 @@ func (c *Client) CreateEditImage(ctx context.Context, request ImageEditRequest)
111120

112121
// ImageVariRequest represents the request structure for the image API.
113122
type ImageVariRequest struct {
114-
Image *os.File `json:"image,omitempty"`
115-
N int `json:"n,omitempty"`
116-
Size string `json:"size,omitempty"`
123+
Image *os.File `json:"image,omitempty"`
124+
N int `json:"n,omitempty"`
125+
Size string `json:"size,omitempty"`
126+
ResponseFormat string `json:"response_format,omitempty"`
117127
}
118128

119129
// CreateVariImage - API call to create an image variation. This is the main endpoint of the DALL-E API.
@@ -132,10 +142,17 @@ func (c *Client) CreateVariImage(ctx context.Context, request ImageVariRequest)
132142
if err != nil {
133143
return
134144
}
145+
135146
err = builder.writeField("size", request.Size)
136147
if err != nil {
137148
return
138149
}
150+
151+
err = builder.writeField("response_format", request.ResponseFormat)
152+
if err != nil {
153+
return
154+
}
155+
139156
err = builder.close()
140157
if err != nil {
141158
return

image_test.go

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,12 @@ func TestImageEdit(t *testing.T) {
118118
}()
119119

120120
req := ImageEditRequest{
121-
Image: origin,
122-
Mask: mask,
123-
Prompt: "There is a turtle in the pool",
124-
N: 3,
125-
Size: CreateImageSize1024x1024,
121+
Image: origin,
122+
Mask: mask,
123+
Prompt: "There is a turtle in the pool",
124+
N: 3,
125+
Size: CreateImageSize1024x1024,
126+
ResponseFormat: CreateImageResponseFormatURL,
126127
}
127128
_, err = client.CreateEditImage(ctx, req)
128129
checks.NoError(t, err, "CreateImage error")
@@ -154,10 +155,11 @@ func TestImageEditWithoutMask(t *testing.T) {
154155
}()
155156

156157
req := ImageEditRequest{
157-
Image: origin,
158-
Prompt: "There is a turtle in the pool",
159-
N: 3,
160-
Size: CreateImageSize1024x1024,
158+
Image: origin,
159+
Prompt: "There is a turtle in the pool",
160+
N: 3,
161+
Size: CreateImageSize1024x1024,
162+
ResponseFormat: CreateImageResponseFormatURL,
161163
}
162164
_, err = client.CreateEditImage(ctx, req)
163165
checks.NoError(t, err, "CreateImage error")
@@ -220,9 +222,10 @@ func TestImageVariation(t *testing.T) {
220222
}()
221223

222224
req := ImageVariRequest{
223-
Image: origin,
224-
N: 3,
225-
Size: CreateImageSize1024x1024,
225+
Image: origin,
226+
N: 3,
227+
Size: CreateImageSize1024x1024,
228+
ResponseFormat: CreateImageResponseFormatURL,
226229
}
227230
_, err = client.CreateVariImage(ctx, req)
228231
checks.NoError(t, err, "CreateImage error")
@@ -336,6 +339,10 @@ func TestImageFormBuilderFailures(t *testing.T) {
336339
_, err = client.CreateEditImage(ctx, req)
337340
checks.ErrorIs(t, err, mockFailedErr, "CreateImage should return error if form builder fails")
338341

342+
failForField = "response_format"
343+
_, err = client.CreateEditImage(ctx, req)
344+
checks.ErrorIs(t, err, mockFailedErr, "CreateImage should return error if form builder fails")
345+
339346
failForField = ""
340347
mockBuilder.mockClose = func() error {
341348
return mockFailedErr
@@ -384,6 +391,10 @@ func TestVariImageFormBuilderFailures(t *testing.T) {
384391
_, err = client.CreateVariImage(ctx, req)
385392
checks.ErrorIs(t, err, mockFailedErr, "CreateVariImage should return error if form builder fails")
386393

394+
failForField = "response_format"
395+
_, err = client.CreateVariImage(ctx, req)
396+
checks.ErrorIs(t, err, mockFailedErr, "CreateVariImage should return error if form builder fails")
397+
387398
failForField = ""
388399
mockBuilder.mockClose = func() error {
389400
return mockFailedErr

0 commit comments

Comments
 (0)