INNER CODE UNIT · Rust
chat_streaming
Far-Beyond-Pulsar/Pulsar-Native · crates/agent-providers/agent_chat_core/src/lib.rs:134
fn chat_streaming(
&self,
request: ChatRequest,
on_chunk: &mut dyn FnMut(String),
) -> anyhow::Result<ChatResponse> {
let response = self.chat(request)?;
if response.streamed_text_chunks.is_empty() {
if let Some(text) = &response.assistant_message {
on_chunk(text.clone());
}
} else {
for chunk in &response.streamed_text_chunks {
on_chunk(chunk.clone());
}
}
Ok(response)
}
}