05_heterogenous_examples/
05-heterogenous-examples.rs

1/*
2Script to run a heterogenous example.
3
4Run with:
5```
6cargo run --example 05-heterogenous-examples
7```
8*/
9
10use dspy_rs::{ChatAdapter, LM, Predict, Predictor, configure, example, sign};
11
12#[tokio::main]
13async fn main() -> anyhow::Result<()> {
14    configure(
15        LM::builder()
16            .model("openai:gpt-4o-mini".to_string())
17            .build()
18            .await
19            .unwrap(),
20        ChatAdapter {},
21    );
22
23    let exp = example! {
24        "number": "input" => 10,
25    };
26    let predict = Predict::new(sign! {
27        (number: i32) -> number_squared: i32, number_cubed: i32
28    });
29
30    let prediction = predict.forward(exp).await?;
31    println!("{prediction:?}");
32
33    Ok(())
34}