update image api *os.File to io.Reader (#994)

* update image api *os.File to io.Reader

* update code style

* add reader test

* supplementary reader test

* update the reader in the form builder test

* add commnet

* update comment

* update code style
This commit is contained in:
Axb12
2025-05-20 21:45:40 +08:00
committed by GitHub
parent 4d2e7ab29d
commit 8c65b35c57
4 changed files with 88 additions and 27 deletions

View File

@@ -3,8 +3,8 @@ package openai
import (
"bytes"
"context"
"io"
"net/http"
"os"
"strconv"
)
@@ -134,15 +134,15 @@ func (c *Client) CreateImage(ctx context.Context, request ImageRequest) (respons
// ImageEditRequest represents the request structure for the image API.
type ImageEditRequest struct {
Image *os.File `json:"image,omitempty"`
Mask *os.File `json:"mask,omitempty"`
Prompt string `json:"prompt,omitempty"`
Model string `json:"model,omitempty"`
N int `json:"n,omitempty"`
Size string `json:"size,omitempty"`
ResponseFormat string `json:"response_format,omitempty"`
Quality string `json:"quality,omitempty"`
User string `json:"user,omitempty"`
Image io.Reader `json:"image,omitempty"`
Mask io.Reader `json:"mask,omitempty"`
Prompt string `json:"prompt,omitempty"`
Model string `json:"model,omitempty"`
N int `json:"n,omitempty"`
Size string `json:"size,omitempty"`
ResponseFormat string `json:"response_format,omitempty"`
Quality string `json:"quality,omitempty"`
User string `json:"user,omitempty"`
}
// CreateEditImage - API call to create an image. This is the main endpoint of the DALL-E API.
@@ -150,15 +150,16 @@ func (c *Client) CreateEditImage(ctx context.Context, request ImageEditRequest)
body := &bytes.Buffer{}
builder := c.createFormBuilder(body)
// image
err = builder.CreateFormFile("image", request.Image)
// image, filename is not required
err = builder.CreateFormFileReader("image", request.Image, "")
if err != nil {
return
}
// mask, it is optional
if request.Mask != nil {
err = builder.CreateFormFile("mask", request.Mask)
// mask, filename is not required
err = builder.CreateFormFileReader("mask", request.Mask, "")
if err != nil {
return
}
@@ -206,12 +207,12 @@ func (c *Client) CreateEditImage(ctx context.Context, request ImageEditRequest)
// ImageVariRequest represents the request structure for the image API.
type ImageVariRequest struct {
Image *os.File `json:"image,omitempty"`
Model string `json:"model,omitempty"`
N int `json:"n,omitempty"`
Size string `json:"size,omitempty"`
ResponseFormat string `json:"response_format,omitempty"`
User string `json:"user,omitempty"`
Image io.Reader `json:"image,omitempty"`
Model string `json:"model,omitempty"`
N int `json:"n,omitempty"`
Size string `json:"size,omitempty"`
ResponseFormat string `json:"response_format,omitempty"`
User string `json:"user,omitempty"`
}
// CreateVariImage - API call to create an image variation. This is the main endpoint of the DALL-E API.
@@ -220,8 +221,8 @@ func (c *Client) CreateVariImage(ctx context.Context, request ImageVariRequest)
body := &bytes.Buffer{}
builder := c.createFormBuilder(body)
// image
err = builder.CreateFormFile("image", request.Image)
// image, filename is not required
err = builder.CreateFormFileReader("image", request.Image, "")
if err != nil {
return
}