fn rust_inference_example(model_path: &str, prompt: &str) -> anyhow::Result<()> {
use oxillama_runtime::{EngineConfig, InferenceEngine};
let config = EngineConfig {
model_path: model_path.to_string(),
..Default::default()
};
let mut engine = InferenceEngine::new(config);
eprintln!("Loading model: {model_path}");
engine.load_model()?;
eprintln!("Model loaded.");
let mut collected = String::new();
engine.generate(prompt, 128, |tok| collected.push_str(tok))?;
eprintln!("--- output ---");
println!("{collected}");
eprintln!("--- end ---");
Ok(())
}
fn main() -> anyhow::Result<()> {
let mut args = std::env::args().skip(1);
let model_path = match args.next() {
Some(p) => p,
None => {
eprintln!("Usage: python_bridge <model.gguf> [prompt]");
eprintln!("(No model path provided — exiting cleanly)");
return Ok(());
}
};
let prompt = args.next().unwrap_or_else(|| "Hello!".to_string());
rust_inference_example(&model_path, &prompt)
}