Package smile.onnx.genai


package smile.onnx.genai
Idiomatic Java API for ONNX Runtime GenAI.

This package wraps the GenAI C API through Panama FFM bindings in smile.onnx.genai.foreign. Handles implement AutoCloseable and throw unchecked GenAIException on native errors.

Layers

Quick start

try (var genai = SimpleGenAI.of("models/phi-3-mini-cpu")) {
    try (var params = genai.createGeneratorParams()) {
        params.setSearchOption("max_length", 256)
              .setSearchOption("temperature", 0.8);
        String reply = genai.generate(params, "Hello!", System.out::print);
    }
}

Providers

Model.open(String) cascades CUDA → RyzenAI → OpenVINO NPU → QNN → DirectML (Windows) → CPU when SMILE_ONNX_GENAI_PROVIDER is auto (default). Each accelerator requires matching EP natives. Classical Vitis AI for general ONNX is SessionOptions.appendVitisAiExecutionProvider().

Native libraries

Both onnxruntime and onnxruntime-genai must be on the OS library search path. Use --enable-native-access=ALL-UNNAMED.

OgaEngine continuous batching is not wrapped yet; map it to smile.llm.engine.ModelExecutor in a later phase.