doum_cli/core/
ask.rs

1use crate::llm::client::LLMRequest;
2use crate::llm::{LLMClient, Message, PromptBuilder};
3use crate::system::{Config, SystemInfo};
4use anyhow::Result;
5
6/// Provide answer of the question using Ask mode
7pub async fn handle_ask(
8    question: &str,
9    client: &dyn LLMClient,
10    system_info: &SystemInfo,
11    _config: &Config,
12) -> Result<String> {
13    let builder = PromptBuilder::new(system_info.clone());
14
15    let request = LLMRequest {
16        system: builder.build_ask(),
17        messages: vec![Message::user(question)],
18        use_websearch: _config.llm.use_web_search,
19    };
20
21    // Generate response
22    let response = client.generate(request).await?;
23
24    Ok(response)
25}