add ImageVariRequest/ImageEditRequest.ResponseFormat (#264)
* add ImageEditRequest.ResponseFormat * add ImageEditRequest/ImageVariRequest.ResponseFormat * complete image_test * delete var prompt param --------- Co-authored-by: Aceld <liudanbing@tal.com>
This commit is contained in:
33
image.go
33
image.go
@@ -55,11 +55,12 @@ func (c *Client) CreateImage(ctx context.Context, request ImageRequest) (respons
|
|||||||
|
|
||||||
// ImageEditRequest represents the request structure for the image API.
|
// ImageEditRequest represents the request structure for the image API.
|
||||||
type ImageEditRequest struct {
|
type ImageEditRequest struct {
|
||||||
Image *os.File `json:"image,omitempty"`
|
Image *os.File `json:"image,omitempty"`
|
||||||
Mask *os.File `json:"mask,omitempty"`
|
Mask *os.File `json:"mask,omitempty"`
|
||||||
Prompt string `json:"prompt,omitempty"`
|
Prompt string `json:"prompt,omitempty"`
|
||||||
N int `json:"n,omitempty"`
|
N int `json:"n,omitempty"`
|
||||||
Size string `json:"size,omitempty"`
|
Size string `json:"size,omitempty"`
|
||||||
|
ResponseFormat string `json:"response_format,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateEditImage - API call to create an image. This is the main endpoint of the DALL-E API.
|
// 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)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = builder.writeField("n", strconv.Itoa(request.N))
|
err = builder.writeField("n", strconv.Itoa(request.N))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = builder.writeField("size", request.Size)
|
err = builder.writeField("size", request.Size)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = builder.writeField("response_format", request.ResponseFormat)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
err = builder.close()
|
err = builder.close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
@@ -111,9 +120,10 @@ func (c *Client) CreateEditImage(ctx context.Context, request ImageEditRequest)
|
|||||||
|
|
||||||
// ImageVariRequest represents the request structure for the image API.
|
// ImageVariRequest represents the request structure for the image API.
|
||||||
type ImageVariRequest struct {
|
type ImageVariRequest struct {
|
||||||
Image *os.File `json:"image,omitempty"`
|
Image *os.File `json:"image,omitempty"`
|
||||||
N int `json:"n,omitempty"`
|
N int `json:"n,omitempty"`
|
||||||
Size string `json:"size,omitempty"`
|
Size string `json:"size,omitempty"`
|
||||||
|
ResponseFormat string `json:"response_format,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateVariImage - API call to create an image variation. This is the main endpoint of the DALL-E API.
|
// 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)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = builder.writeField("size", request.Size)
|
err = builder.writeField("size", request.Size)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = builder.writeField("response_format", request.ResponseFormat)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
err = builder.close()
|
err = builder.close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -118,11 +118,12 @@ func TestImageEdit(t *testing.T) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
req := ImageEditRequest{
|
req := ImageEditRequest{
|
||||||
Image: origin,
|
Image: origin,
|
||||||
Mask: mask,
|
Mask: mask,
|
||||||
Prompt: "There is a turtle in the pool",
|
Prompt: "There is a turtle in the pool",
|
||||||
N: 3,
|
N: 3,
|
||||||
Size: CreateImageSize1024x1024,
|
Size: CreateImageSize1024x1024,
|
||||||
|
ResponseFormat: CreateImageResponseFormatURL,
|
||||||
}
|
}
|
||||||
_, err = client.CreateEditImage(ctx, req)
|
_, err = client.CreateEditImage(ctx, req)
|
||||||
checks.NoError(t, err, "CreateImage error")
|
checks.NoError(t, err, "CreateImage error")
|
||||||
@@ -154,10 +155,11 @@ func TestImageEditWithoutMask(t *testing.T) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
req := ImageEditRequest{
|
req := ImageEditRequest{
|
||||||
Image: origin,
|
Image: origin,
|
||||||
Prompt: "There is a turtle in the pool",
|
Prompt: "There is a turtle in the pool",
|
||||||
N: 3,
|
N: 3,
|
||||||
Size: CreateImageSize1024x1024,
|
Size: CreateImageSize1024x1024,
|
||||||
|
ResponseFormat: CreateImageResponseFormatURL,
|
||||||
}
|
}
|
||||||
_, err = client.CreateEditImage(ctx, req)
|
_, err = client.CreateEditImage(ctx, req)
|
||||||
checks.NoError(t, err, "CreateImage error")
|
checks.NoError(t, err, "CreateImage error")
|
||||||
@@ -220,9 +222,10 @@ func TestImageVariation(t *testing.T) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
req := ImageVariRequest{
|
req := ImageVariRequest{
|
||||||
Image: origin,
|
Image: origin,
|
||||||
N: 3,
|
N: 3,
|
||||||
Size: CreateImageSize1024x1024,
|
Size: CreateImageSize1024x1024,
|
||||||
|
ResponseFormat: CreateImageResponseFormatURL,
|
||||||
}
|
}
|
||||||
_, err = client.CreateVariImage(ctx, req)
|
_, err = client.CreateVariImage(ctx, req)
|
||||||
checks.NoError(t, err, "CreateImage error")
|
checks.NoError(t, err, "CreateImage error")
|
||||||
@@ -336,6 +339,10 @@ func TestImageFormBuilderFailures(t *testing.T) {
|
|||||||
_, err = client.CreateEditImage(ctx, req)
|
_, err = client.CreateEditImage(ctx, req)
|
||||||
checks.ErrorIs(t, err, mockFailedErr, "CreateImage should return error if form builder fails")
|
checks.ErrorIs(t, err, mockFailedErr, "CreateImage should return error if form builder fails")
|
||||||
|
|
||||||
|
failForField = "response_format"
|
||||||
|
_, err = client.CreateEditImage(ctx, req)
|
||||||
|
checks.ErrorIs(t, err, mockFailedErr, "CreateImage should return error if form builder fails")
|
||||||
|
|
||||||
failForField = ""
|
failForField = ""
|
||||||
mockBuilder.mockClose = func() error {
|
mockBuilder.mockClose = func() error {
|
||||||
return mockFailedErr
|
return mockFailedErr
|
||||||
@@ -384,6 +391,10 @@ func TestVariImageFormBuilderFailures(t *testing.T) {
|
|||||||
_, err = client.CreateVariImage(ctx, req)
|
_, err = client.CreateVariImage(ctx, req)
|
||||||
checks.ErrorIs(t, err, mockFailedErr, "CreateVariImage should return error if form builder fails")
|
checks.ErrorIs(t, err, mockFailedErr, "CreateVariImage should return error if form builder fails")
|
||||||
|
|
||||||
|
failForField = "response_format"
|
||||||
|
_, err = client.CreateVariImage(ctx, req)
|
||||||
|
checks.ErrorIs(t, err, mockFailedErr, "CreateVariImage should return error if form builder fails")
|
||||||
|
|
||||||
failForField = ""
|
failForField = ""
|
||||||
mockBuilder.mockClose = func() error {
|
mockBuilder.mockClose = func() error {
|
||||||
return mockFailedErr
|
return mockFailedErr
|
||||||
|
|||||||
Reference in New Issue
Block a user