These Java examples are real runnable files. Edit the source file first; this page is rebuilt from the checked-in example and its metadata header.
Java Sequential Flow
Runs a two-step Ax flow against OpenAI.
- Provider:
openai - Env:
OPENAI_API_KEY,OPENAI_APIKEY - Level:
beginner - Run:
npm run example -- java src/examples/java/flows/SequentialFlowExample.java - Source: src/examples/java/flows/SequentialFlowExample.java
import dev.axllm.ax.*;
import java.nio.file.*;
import java.util.*;
public final class SequentialFlowExample {
static String apiKey() {
String apiKey = System.getenv("OPENAI_API_KEY");
if (apiKey == null || apiKey.isBlank()) apiKey = System.getenv("OPENAI_APIKEY");
if (apiKey == null || apiKey.isBlank()) {
throw new IllegalStateException("Set OPENAI_API_KEY or OPENAI_APIKEY to run this example.");
}
return apiKey;
}
static OpenAICompatibleClient client() {
return new OpenAICompatibleClient(
Map.of("api_key", apiKey(), "model", System.getenv().getOrDefault("AX_OPENAI_MODEL", "gpt-5.4-mini"), "model_config", Map.of("temperature", 0.0)));
}
public static void main(String[] args) throws Exception {
AxGen step = Ax.ax("documentText:string -> summaryText:string");
AxFlow program =
Ax.flow(Map.of("id", "examples.sequentialFlow"))
.execute("step", step)
.map("note", state -> Map.of("note", "Mapped flow state after the provider-backed step."))
.returns(Map.of("step", "step", "note", "note"));
Map<String, Object> output = program.forward(client(), Map.of("documentText", "Ax gives developers signatures, provider clients, agents, flows, tracing, and optimization."));
System.out.println(Json.stringify(output));
}
}Java Branching Flow
Routes a classification through follow-up flow logic backed by OpenAI.
- Provider:
openai - Env:
OPENAI_API_KEY,OPENAI_APIKEY - Level:
intermediate - Run:
npm run example -- java src/examples/java/flows/BranchFlowExample.java - Source: src/examples/java/flows/BranchFlowExample.java
import dev.axllm.ax.*;
import java.nio.file.*;
import java.util.*;
public final class BranchFlowExample {
static String apiKey() {
String apiKey = System.getenv("OPENAI_API_KEY");
if (apiKey == null || apiKey.isBlank()) apiKey = System.getenv("OPENAI_APIKEY");
if (apiKey == null || apiKey.isBlank()) {
throw new IllegalStateException("Set OPENAI_API_KEY or OPENAI_APIKEY to run this example.");
}
return apiKey;
}
static OpenAICompatibleClient client() {
return new OpenAICompatibleClient(
Map.of("api_key", apiKey(), "model", System.getenv().getOrDefault("AX_OPENAI_MODEL", "gpt-5.4-mini"), "model_config", Map.of("temperature", 0.0)));
}
public static void main(String[] args) throws Exception {
AxGen step = Ax.ax("request:string -> route:class "support, sales, engineering"");
AxFlow program =
Ax.flow(Map.of("id", "examples.branchFlow"))
.execute("step", step)
.map("note", state -> Map.of("note", "Mapped flow state after the provider-backed step."))
.returns(Map.of("step", "step", "note", "note"));
Map<String, Object> output = program.forward(client(), Map.of("request", "A customer says checkout is down for their enterprise account."));
System.out.println(Json.stringify(output));
}
}Java Composed Flow
Composes multiple typed programs into one OpenAI-backed flow.
- Provider:
openai - Env:
OPENAI_API_KEY,OPENAI_APIKEY - Level:
advanced - Run:
npm run example -- java src/examples/java/flows/ComposedFlowExample.java - Source: src/examples/java/flows/ComposedFlowExample.java
import dev.axllm.ax.*;
import java.nio.file.*;
import java.util.*;
public final class ComposedFlowExample {
static String apiKey() {
String apiKey = System.getenv("OPENAI_API_KEY");
if (apiKey == null || apiKey.isBlank()) apiKey = System.getenv("OPENAI_APIKEY");
if (apiKey == null || apiKey.isBlank()) {
throw new IllegalStateException("Set OPENAI_API_KEY or OPENAI_APIKEY to run this example.");
}
return apiKey;
}
static OpenAICompatibleClient client() {
return new OpenAICompatibleClient(
Map.of("api_key", apiKey(), "model", System.getenv().getOrDefault("AX_OPENAI_MODEL", "gpt-5.4-mini"), "model_config", Map.of("temperature", 0.0)));
}
public static void main(String[] args) throws Exception {
AxGen step = Ax.ax("topic:string -> outline:string[]");
AxFlow program =
Ax.flow(Map.of("id", "examples.composedFlow"))
.execute("step", step)
.map("note", state -> Map.of("note", "Mapped flow state after the provider-backed step."))
.returns(Map.of("step", "step", "note", "note"));
Map<String, Object> output = program.forward(client(), Map.of("topic", "How Ax moves from typed generation to agents, flows, and optimization"));
System.out.println(Json.stringify(output));
}
}