#Error uploading file: Additional properties are not allowed

1 messages · Page 1 of 1 (latest)

serene needle
#

#community-help
code:
const fs = require("fs");
const OpenAI = require("openai");
require('dotenv').config();
// Initialize OpenAI with your API key
const openai = new OpenAI({
key:Bearer ${process.env.OPENAI_API_KEY}
});

async function main() {
try {
console.log("Upload Started")
if (fs.existsSync("mydata.csv")) {
const fileContent = fs.readFileSync("mydata.csv", "utf-8");

  // Create a file with the file content
  const file = await openai.files.create({
    file: Buffer.from(fileContent, "utf-8"),
    purpose: "fine-tune",
  });

  console.log("File uploaded successfully:", file);
} else {
  console.log("File 'mydata.jsonl' not found.");
}

} catch (error) {
console.error("Error uploading file:", error.message);
}
}

main().catch(console.error);

Output:
Error uploading file: Additional properties are not allowed ('file[0]', 'file[10]', 'file[11]', 'file[12]', 'file[13]', 'file[14]', 'file[15]', 'file[16]', 'file[17]', 'file[18]', 'file[19]', 'file[1]', 'file[20]', 'file[21]', 'file[22]', 'file[23]', 'file[24]', 'file[25]', 'file[26]', 'file[27]', 'file[28]', 'file[29]', 'file[2]', 'file[30]', 'file[31]', 'file[32]', 'file[33]', 'file[34]', 'file[35]', 'file[36]', 'file[37]', 'file[38]', 'file[39]', 'file[3]', 'file[40]', 'file[41]', 'file[42]', 'file[43]', 'file[44]', 'file[45]', 'file[46]', 'file[47]', 'file[48]', 'file[49]', 'file[4]', 'file[5]', 'file[6]', 'file[7]', 'file[8]', 'file[9]' were unexpected)
please somebody help me out

lapis moatBOT
#

Hi @serene needle. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:

#

The error message you're seeing suggests that the file data is not being correctly formatted for the API request. When uploading a file to OpenAI, the file data should be sent as a binary stream, not as a string or a Buffer object.

The OpenAI API expects the file data to be a readable stream, which can be obtained using fs.createReadStream instead of fs.readFileSync. Here's how you can modify your code:

const fs = require("fs");
const OpenAI = require("openai");
require('dotenv').config();

// Initialize OpenAI with your API key
const openai = new OpenAI({
  key:`Bearer ${process.env.OPENAI_API_KEY}`
});

async function main() {
  try {
    console.log("Upload Started")
    if (fs.existsSync("mydata.csv")) {
      const fileStream = fs.createReadStream("mydata.csv");

      // Create a file with the file content
      const file = await openai.files.create({
        file: fileStream,
        purpose: "fine-tune",
      });

      console.log("File uploaded successfully:", file);
    } else {
      console.log("File 'mydata.jsonl' not found.");
    }
  } catch (error) {
    console.error("Error uploading file:", error.message);
  }
}

main().catch(console.error);

This code creates a readable stream from your file and passes it directly to the openai.files.create method. This should resolve the error you're facing.

For more information on how to upload a file for fine-tuning, you can refer to the OpenAI fine-tuning guide (https://platform.openai.com/docs/guides/fine-tuning).

Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:

#

@serene needle kapa.ai is still learning and improving, please let us know how it did by reacting below