@@ -3,8 +3,8 @@ package openai
33import (
44 "bytes"
55 "context"
6+ "io"
67 "net/http"
7- "os"
88 "strconv"
99)
1010
@@ -134,31 +134,32 @@ func (c *Client) CreateImage(ctx context.Context, request ImageRequest) (respons
134134
135135// ImageEditRequest represents the request structure for the image API.
136136type ImageEditRequest struct {
137- Image * os. File `json:"image,omitempty"`
138- Mask * os. File `json:"mask,omitempty"`
139- Prompt string `json:"prompt,omitempty"`
140- Model string `json:"model,omitempty"`
141- N int `json:"n,omitempty"`
142- Size string `json:"size,omitempty"`
143- ResponseFormat string `json:"response_format,omitempty"`
144- Quality string `json:"quality,omitempty"`
145- User string `json:"user,omitempty"`
137+ Image io. Reader `json:"image,omitempty"`
138+ Mask io. Reader `json:"mask,omitempty"`
139+ Prompt string `json:"prompt,omitempty"`
140+ Model string `json:"model,omitempty"`
141+ N int `json:"n,omitempty"`
142+ Size string `json:"size,omitempty"`
143+ ResponseFormat string `json:"response_format,omitempty"`
144+ Quality string `json:"quality,omitempty"`
145+ User string `json:"user,omitempty"`
146146}
147147
148148// CreateEditImage - API call to create an image. This is the main endpoint of the DALL-E API.
149149func (c * Client ) CreateEditImage (ctx context.Context , request ImageEditRequest ) (response ImageResponse , err error ) {
150150 body := & bytes.Buffer {}
151151 builder := c .createFormBuilder (body )
152152
153- // image
154- err = builder .CreateFormFile ("image" , request .Image )
153+ // image, filename is not required
154+ err = builder .CreateFormFileReader ("image" , request .Image , "" )
155155 if err != nil {
156156 return
157157 }
158158
159159 // mask, it is optional
160160 if request .Mask != nil {
161- err = builder .CreateFormFile ("mask" , request .Mask )
161+ // mask, filename is not required
162+ err = builder .CreateFormFileReader ("mask" , request .Mask , "" )
162163 if err != nil {
163164 return
164165 }
@@ -206,12 +207,12 @@ func (c *Client) CreateEditImage(ctx context.Context, request ImageEditRequest)
206207
207208// ImageVariRequest represents the request structure for the image API.
208209type ImageVariRequest struct {
209- Image * os. File `json:"image,omitempty"`
210- Model string `json:"model,omitempty"`
211- N int `json:"n,omitempty"`
212- Size string `json:"size,omitempty"`
213- ResponseFormat string `json:"response_format,omitempty"`
214- User string `json:"user,omitempty"`
210+ Image io. Reader `json:"image,omitempty"`
211+ Model string `json:"model,omitempty"`
212+ N int `json:"n,omitempty"`
213+ Size string `json:"size,omitempty"`
214+ ResponseFormat string `json:"response_format,omitempty"`
215+ User string `json:"user,omitempty"`
215216}
216217
217218// 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)
220221 body := & bytes.Buffer {}
221222 builder := c .createFormBuilder (body )
222223
223- // image
224- err = builder .CreateFormFile ("image" , request .Image )
224+ // image, filename is not required
225+ err = builder .CreateFormFileReader ("image" , request .Image , "" )
225226 if err != nil {
226227 return
227228 }
0 commit comments