compiled_parity/
compiled_parity.rs1use reflex_rs::CompiledInstinct;
2use std::env;
3
4fn main() {
5 let args: Vec<String> = env::args().collect();
6 if args.len() < 2 {
7 eprintln!("Usage: compiled_parity <model_path> [query1] [query2] ...");
8 std::process::exit(1);
9 }
10 let model_path = &args[1];
11 let model = match CompiledInstinct::from_file(model_path) {
12 Ok(m) => m,
13 Err(e) => {
14 eprintln!("Error loading model: {}", e);
15 std::process::exit(1);
16 }
17 };
18
19 let queries = if args.len() > 2 {
20 args[2..].to_vec()
21 } else {
22 Vec::new()
23 };
24
25 print!("[");
26 for (i, q) in queries.iter().enumerate() {
27 let res = model.predict(q);
28 print!("{{\"query\":");
29 print!("\"{}\",", q.replace('\\', "\\\\").replace('"', "\\\""));
30 print!("\"selected\":\"{}\",", res.selected);
31 print!("\"distribution\":{{");
32 for (j, (opt, prob)) in res.distribution.iter().enumerate() {
33 print!("\"{}\":{:.6}", opt, prob);
34 if j + 1 < res.distribution.len() {
35 print!(",");
36 }
37 }
38 print!("}}}}");
39 if i + 1 < queries.len() {
40 print!(",");
41 }
42 }
43 println!("]");
44}