05_heterogenous_examples/
05-heterogenous-examples.rs1use dspy_rs::{ChatAdapter, LM, Predict, Predictor, configure, example, sign};
11use secrecy::SecretString;
12
13#[tokio::main]
14async fn main() -> anyhow::Result<()> {
15 configure(
16 LM::builder()
17 .api_key(SecretString::from(std::env::var("OPENAI_API_KEY")?))
18 .build(),
19 ChatAdapter {},
20 );
21
22 let exp = example! {
23 "number": "input" => 10,
24 };
25 let predict = Predict::new(sign! {
26 (number: i32) -> number_squared: i32, number_cubed: i32
27 });
28
29 let prediction = predict.forward(exp).await?;
30 println!("{prediction:?}");
31
32 Ok(())
33}