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
    • createEdit

      public Edit createEdit(CreateEditRequest request)
      text-davinci-edit-001, code-davinci-edit-001
      Parameters:
      request - create edit request
      Returns:
      edit
    • 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(String filepath, String purpose)
    • deleteFile

      public DeleteResponse deleteFile(String fileId)
    • retrieveFile

      public File retrieveFile(String fileId)
    • retrieveFileContent

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

      public FineTune createFineTune(CreateFineTuneRequest request)
    • listFineTunes

      public List<FineTune> listFineTunes()
    • retrieveFineTune

      public FineTune retrieveFineTune(String fineTuneId)
    • cancelFineTune

      public FineTune cancelFineTune(String fineTuneId)
    • listFineTuneEvents

      public List<FineTuneEvent> listFineTuneEvents(String fineTuneId)
    • deleteFineTune

      public DeleteResponse deleteFineTune(String model, String fineTuneId)
    • createModeration

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