jvm-openai

A minimalistic OpenAI API client for the JVM, written in Java

APACHE-2.0 License

Stars
15
jvm-openai - v0.9.3 Latest Release

Published by StefanBratanov 4 months ago

This release contains the following additions:

Chat

  • Ability to disable parallel function calling via parallel_tool_calls variable in CreateChatCompletionRequest

Messages

  • Remove quote from FileCitation inside ThreadMessage

Runs

  • Ability to disable parallel function calling via parallel_tool_calls variable in CreateRunRequest and CreateThreadAndRunRequest
  • Add parallel_tool_calls to ThreadRun

Vector Stores

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.9.2...v0.9.3

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.9.3")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.9.3</version>
</dependency>
jvm-openai - v0.9.2

Published by StefanBratanov 5 months ago

This release contains the following fixes/additions:

General

Messages

  • Add ability to reference an image URL in the content of a message via the content parameter when creating a message

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.9.1...v0.9.2

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.9.2")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.9.2</version>
</dependency>
jvm-openai - v0.9.1

Published by StefanBratanov 6 months ago

This release contains the following fixes/additions:

General

Chat

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.9.0...v0.9.1

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.9.1")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.9.1</version>
</dependency>
jvm-openai - v0.9.0

Published by StefanBratanov 6 months ago

This release has too many changes to mention all, but in short it provides support for Assistants API v2. If you would like to continue using v1, use Release v0.8.0 instead. A guide for migrating from v1 to v2 is available at https://platform.openai.com/docs/assistants/migration.

This release also contains the following additions/fixes:

General

  • When adding parameters for a Function Tool, escaped JSON strings will be unescaped when serializing .

Runs

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.8.0...v0.9.0

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.9.0")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.9.0</version>
</dependency>
jvm-openai - v0.8.0

Published by StefanBratanov 6 months ago

This release contains the following additions/fixes:

General

  • Add support for Batch API
  • Add ability to pass a project id (OpenAI-Project header) when building the OpenAI instance

Fine-tuning

  • Change learning_rate_multiplier parameter in Hyperparameters to be a double instead of an int

Assistants

  • Add ability to pass temperature, top_p and response_format when creating an assistant

Runs

  • Add ability to pass top_p, max_prompt_tokens, max_completion_tokens, truncation_strategy, tool_choice and response_format when creating a run
  • Add top_p, max_prompt_tokens, max_completion_tokens, truncation_strategy, tool_choice and response_format fields to ThreadRun

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.7.0...v0.8.0

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.8.0")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.8.0</version>
</dependency>
jvm-openai - v0.7.0

Published by StefanBratanov 7 months ago

Special thanks to @maciej-cz for his first contribution in https://github.com/StefanBratanov/jvm-openai/pull/5 🎉

This release contains the following additions/improvements:

General

  • Add OpenAIModel enum to simplify the selection of a model

Chat

  • Improved handling of streaming events when ChatCompletionStreamSubscriber is used
  • Renamed StreamChatCompletionSubscriber to ChatCompletionStreamSubscriber

Fine-tuning

  • Add ability to pass integrations and seed fields when creating a fine-tuning job
  • Add integrations and seed field to FineTuningJob
  • Add support for listing checkpoints for a fine-tuning job.

Messages

  • Add ability to pass run_id query param when listing messages to allow filtering by the run id that generated them

Runs

  • Add ability to pass additional_messages, temperature and stream fields when creating a run
  • Add temperature field to ThreadRun
  • Add ability to pass stream field when submitting tool outputs to run
  • Add createRunAndStream, createThreadAndRunAndStream and submitToolOutputsAndStream to RunsClient to support Assistants Streaming

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.6.2...v0.7.0

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.7.0")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.7.0</version>
</dependency>
jvm-openai - v0.6.2

Published by StefanBratanov 8 months ago

This release contains the following additions/improvements:

General

  • Upgraded Jackson library to version 2.17.0
  • Removed argument validations when building requests, which allows the library to be more easily maintained in case of API changes

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.6.1...v0.6.2

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.6.2")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.6.2</version>
</dependency>
jvm-openai - v0.6.1

Published by StefanBratanov 8 months ago

This release contains the following additions/improvements:

General

  • Add ability to set a requestTimeout when initializing OpenAI. This timeout will apply to all requests.
