-
Notifications
You must be signed in to change notification settings - Fork 239
Open
Description
I tried to upload file with this code (without expires_after work fine)
params := openai.FileNewParams{
File: file,
Purpose: openai.FilePurposeUserData,
ExpiresAfter: openai.FileNewParamsExpiresAfter{
Seconds: 30 * 24 * 60 * 60,
},
}
resp, err := c.client.Files.New(ctx, params)
if err != nil {
return "", fmt.Errorf("failed to upload file: %w", err)
}and get response error
POST "https://api.openai.com/v1/files": 400 Bad Request {
"message": "Additional properties are not allowed ('expires_after.anchor', 'expires_after.seconds' were unexpected)",
"type": "invalid_request_error",
"param": null,
"code": null
}
when I checked request details - it generate incorrect filed names (with "dot" separator), in this case
--01449e9d2956d26392006c36e9125275b6586a22f7b1526a0938c250049f
Content-Disposition: form-data; name="expires_after.anchor"
--01449e9d2956d26392006c36e9125275b6586a22f7b1526a0938c250049f
Content-Disposition: form-data; name="expires_after.seconds"
2592000
--01449e9d2956d26392006c36e9125275b6586a22f7b1526a0938c250049f
Then I checked examples, and with CURL mentioned a bit different syntax of this fields definition, so as a workaround I defined them with additional props which is worked out
params := openai.FileNewParams{
File: file,
Purpose: openai.FilePurposeUserData,
}
params.SetExtraFields(
map[string]any{
"expires_after[anchor]": "created_at",
"expires_after[seconds]": "2592000", // as string, IMPORTANT!
},
)and now request contain it like this and request worked as expected
--96d8b9f94995f530482d1e8884f5b46ac8dd93dbd8588fc76eeefd8c51cb
Content-Disposition: form-data; name="expires_after[anchor]"
created_at
--96d8b9f94995f530482d1e8884f5b46ac8dd93dbd8588fc76eeefd8c51cb
Content-Disposition: form-data; name="expires_after[seconds]"
2592000
--96d8b9f94995f530482d1e8884f5b46ac8dd93dbd8588fc76eeefd8c51cb--
Metadata
Metadata
Assignees
Labels
No labels