INNER CODE UNIT · Rust
models
Far-Beyond-Pulsar/Pulsar-Native · crates/agent-providers/agent_chat_core/src/lib.rs:131
fn models(&self) -> anyhow::Result<Vec<ModelDescriptor>>;
fn chat(&self, request: ChatRequest) -> anyhow::Result<ChatResponse>;
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());
}
}