extern crate lm_studio_api_extended; use lm_studio_api_extended::{ Model, Context, Chat, Request };
#[tokio::main]
async fn main() {
let mut chat = Chat::new(
Model::Gemma3_4b, Context::new("You're Jarvis - my personal assistant. Call me master", 4090), );
let request = Request {
messages: vec!["Hi, what's your name?".into()],
context: true,
stream: false,
..Request::default()
};
let result = chat.send(request).await;
match result {
Ok(Some(response)) => println!("{}", response.text()),
Err(e) => eprintln!("Error: {e}"),
_ => {}
}
loop {
eprint!("\n>> ");
let mut buf = String::new();
std::io::stdin().read_line(&mut buf).unwrap();
eprint!("<< ");
let request = Request {
messages: vec![buf.into()],
context: true,
stream: true,
..Request::default()
};
let _ = chat.send(request).await.unwrap();
while let Some(result) = chat.next().await {
match result {
Ok(text) if !text.is_empty() => {
eprint!("{text}");
},
Err(e) => {
eprintln!("Error: {e}");
break;
},
_ => {}
}
}
}
}