rig/providers/xai/
streaming.rs1use crate::completion::{CompletionError, CompletionRequest};
2use crate::json_utils::merge;
3use crate::providers::openai::send_compatible_streaming_request;
4use crate::providers::xai::completion::CompletionModel;
5use crate::streaming::{StreamingCompletionModel, StreamingResult};
6use serde_json::json;
7
8impl StreamingCompletionModel for CompletionModel {
9 async fn stream(
10 &self,
11 completion_request: CompletionRequest,
12 ) -> Result<StreamingResult, CompletionError> {
13 let mut request = self.create_completion_request(completion_request)?;
14
15 request = merge(request, json!({"stream": true}));
16
17 let builder = self.client.post("/v1/chat/completions").json(&request);
18
19 send_compatible_streaming_request(builder).await
20 }
21}