Install
Add the dependency to your Maven project:
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
</dependency>
Configure
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
OpenAIClient client = OpenAIOkHttpClient.builder()
.apiKey(System.getenv("ROUTEUR_KEY"))
.baseUrl("https://api.routeur.ai/v1")
.build();
Chat completion
import com.openai.models.chat.completions.ChatCompletion;
import com.openai.models.chat.completions.ChatCompletionCreateParams;
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.model("auto")
.addUserMessage("hi")
.build();
ChatCompletion res = client.chat().completions().create(params);
System.out.println(res.choices().get(0).message().content().orElse(""));
Choosing a model
Every request picks an upstream model in one of three ways — in this order of precedence:
- Routeur-* request headers. If
Routeur-ProviderorRouteur-Modelare set, they win, regardless of what is in the body. Add them via the builder below. - An explicit upstream id in
chatCompletion. Pass something like"gpt-4o-mini"or"claude-3-5-sonnet"to bypass routing rules and pin the request to that model. "auto"(or any alias). Lets routeur.ai pick the upstream model from your routing rules. This is the recommended default.
Force a specific provider+model on every call via headers:
OpenAIClient pinned = OpenAIOkHttpClient.builder()
.apiKey(System.getenv("ROUTEUR_KEY"))
.baseUrl("https://api.routeur.ai/v1")
.putAdditionalHeader("Routeur-Provider", "openai")
.putAdditionalHeader("Routeur-Model", "gpt-4o")
.build();