Create an instance of OpenAI
client:
val openAI = OpenAI(apiKey)
ℹ️ OpenAI encourages using environment variables for the API key. Read more.
Use your OpenAI
instance to make API requests.
List and describe the various models available in the API. You can refer to the Models documentation to understand what models are available and the differences between them.
Lists the currently available models, and provides basic information about each one such as the owner and availability.
val models: List<Model> = openAI.models()
Retrieves a model instance, providing basic information about the model such as the owner and permissioning.
val id = ModelId("text-ada-001")
val model: Model = openAI.model(id)
Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position.
Creates a completion for the provided prompt and parameters
val completionRequest = CompletionRequest(
model = ModelId("text-ada-001"),
prompt = "Somebody once told me the world is gonna roll me",
echo = true
)
val completion: TextCompletion = openAI.completion(completionRequest)
// or, as flow
val completions: Flow<TextCompletion> = openAI.completions(completionRequest)
Given a chat conversation, the model will return a chat completion response.
Creates a completion for the chat message.
val chatCompletionRequest = ChatCompletionRequest(
model = ModelId("gpt-3.5-turbo"),
messages = listOf(
ChatMessage(
role = ChatRole.System,
content = "You are a helpful assistant!"
),
ChatMessage(
role = ChatRole.User,
content = "Hello!"
)
)
)
val completion: ChatCompletion = openAI.chatCompletion(chatCompletionRequest)
// or, as flow
val completions: Flow<ChatCompletionChunk> = openAI.chatCompletions(chatCompletionRequest)
Given a prompt and an instruction, the model will return an edited version of the prompt.
Creates a new edit for the provided input, instruction, and parameters.
val edit = openAI.edit(
request = EditsRequest(
model = ModelId("text-davinci-edit-001"),
input = "What day of the wek is it?",
instruction = "Fix the spelling mistakes"
)
)
Given a prompt and/or an input image, the model will generate a new image.
Creates an image given a prompt.
val images = openAI.imageURL( // or openAI.imageJSON
creation = ImageCreation(
prompt = "A cute baby sea otter",
n = 2,
size = ImageSize.is1024x1024
)
)
Creates an edited or extended image given an original image and a prompt.
val images = openAI.imageURL( // or openAI.imageJSON
edit = ImageEdit(
image = FileSource(name = "<filename>", source = imageSource),
mask = FileSource(name = "<filename>", source = maskSource),
prompt = "a sunlit indoor lounge area with a pool containing a flamingo",
n = 1,
size = ImageSize.is1024x1024
)
)
Creates a variation of a given image.
val images = openAI.imageURL( // or openAI.imageJSON
variation = ImageVariation(
image = FileSource(name = "<filename>", source = imageSource),
n = 1,
size = ImageSize.is1024x1024
)
)
Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.
Creates an embedding vector representing the input text.
val embeddings = openAI.embeddings(
request = EmbeddingRequest(
model = ModelId("text-similarity-babbage-001"),
input = listOf("The food was delicious and the waiter...")
)
)
Learn how to turn audio into text.
Transcribes audio into the input language.
val request = TranscriptionRequest(
audio = FileSource(name = "<filename>", source = audioSource),
model = ModelId("whisper-1"),
)
val transcription = openAI.transcription(request)
Translates audio into English.
val request = TranslationRequest(
audio = FileSource(name = "<filename>", source = audioSource),
model = ModelId("whisper-1"),
)
val translation = openAI.translation(request)
Files are used to upload documents that can be used with features like Fine-tuning.
Returns a list of files that belong to the user's organization.
val files = openAI.files()
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.
val file = openAI.file(
request = FileUpload(
file = source,
purpose = Purpose("fine-tune")
)
)
Delete a file.
openAI.delete(fileId)
Returns information about a specific file.
val file = openAI.file(fileId)
Returns the contents of the specified file
val bytes = openAI.download(fileId)
Manage fine-tuning jobs to tailor a model to your specific training data.
Creates a job that fine-tunes a specified model from a given dataset.
Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
val fineTune = openAI.fineTune(
request = FineTuneRequest(
trainingFile = trainingFile,
model = ModelId("ada")
)
)
List your organization's fine-tuning jobs
val fineTunes = openAI.fineTunes()
Gets info about the fine-tune job.
val finetune = openAI.fineTune(fineTune.id)
Immediately cancel a fine-tune job.
val finetune = openAI.cancel(fineTune.id)
Get fine-grained status updates for a fine-tune job.
val fineTuneEvents: List<FineTuneEvent> = openAI.fineTuneEvents(fineTune.id)
// or, as flow
val fineTuneEvents: Flow<FineTuneEvent> = openAI.fineTuneEventsFlow(fineTune.id)
Delete a fine-tuned model. You must have the Owner role in your organization.
openAI.delete(fileId)
Given a input text, outputs if the model classifies it as violating OpenAI's content policy.
Given a input text, outputs if the model classifies it as violating OpenAI's content policy.
val moderation = openAI.moderations(
request = ModerationRequest(
input = "I want to kill them."
)
)