Skip to main content

bitrouter_core/models/language/
stream_result.rs

1use std::pin::Pin;
2
3use futures_core::Stream;
4use http::HeaderMap;
5
6use crate::models::{language::stream_part::LanguageModelStreamPart, shared::types::JsonValue};
7
8/// Represents the result of a streaming language model call.
9pub struct LanguageModelStreamResult {
10    /// The stream of partial results from the language model provider.
11    pub stream: Pin<Box<dyn Stream<Item = LanguageModelStreamPart> + Send>>,
12    /// The request sent to the language model provider.
13    pub request: Option<LanguageModelStreamResultRequest>,
14    /// The response received from the language model provider.
15    pub response: Option<LanguageModelStreamResultResponse>,
16}
17
18/// Represents the request sent to a language model provider for a streaming call.
19#[derive(Debug, Clone)]
20pub struct LanguageModelStreamResultRequest {
21    pub headers: Option<HeaderMap>,
22    pub body: Option<JsonValue>,
23}
24
25/// Represents the response received from a language model provider for a streaming call.
26#[derive(Debug, Clone)]
27pub struct LanguageModelStreamResultResponse {
28    pub headers: Option<HeaderMap>,
29}