@@ -3,8 +3,8 @@ package openai
3
3
import (
4
4
"bytes"
5
5
"context"
6
+ "io"
6
7
"net/http"
7
- "os"
8
8
"strconv"
9
9
)
10
10
@@ -134,31 +134,32 @@ func (c *Client) CreateImage(ctx context.Context, request ImageRequest) (respons
134
134
135
135
// ImageEditRequest represents the request structure for the image API.
136
136
type 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"`
146
146
}
147
147
148
148
// CreateEditImage - API call to create an image. This is the main endpoint of the DALL-E API.
149
149
func (c * Client ) CreateEditImage (ctx context.Context , request ImageEditRequest ) (response ImageResponse , err error ) {
150
150
body := & bytes.Buffer {}
151
151
builder := c .createFormBuilder (body )
152
152
153
- // image
154
- err = builder .CreateFormFile ("image" , request .Image )
153
+ // image, filename is not required
154
+ err = builder .CreateFormFileReader ("image" , request .Image , "" )
155
155
if err != nil {
156
156
return
157
157
}
158
158
159
159
// mask, it is optional
160
160
if request .Mask != nil {
161
- err = builder .CreateFormFile ("mask" , request .Mask )
161
+ // mask, filename is not required
162
+ err = builder .CreateFormFileReader ("mask" , request .Mask , "" )
162
163
if err != nil {
163
164
return
164
165
}
@@ -206,12 +207,12 @@ func (c *Client) CreateEditImage(ctx context.Context, request ImageEditRequest)
206
207
207
208
// ImageVariRequest represents the request structure for the image API.
208
209
type 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"`
215
216
}
216
217
217
218
// 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)
220
221
body := & bytes.Buffer {}
221
222
builder := c .createFormBuilder (body )
222
223
223
- // image
224
- err = builder .CreateFormFile ("image" , request .Image )
224
+ // image, filename is not required
225
+ err = builder .CreateFormFileReader ("image" , request .Image , "" )
225
226
if err != nil {
226
227
return
227
228
}
0 commit comments