1use anyhow::Result;
2use mistralrs::{IsqType, TextMessageRole, TextMessages, TextModelBuilder};
3
4#[tokio::main]
5async fn main() -> Result<()> {
6 let model = TextModelBuilder::new("Qwen/Qwen3-30B-A3B")
7 .with_isq(IsqType::Q4K)
8 .with_logging()
9 .build()
10 .await?;
11
12 let mut messages = TextMessages::new();
13
14 messages = messages.add_message(TextMessageRole::User, "Hello! How many rs in strawberry?");
18 let response = model.send_chat_request(messages.clone()).await?;
19
20 println!("{}", response.choices[0].message.content.as_ref().unwrap());
21
22 messages = messages.add_message(
23 TextMessageRole::Assistant,
24 response.choices[0].message.content.as_ref().unwrap(),
25 );
26
27 messages = messages.add_message(TextMessageRole::User, "How many rs in blueberry? /no_think");
31 let response = model.send_chat_request(messages.clone()).await?;
32
33 println!("{}", response.choices[0].message.content.as_ref().unwrap());
34
35 messages = messages.add_message(
36 TextMessageRole::Assistant,
37 response.choices[0].message.content.as_ref().unwrap(),
38 );
39
40 messages = messages.add_message(TextMessageRole::User, "Are you sure? /think");
44 let response = model.send_chat_request(messages).await?;
45
46 println!("{}", response.choices[0].message.content.as_ref().unwrap());
47
48 Ok(())
49}