OpenAI openAI = OpenAI.newBuilder(System.getenv("OPENAI_API_KEY"))
    .requestTimeout(Duration.ofSeconds(10))
    .build();

Chat

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.6.0...v0.6.1

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.6.1")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.6.1</version>
</dependency>
jvm-openai - v0.6.0

Published by StefanBratanov 9 months ago

This release contains the following additions/improvements:

General

  • Improvements for multipart/form-data requests

Audio

  • Add response_format and timestamp_granularities parameters when creating a transcription
  • Add response_format parameter when creating a translation

Chat

  • Add instance_id parameter when creating a chat completion

Embeddings

  • Add dimensions parameter when creating embeddings

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.5.2...v0.6.0

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.6.0")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.6.0</version>
</dependency>
jvm-openai - v0.5.2

Published by StefanBratanov 9 months ago

This release contains the following additions/improvements:

General

  • Use JsonInclude.Include.NON_ABSENT instead of JsonInclude.Include.NON_EMPTY in order to serialize empty collections/maps/arrays/strings

Runs

  • Add ability to pass additional_instructions when creating a run
  • Add usage field to ThreadRun and ThreadRunStep

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.5.1...v0.5.2

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.5.2")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.5.2</version>
</dependency>
jvm-openai - v0.5.1

Published by StefanBratanov 10 months ago

This release contains the following additions/fixes:

General

  • Make jackson-annotations a compile dependency to resolve compile warnings

Chat

  • Add capability to pass StreamChatCompletionSubscriber interface implementation for stream requests in order to subscribe to streamed responses
  • The following objects were renamed to align more closely with the API:
    • ChatRequest -> CreateChatCompletionRequest
    • ChatResponse -> ChatCompletion
    • ChatChunkResponse -> ChatCompletionChunk

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.5.0...v0.5.1

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.5.1")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.5.1</version>
</dependency>
jvm-openai - v0.5.0

Published by StefanBratanov 10 months ago

From this release onward, the published artifact will be named jvm-openai instead of chatjpt. The project itself has been renamed as well. Old versions of the library would still be available on Maven Central under the old name.

This release contains the following additions:

General

  • Renamed io.github.stefanbratanov.chatjpt package to io.github.stefanbratanov.jvm.openai
  • An option to pass custom instance of the HttpClient used for the API requests
  • Add Error record to the OpenAIException which contains all the information that OpenAI API returns in case of errors.

Chat

  • Support passing array of content parts (Text/Image) for the content field when constructing a message.

Audio/Images

  • Add async functionality

Full Changelog: https://github.com/StefanBratanov/jvm-openai/compare/v0.4.0...v0.5.0

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:jvm-openai:0.5.0")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>jvm-openai</artifactId>
    <version>0.5.0</version>
</dependency>
jvm-openai - v0.4.0

Published by StefanBratanov 10 months ago

This release adds support for the Assistants, Threads, Messages and Runs OpenAI Beta API endpoints.

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:chatjpt:0.4.0")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>chatjpt</artifactId>
    <version>0.4.0</version>
</dependency>
jvm-openai - v0.3.0

Published by StefanBratanov 10 months ago

This release contains the following additions:

Chat

  • Add logprobs support
  • Add support for stop request parameter
  • Add support for tools and tool_choice request parameters
  • Add Streaming support

Embeddings

  • Add support for the different types of input request parameter

Full Changelog: https://github.com/StefanBratanov/chatjpt/compare/v0.2.0...v0.3.0

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:chatjpt:0.3.0")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>chatjpt</artifactId>
    <version>0.3.0</version>
</dependency>
jvm-openai - v0.2.0

Published by StefanBratanov 10 months ago

This release adds support for the Audio, Embeddings, Fine-tuning, Files, Images and Moderations OpenAI API endpoints.

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:chatjpt:0.2.0")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>chatjpt</artifactId>
    <version>0.2.0</version>
</dependency>
jvm-openai - v0.1.0

Published by StefanBratanov 10 months ago

This initial release has support for the Chat and Models OpenAI API endpoints.

The artifact is available on Maven Central and can be imported as follows:

Gradle

implementation("io.github.stefanbratanov:chatjpt:0.1.0")

Maven

<dependency>
    <groupId>io.github.stefanbratanov</groupId>
    <artifactId>chatjpt</artifactId>
    <version>0.1.0</version>
</dependency>
Badges
Extracted from project README
build Quality Gate Status Maven Central javadoc