Class OpenAiService

java.lang.Object
xyz.felh.openai.OpenAiService

public class OpenAiService extends Object
OpenAi Service Class
  • Constructor Details

    • OpenAiService

      public OpenAiService(String token)
      Creates a new OpenAiService that wraps OpenAiApi
      Parameters:
      token - OpenAi token string "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    • OpenAiService

      public OpenAiService(String token, Duration timeout)
      Creates a new OpenAiService that wraps OpenAiApi
      Parameters:
      token - OpenAi token string "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
      timeout - http read timeout, Duration.ZERO means no timeout
    • OpenAiService

      public OpenAiService(OpenAiApi api, okhttp3.OkHttpClient client)
      Creates a new OpenAiService that wraps OpenAiApi. Use this if you need more customization.
      Parameters:
      api - OpenAiApi instance to use for all methods
  • Method Details

    • execute

      public static <T> T execute(io.reactivex.rxjava3.core.Single<T> apiCall)
      Calls the Open AI api, returns the response, and parses error messages if the request fails
    • buildApi

      public static OpenAiApi buildApi(String token, Duration timeout)
    • defaultObjectMapper

      public static com.fasterxml.jackson.databind.ObjectMapper defaultObjectMapper()
    • defaultClient

      public static okhttp3.OkHttpClient defaultClient(String token, Duration timeout)
    • defaultClient

      public static okhttp3.OkHttpClient defaultClient(String token, String orgId, Duration timeout)
    • defaultRetrofit

      public static retrofit2.Retrofit defaultRetrofit(okhttp3.OkHttpClient client, com.fasterxml.jackson.databind.ObjectMapper mapper)
    • listModels

      public List<Model> listModels()
    • getModel

      public Model getModel(String modelId)
    • createCompletion

      public Completion createCompletion(CreateCompletionRequest request)
      text-davinci-003, text-davinci-002, text-curie-001, text-babbage-001, text-ada-001, davinci, curie, babbage, ada
      Parameters:
      request - create completion request
      Returns:
      completion
    • createChatCompletion

      public ChatCompletion createChatCompletion(CreateChatCompletionRequest request)
      gpt-4, gpt-4-0314, gpt-4-32k, gpt-4-32k-0314, gpt-3.5-turbo, gpt-3.5-turbo-0301
      Parameters:
      request - create chat completion request
      Returns:
      chat completion
    • createSteamChatCompletion

      public void createSteamChatCompletion(String requestId, CreateChatCompletionRequest request, @NonNull @NonNull StreamChatCompletionListener listener)
      create chat completion by stream
      Parameters:
      requestId - request ID, every observer is unique
      request - detail of request
      listener - StreamChatCompletionListener
    • createImage

      public ImageResponse createImage(CreateImageRequest request)
    • createImageEdit

      public ImageResponse createImageEdit(CreateImageEditRequest request)
    • createImageVariation

      public ImageResponse createImageVariation(CreateImageVariationRequest request)
    • createEmbeddings

      public CreateEmbeddingResponse createEmbeddings(CreateEmbeddingRequest request)
      text-embedding-ada-002, text-search-ada-doc-001
      Parameters:
      request - create Embedding request
      Returns:
      create embedding response
    • createAudioTranscription

      public AudioResponse createAudioTranscription(CreateAudioTranscriptionRequest request)
      whisper-1

      TODO only support mp3 so far

      Parameters:
      request - create audio transcription request
      Returns:
      audio response
    • createAudioTranslation

      public AudioResponse createAudioTranslation(CreateAudioTranslationRequest request)
      whisper-1

      TODO only support mp3 so far

      Parameters:
      request - create audio traslation request
      Returns:
      audio
    • listFiles

      public List<File> listFiles()
    • uploadFile

      public File uploadFile(File file, String purpose)
    • uploadFile

      public File uploadFile(String filepath, String purpose)
    • deleteFile

      public DeleteResponse deleteFile(String fileId)
    • retrieveFile

      public File retrieveFile(String fileId)
    • retrieveFileContent

      public String retrieveFileContent(String fileId)
      Parameters:
      fileId - file id
      Returns:
      file content
    • createModeration

      public CreateModerationResponse createModeration(CreateModerationRequest request)
      text-moderation-stable, text-moderation-latest
      Parameters:
      request - create moderation request
      Returns:
      moderation response
    • createFineTuningJob

      public FineTuningJob createFineTuningJob(CreateFineTuningJobRequest request)
      Creates a job that fine-tunes a specified model from a given dataset.
      Parameters:
      request - CreateFineTuningJobRequest
      Returns:
      A fine-tuning.job object.
    • retrieveFineTuningJob

      public FineTuningJob retrieveFineTuningJob(String fineTuningJobId)
      Get info about a fine-tuning job.
      Parameters:
      fineTuningJobId - fineTuningJobId
      Returns:
      The fine-tuning object with the given ID.
    • cancelFineTuningJob

      public FineTuningJob cancelFineTuningJob(String fineTuningJobId)
      Immediately cancel a fine-tune job.
      Parameters:
      fineTuningJobId - fineTuningJobId
      Returns:
      The cancelled fine-tuning object.
    • listFineTuningEvents

      public List<FineTuningJobEvent> listFineTuningEvents(String fineTuningJobId, String after, Integer limit)
      Get status updates for a fine-tuning job.
      Parameters:
      fineTuningJobId - fineTuningJobId
      after - Identifier for the last event from the previous pagination request.
      limit - Number of events to retrieve.
      Returns:
      A list of fine-tuning event objects.