(
&mut self,
user_message: String,
)
| 264 | } |
| 265 | |
| 266 | pub async fn execute_streaming( |
| 267 | &mut self, |
| 268 | user_message: String, |
| 269 | ) -> Result<BoxStream<'static, Result<StreamEvent, AgentError>>, AgentError> { |
| 270 | self.conversation.add_user_message(user_message); |
| 271 | |
| 272 | let provider = self.get_provider()?; |
| 273 | let model_id = self.get_model_id(&provider); |
| 274 | let request = ChatRequest::new(model_id, self.conversation.to_provider_messages()); |
| 275 | |
| 276 | let stream = provider |
| 277 | .chat_stream(request) |
| 278 | .await |
| 279 | .map_err(|e| AgentError::ProviderError(e.to_string()))?; |
| 280 | |
| 281 | Ok(stream |
| 282 | .map(|r| r.map_err(|e| AgentError::ProviderError(e.to_string()))) |
| 283 | .boxed()) |
| 284 | } |
| 285 | |
| 286 | fn get_provider(&self) -> Result<Arc<dyn Provider>, AgentError> { |
| 287 | if let Some(ref model_ref) = self.agent.model { |
no test coverage detected