rig/providers/together/
streaming.rs

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