HOW TO USE THE OPEN AI API IN VANILLA JAVASCRIPT
Open AI has gained popularity in the last year with the launch of Chat GPT which has made the advanced capabilities of AI accessible to anyone using their enhanced language models. The team at Open AI has developed a restful API that can be used to access the various services they have available which is accessible at https://platform.openai.com/docs/api-reference.
We decided to develop a client-side Javascript library in Vanilla JS to access the API in order for developers to be able to quickly familiarize themselves with the API. The library is accessible on GitHub at https://github.com/IsaacSichangi/OPen-AI-JavaScript-SDK.
Getting Started
Works with Javascript ES6 syntax
Ensure that you have generated your API KEY from Open AI and kindly note client-side Javascript does not support loading values from environment variables.
Installation
Add the Open Ai library to your site.
<script src="https://cdn.jsdelivr.net/gh/IsaacSichangi/OPen-AI-JavaScript-SDK@master/js/openai.js"></script>
Initialization
let openAi = new Openai("API KEY");
Models
All models are static and can be accessed using the open Ai object.
openAi.GPT_4;
openAi.GPT_4_03014;
openAi.GPT_4_32K;
openAi.GPT_4_32K_0314;
openAi.GPT_3_5_TURBO;
openAi.GPT_3_5_TURBO_0301;
///v1/completions
openAi.TEXT_DAVINCI_003;
openAi.TEXT_DAVICNCI_002;
openAi.TEXT_DAVINCI_001;
openAi.TEXT_CURIE_001;
openAi.TEXT_CABBAGE_001;
openAi.TEXT_ADA_001;
///v1/edits
openAi.TEXT_DAVINCI_EDIT_001;
openAi.CODE_DAVINCI_EDIT_001;
///v1/fine-tunes
openAi.DAVINCI;
openAi.CURIE;
openAi.BABBAGE;
openAi.ADA;
///v1/embeddings
openAi.TEXT_EMBEDDING_ADA_002;
openAi.TEXT_SEARCH_ADA_DOC_001;
///v1/moderations
openAi.TEXT_MODERATION_STABLE;
openAi.TEXT_MODERATION_LATEST;
/**
/v1/audio/transcriptions
/v1/audio/translations*
*/
openAi.WHISPER_1;
List Models
Lists the currently available models, and provides basic information about each one such as the owner and availability. https://platform.openai.com/docs/api-reference/models/list
openAi.listModels().then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Retrieve Model
Retrieves a model instance, providing basic information about the model such as the owner and permissions. https://platform.openai.com/docs/api-reference/models/retrieve
openAi.retrieveModel(MODELNAME).then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Create Completion
Creates a completion for the chat message. https://platform.openai.com/docs/api-reference/chat
openAi.createChatCompletion(model, messages, temperature = 1, top_p = 1, n = 1, stream = false, stop = null, max_tokens = null, presence_penalty = 0, frequency_penalty = 0, logit_bias = null, user = null)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Create Edit
Creates a new edit for the provided input, instruction, and parameters. https://platform.openai.com/docs/api-reference/edits
openAi.createEdit(model, input, instruction, n = 1, temperature = 1, top_p = 1)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Create Image
Creates an image given a prompt. https://platform.openai.com/docs/api-reference/images/create
openAi.createImage(prompt, n = 1, size = "1024x1024", response_format = "url", user = null)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Create Image Edit
Creates an edited or extended image given an original image and a prompt. https://platform.openai.com/docs/api-reference/images/create-edit
openAi.createImageEdit(image, mask = null, prompt, n = 1, size = "1024x1024", response_format = "url", user = null)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Create Image Variation
Creates a variation of a given image. https://platform.openai.com/docs/api-reference/images/create-variation
openAi.createImageVariation(image, n = 1, size = "1024x1024", response_format = "url", user = null)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Create Embeddings
Creates an embedding vector representing the input text. https://platform.openai.com/docs/api-reference/embeddings
openAi.createEmbeddings(model,input, user = null)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Create Transcription
Transcribes audio into the input language. https://platform.openai.com/docs/api-reference/audio
openAi.createTranscription(file, model = Openai.WHISPER_1, prompt = null, response_format = "json", temperature = 0, language = null)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Create Translation
Translates audio into English. https://platform.openai.com/docs/api-reference/audio/create
openAi.createTranlsation (file, model = Openai.WHISPER_1, prompt = null, response_format = "json", temperature = 0)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
List Files
Returns a list of files that belong to the user’s organization. https://platform.openai.com/docs/api-reference/files/list
openAi.listFiles()
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Upload File
Upload a file that contains document(s) to be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please contact us if you need to increase the storage limit. https://platform.openai.com/docs/api-reference/files/upload
openAi.uploadFile(file, purpose)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Delete File
Delete a file. https://platform.openai.com/docs/api-reference/files/delete
openAi.deleteFile(file_id)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Retrieve File
Returns information about a specific file. https://platform.openai.com/docs/api-reference/files/retrieve
openAi.retrieveFile(file_id)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Retrieve File Content
Returns the contents of the specified file https://platform.openai.com/docs/api-reference/files/retrieve-content
openAi.retrieveFileContent(file_id)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Create Fine Tune
Creates a job that fine-tunes a specified model from a given dataset. The response includes details of the enqueued job including job status and the name of the fine-tuned models once complete. https://platform.openai.com/docs/api-reference/fine-tunes/create
openAi.createFineTune(training_file, validation_file = null, model = Openai.CURIE, n_epochs = 4, batch_size = null, learning_rate_multiplier = null, prompt_loss_weight = 0.01, compute_classification_metrics = null, classification_n_classes = null, classification_positive_class = null, classification_betas = null, suffix = null)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
List Fine Tunes
List your organization’s fine-tuning jobs https://platform.openai.com/docs/api-reference/fine-tunes/list
openAi.listFineTunes()
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Retrieve Fine Tune
Gets info about the fine-tune job. https://platform.openai.com/docs/api-reference/fine-tunes/retrieve
openAi.retrieveFineTune(fine_tune_id)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Cancel Fine Tune
Immediately cancel a fine-tune job. https://platform.openai.com/docs/api-reference/fine-tunes/cancel
openAi.cancelFineTune(fine_tune_id)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
List Fine Tune Events
Get fine-grained status updates for a fine-tune job. https://platform.openai.com/docs/api-reference/fine-tunes/events
openAi.listFineTuneEvents(fine_tune_id, stream = false)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Delete Fine Tune Model
Delete a fine-tuned model. You must have the Owner role in your organization. https://platform.openai.com/docs/api-reference/fine-tunes/delete-model
openAi.deleteFineTunemodel(model)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});
Create Moderation
Classifies if text violates OpenAI’s Content Policy. https://platform.openai.com/docs/api-reference/moderations/create
openAi.createModeration(input, model = null)
.then(function (value) {
//returns json
console.log(value);
}, function (error) {
});