The code below returns a Response error indicating it cannot find expected “file” parameter.
dim Response as String
dim Connect as new URLConnection
Connect.RequestHeader(“Authorization”) = "Bearer " + APIKey
Connect.RequestHeader(“Content-Type”) = “multipart/form-data”
Connect.SetRequestContent(“purpose=fine-tune&file=”+Data, “application/x-www-form-urlencoded”)
Response = Connect.SendSync(“POST”, “https://api.openai.com/v1/files”, 30)
Any suggestion on how to implement this API command in Xojo?
To POST a file upload you will need to generate a multipart/form-data encoded payload containing the file data, but your code is actually generating a application/x-www-form-urlencoded payload.
Dim f as FolderItem = GetOpenFolderItem("*.*") ' the file to upload
Dim connect as New URLConnection()
connect.RequestHeader(“Authorization”) = "Bearer " + APIKey
Dim multipartContent as MultipartFormDataContent = new MultipartFormDataContent()
multipartContent.Add("purpose", "fine-tune")
multipartContent.Add("file", f)
multipartContent.SetURLConnectionMultipartContent(connect)
Dim response as String = connect.SendSync("POST", "https://api.openai.com/v1/files")
OpenAI.APIKey = "YOUR API KEY"
Dim f as FolderItem = GetOpenFolderItem("*.*") ' the file to upload
Dim file As OpenAI.File = OpenAI.File.Create(f, "fine-tune") ' upload