Skip to content

TouchMarsSolutions/kotlin-retrofit2-client-openai-api

Repository files navigation

org.openapi.client.kotlin.openai - Kotlin client library for OpenAI API

APIs for sampling from and fine-tuning language models

Overview

This API client was generated by the OpenAPI Generator project. By using the openapi-spec from a remote server, you can easily generate an API client.

  • GroupId: org.openapi.client.kotlin.openai
  • ArtifactId: kotlin-retrofit2-client-openai-api
  • API version: 4.0.0
  • Build package: org.openapitools.codegen.languages.KotlinClientCodegen

Favorite

  • this library is a favorite one of WebFlux lovers
  • kotlin
  • neat and clean code
    • Retrofit2 - OpenFeign style
    • ApiClient is short and clear, without too much code
  • Retrofit2 underneath sits on top of OkHttp4
  • Reactive => kotlin coroutines
    • easily integrate with Spring WebFlux and WebClient
  • only minor changes since code generated from OpenAPI Generator (language kotlin)
  • OpenAI API OpenAPI Spec originally from OpenAI OpenAPI repo

Requires

  • Kotlin 1.8.10
  • Gradle 8.0

Build

gradle build check assemble

Internal Publish

  • if your another project is using this project internally, you want to gradle publishToMavenLocal this project first
gradle publishToMavenLocal

This runs all tests and packages the library.

Features/Implementation Notes

  • Supports JSON inputs/outputs, File inputs, and Form inputs.
  • Supports collection formats for query parameters: csv, tsv, ssv, pipes.
  • Some Kotlin and Java types are fully qualified to avoid conflicts with types defined in OpenAPI definitions.
  • Implementation of ApiClient is intended to reduce method counts, specifically to benefit Android targets.

Documentation for API Endpoints

All URIs are relative to https://api.openai.com/v1

Class Method HTTP request Description
OpenAIApi cancelFineTune POST fine-tunes/{fine_tune_id}/cancel Immediately cancel a fine-tune job.
OpenAIApi createAnswer POST answers Answers the specified question using the provided documents and examples. The endpoint first searches over provided documents or files to find relevant context. The relevant context is combined with the provided examples and question to create the prompt for completion.
OpenAIApi createClassification POST classifications Classifies the specified query using provided examples. The endpoint first searches over the labeled examples to select the ones most relevant for the particular query. Then, the relevant examples are combined with the query to construct a prompt to produce the final label via the completions endpoint. Labeled examples can be provided via an uploaded file, or explicitly listed in the request using the examples parameter for quick tests and small scale use cases.
OpenAIApi createCompletion POST completions Creates a completion for the provided prompt and parameters
OpenAIApi createEdit POST edits Creates a new edit for the provided input, instruction, and parameters
OpenAIApi createEmbedding POST embeddings Creates an embedding vector representing the input text.
OpenAIApi createFile POST 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. Please contact us if you need to increase the storage limit.
OpenAIApi createFineTune POST fine-tunes 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. Learn more about Fine-tuning
OpenAIApi createImage POST images/generations Creates an image given a prompt.
OpenAIApi createImageEdit POST images/edits Creates an edited or extended image given an original image and a prompt.
OpenAIApi createImageVariation POST images/variations Creates a variation of a given image.
OpenAIApi createModeration POST moderations Classifies if text violates OpenAI's Content Policy
OpenAIApi createSearch POST engines/{engine_id}/search The search endpoint computes similarity scores between provided query and documents. Documents can be passed directly to the API if there are no more than 200 of them. To go beyond the 200 document limit, documents can be processed offline and then used for efficient retrieval at query time. When file is set, the search endpoint searches over all the documents in the given file and returns up to the max_rerank number of documents. These documents will be returned along with their search scores. The similarity score is a positive score that usually ranges from 0 to 300 (but can sometimes go higher), where a score above 200 usually means the document is semantically similar to the query.
OpenAIApi deleteFile DELETE files/{file_id} Delete a file.
OpenAIApi deleteModel DELETE models/{model} Delete a fine-tuned model. You must have the Owner role in your organization.
OpenAIApi downloadFile GET files/{file_id}/content Returns the contents of the specified file
OpenAIApi listEngines GET engines Lists the currently available (non-finetuned) models, and provides basic information about each one such as the owner and availability.
OpenAIApi listFiles GET files Returns a list of files that belong to the user's organization.
OpenAIApi listFineTuneEvents GET fine-tunes/{fine_tune_id}/events Get fine-grained status updates for a fine-tune job.
OpenAIApi listFineTunes GET fine-tunes List your organization's fine-tuning jobs
OpenAIApi listModels GET models Lists the currently available models, and provides basic information about each one such as the owner and availability.
OpenAIApi retrieveEngine GET engines/{engine_id} Retrieves a model instance, providing basic information about it such as the owner and availability.
OpenAIApi retrieveFile GET files/{file_id} Returns information about a specific file.
OpenAIApi retrieveFineTune GET fine-tunes/{fine_tune_id} Gets info about the fine-tune job. Learn more about Fine-tuning
OpenAIApi retrieveModel GET models/{model} Retrieves a model instance, providing basic information about the model such as the owner and permissioning.

Documentation for Models

Documentation for Authorization

All endpoints do not require authorization.