use async_trait::async_trait;
use futures_util::stream::BoxStream;
use crate::error::ProviderError;
use crate::provider::LlmProvider;
use crate::provider::types::{ChatMessage, ChatRequest, ChatResponse, ChatStreamChunk, Role};
pub struct MockProvider;
#[async_trait]
impl LlmProvider for MockProvider {
async fn chat(&self, _request: ChatRequest) -> Result<ChatResponse, ProviderError> {
Ok(ChatResponse {
message: ChatMessage {
role: Role::Assistant,
content: "Mock response".to_string(),
name: None,
},
tool_calls: vec![],
usage: None,
finish_reason: None,
})
}
fn stream_chat(
&self,
_request: ChatRequest,
) -> Result<BoxStream<'static, Result<ChatStreamChunk, ProviderError>>, ProviderError>
{
Ok(Box::pin(futures_util::stream::empty()))
}
}