use serde::de::DeserializeOwned;
use schemars::JsonSchema;
use super::super::super::{StreamItem, SSEProvider};
use super::super::providers::openai_provider;
use futures_core::stream::Stream;
use bytes::Bytes;
use std::pin::Pin;
pub fn stream_from_sse_bytes<T>(
byte_stream: Pin<Box<dyn Stream<Item = Result<Bytes, super::super::super::error::AIError>> + Send>>
) -> impl Stream<Item = Result<StreamItem<T>, super::super::super::error::QueryResolverError>>
where
T: DeserializeOwned + JsonSchema + Send + 'static,
{
let provider = openai_provider();
provider.parse_sse_stream(byte_stream)
}