Interface OpenAiRestApi
@Path("")
@Consumes("application/json")
@Produces("application/json")
@RegisterProvider(OpenAiRestApi.OpenAiRestApiJacksonReader.class) @RegisterProvider(OpenAiRestApi.OpenAiRestApiJacksonWriter.class) @RegisterProvider(OpenAiRestApi.OpenAiRestApiReaderInterceptor.class) @RegisterProvider(OpenAiRestApi.OpenAiRestApiWriterInterceptor.class)
public interface OpenAiRestApi
This Microprofile REST client is used as the building block of all the API calls to OpenAI.
The implementation is provided by the Reactive REST Client in Quarkus.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic class
static class
Ensures that the terminal event sent by OpenAI is not processed (as it is not a valid json event)static class
static class
Introduce a custom logger as the stock one logs at the DEBUG level by default...static class
static class
static class
static class
This method validates that the response is not empty, which happens when the API returns an error objectstatic class
The point of this is to properly set thestream
value of the request so users don't have to remember to set it manually -
Method Summary
Modifier and TypeMethodDescriptiondev.langchain4j.model.openai.internal.chat.ChatCompletionResponse
blockingChatCompletion
(dev.langchain4j.model.openai.internal.chat.ChatCompletionRequest request, OpenAiRestApi.ApiMetadata input) Perform a blocking request for a chat completion responsedev.langchain4j.model.openai.internal.completion.CompletionResponse
blockingCompletion
(dev.langchain4j.model.openai.internal.completion.CompletionRequest request, OpenAiRestApi.ApiMetadata input) Perform a blocking request for a completion responsedev.langchain4j.model.openai.internal.embedding.EmbeddingResponse
blockingEmbedding
(dev.langchain4j.model.openai.internal.embedding.EmbeddingRequest request, OpenAiRestApi.ApiMetadata input) Perform a blocking request to get the embeddings of an input textdev.langchain4j.model.openai.internal.image.GenerateImagesResponse
blockingImagesGenerations
(dev.langchain4j.model.openai.internal.image.GenerateImagesRequest request, OpenAiRestApi.ApiMetadata input) dev.langchain4j.model.openai.internal.moderation.ModerationResponse
blockingModeration
(dev.langchain4j.model.openai.internal.moderation.ModerationRequest request, OpenAiRestApi.ApiMetadata input) Perform a blocking request to get a moderated version of an input textio.smallrye.mutiny.Uni
<dev.langchain4j.model.openai.internal.completion.CompletionResponse> completion
(dev.langchain4j.model.openai.internal.completion.CompletionRequest request, OpenAiRestApi.ApiMetadata input) Perform a non-blocking request for a completion responseio.smallrye.mutiny.Uni
<dev.langchain4j.model.openai.internal.chat.ChatCompletionResponse> createChatCompletion
(dev.langchain4j.model.openai.internal.chat.ChatCompletionRequest request, OpenAiRestApi.ApiMetadata input) Perform a non-blocking request for a chat completion responseio.smallrye.mutiny.Uni
<dev.langchain4j.model.openai.internal.embedding.EmbeddingResponse> embedding
(dev.langchain4j.model.openai.internal.embedding.EmbeddingRequest request, OpenAiRestApi.ApiMetadata input) Perform a non-blocking request to get the embeddings of an input textio.smallrye.mutiny.Uni
<dev.langchain4j.model.openai.internal.image.GenerateImagesResponse> imagesGenerations
(dev.langchain4j.model.openai.internal.image.GenerateImagesRequest request, OpenAiRestApi.ApiMetadata input) io.smallrye.mutiny.Uni
<dev.langchain4j.model.openai.internal.moderation.ModerationResponse> moderation
(dev.langchain4j.model.openai.internal.moderation.ModerationRequest request, OpenAiRestApi.ApiMetadata input) Perform a non-blocking request to get a moderated version of an input textio.smallrye.mutiny.Multi
<dev.langchain4j.model.openai.internal.chat.ChatCompletionResponse> streamingChatCompletion
(dev.langchain4j.model.openai.internal.chat.ChatCompletionRequest request, OpenAiRestApi.ApiMetadata input) Performs a non-blocking request for a streaming chat completion requestio.smallrye.mutiny.Multi
<dev.langchain4j.model.openai.internal.completion.CompletionResponse> streamingCompletion
(dev.langchain4j.model.openai.internal.completion.CompletionRequest request, OpenAiRestApi.ApiMetadata input) Performs a non-blocking request for a streaming completion requeststatic RuntimeException
toException
(jakarta.ws.rs.core.Response response)
-
Method Details
-
completion
@Path("completions") @POST io.smallrye.mutiny.Uni<dev.langchain4j.model.openai.internal.completion.CompletionResponse> completion(dev.langchain4j.model.openai.internal.completion.CompletionRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) Perform a non-blocking request for a completion response -
blockingCompletion
@Path("completions") @POST dev.langchain4j.model.openai.internal.completion.CompletionResponse blockingCompletion(dev.langchain4j.model.openai.internal.completion.CompletionRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) Perform a blocking request for a completion response -
streamingCompletion
@Path("chat/completions") @POST @RestStreamElementType("application/json") io.smallrye.mutiny.Multi<dev.langchain4j.model.openai.internal.completion.CompletionResponse> streamingCompletion(dev.langchain4j.model.openai.internal.completion.CompletionRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) Performs a non-blocking request for a streaming completion request -
createChatCompletion
@Path("chat/completions") @POST io.smallrye.mutiny.Uni<dev.langchain4j.model.openai.internal.chat.ChatCompletionResponse> createChatCompletion(dev.langchain4j.model.openai.internal.chat.ChatCompletionRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) Perform a non-blocking request for a chat completion response -
blockingChatCompletion
@Path("chat/completions") @POST dev.langchain4j.model.openai.internal.chat.ChatCompletionResponse blockingChatCompletion(dev.langchain4j.model.openai.internal.chat.ChatCompletionRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) Perform a blocking request for a chat completion response -
streamingChatCompletion
@Path("chat/completions") @POST @RestStreamElementType("application/json") io.smallrye.mutiny.Multi<dev.langchain4j.model.openai.internal.chat.ChatCompletionResponse> streamingChatCompletion(dev.langchain4j.model.openai.internal.chat.ChatCompletionRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) Performs a non-blocking request for a streaming chat completion request -
embedding
@Path("embeddings") @POST io.smallrye.mutiny.Uni<dev.langchain4j.model.openai.internal.embedding.EmbeddingResponse> embedding(dev.langchain4j.model.openai.internal.embedding.EmbeddingRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) Perform a non-blocking request to get the embeddings of an input text -
blockingEmbedding
@Path("embeddings") @POST dev.langchain4j.model.openai.internal.embedding.EmbeddingResponse blockingEmbedding(dev.langchain4j.model.openai.internal.embedding.EmbeddingRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) Perform a blocking request to get the embeddings of an input text -
moderation
@Path("moderations") @POST io.smallrye.mutiny.Uni<dev.langchain4j.model.openai.internal.moderation.ModerationResponse> moderation(dev.langchain4j.model.openai.internal.moderation.ModerationRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) Perform a non-blocking request to get a moderated version of an input text -
blockingModeration
@Path("moderations") @POST dev.langchain4j.model.openai.internal.moderation.ModerationResponse blockingModeration(dev.langchain4j.model.openai.internal.moderation.ModerationRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) Perform a blocking request to get a moderated version of an input text -
blockingImagesGenerations
@Path("images/generations") @POST dev.langchain4j.model.openai.internal.image.GenerateImagesResponse blockingImagesGenerations(dev.langchain4j.model.openai.internal.image.GenerateImagesRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) -
imagesGenerations
@Path("images/generations") @POST io.smallrye.mutiny.Uni<dev.langchain4j.model.openai.internal.image.GenerateImagesResponse> imagesGenerations(dev.langchain4j.model.openai.internal.image.GenerateImagesRequest request, @BeanParam OpenAiRestApi.ApiMetadata input) -
toException
-