mirror of
https://github.com/Mintplex-Labs/anything-llm.git
synced 2024-11-14 10:30:10 +01:00
51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
const fs = require("fs");
|
|
|
|
class OpenAiWhisper {
|
|
constructor({ options }) {
|
|
const { OpenAI: OpenAIApi } = require("openai");
|
|
if (!options.openAiKey) throw new Error("No OpenAI API key was set.");
|
|
|
|
this.openai = new OpenAIApi({
|
|
apiKey: options.openAiKey,
|
|
});
|
|
this.model = "whisper-1";
|
|
this.temperature = 0;
|
|
this.#log("Initialized.");
|
|
}
|
|
|
|
#log(text, ...args) {
|
|
console.log(`\x1b[32m[OpenAiWhisper]\x1b[0m ${text}`, ...args);
|
|
}
|
|
|
|
async processFile(fullFilePath) {
|
|
return await this.openai.audio.transcriptions
|
|
.create({
|
|
file: fs.createReadStream(fullFilePath),
|
|
model: this.model,
|
|
response_format: "text",
|
|
temperature: this.temperature,
|
|
})
|
|
.then((response) => {
|
|
if (!response) {
|
|
return {
|
|
content: "",
|
|
error: "No content was able to be transcribed.",
|
|
};
|
|
}
|
|
|
|
return { content: response, error: null };
|
|
})
|
|
.catch((error) => {
|
|
this.#log(
|
|
`Could not get any response from openai whisper`,
|
|
error.message
|
|
);
|
|
return { content: "", error: error.message };
|
|
});
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
OpenAiWhisper,
|
|
};
|