doum_cli/cli/
ask.rs

1use crate::llm::client::LLMRequest;
2use crate::llm::{LLMMessage, PromptBuilder, create_client};
3use crate::system::{get_system_info, load_config};
4use anyhow::Result;
5use cliclack::spinner;
6
7pub async fn handle_ask_command(question: &str) -> Result<()> {
8    let config = load_config()?;
9    let client = create_client(&config.llm)?;
10    let system_info = get_system_info();
11    let builder = PromptBuilder::new(system_info.clone());
12
13    let sp = spinner();
14    sp.start("[ASK MODE] Waiting for answer...");
15
16    let request = LLMRequest {
17        system: builder.build_ask(),
18        messages: vec![LLMMessage::user(question)],
19    };
20
21    let response = client.generate(request).await?;
22
23    sp.stop("");
24
25    println!("\n{}\n", response);
26
27    Ok(())
28}