Skip to content

Java SDK

Requirements

  • Java 8 or higher
  • Maven or Gradle

Maven Dependency

xml
<dependency>
    <groupId>com.theopenai</groupId>
    <artifactId>openai-java</artifactId>
    <version>0.12.0</version>
</dependency>

Quick Start

Configure Client

java
import com.openai.client.OpenAiApi;
import com.openai.client.OpenAiClient;
import com.openai.client.okhttp.OkHttpClientBuilder;

public class Main {
    public static void main(String[] args) {
        OpenAiClient client = new OkHttpClientBuilder()
            .setApiKey("your_api_key_here")
            .setBaseUrl("https://ai-tokenhub.com/v1")
            .build();
    }
}

Basic Request

java
ChatCompletionRequest request = ChatCompletionRequest.builder()
    .model("gpt-4o")
    .messages(
        Message.builder()
            .role(Message.Role.USER)
            .content("Hello, please introduce yourself")
            .build()
    )
    .build();

ChatCompletionResponse response = client.chatCompletion(request);
System.out.println(response.getChoices().get(0).getMessage().getContent());

Streaming

java
ChatCompletionRequest request = ChatCompletionRequest.builder()
    .model("gpt-4o")
    .messages(
        Message.builder()
            .role(Message.Role.USER)
            .content("Tell me a joke about AI")
            .build()
    )
    .stream(true)
    .build();

client.streamChatCompletion(request, new EventSourceListener() {
    @Override
    public void onEvent(ChatCompletionChunk chunk) {
        if (chunk.getChoices().get(0).getDelta().getContent() != null) {
            System.out.print(chunk.getChoices().get(0).getDelta().getContent());
        }
    }
});

Spring Boot Integration

Configuration File

yaml
# application.yml
openai:
  api-key: your_api_key_here
  base-url: https://ai-tokenhub.com/v1
  timeout: 60

Config Class

java
@Configuration
public class OpenAiConfig {
    @Value("${openai.api-key}")
    private String apiKey;

    @Value("${openai.base-url}")
    private String baseUrl;

    @Bean
    public OpenAiClient openAiClient() {
        return new OkHttpClientBuilder()
            .setApiKey(apiKey)
            .setBaseUrl(baseUrl)
            .build();
    }
}

Service Class

java
@Service
public class AiService {
    private final OpenAiClient client;

    public AiService(OpenAiClient client) {
        this.client = client;
    }

    public String chat(String message) {
        ChatCompletionRequest request = ChatCompletionRequest.builder()
            .model("gpt-4o")
            .messages(Message.builder()
                .role(Message.Role.USER)
                .content(message)
                .build())
            .build();

        return client.chatCompletion(request)
            .getChoices().get(0).getMessage().getContent();
    }
}