1use anyhow::Result;
2use futures::{future::BoxFuture, stream::BoxStream};
3
4use crate::providers::open_ai::completion::OpenAIRequest;
5
6pub trait CompletionProvider {
7 fn complete(
8 &self,
9 prompt: OpenAIRequest,
10 ) -> BoxFuture<'static, Result<BoxStream<'static, Result<String>>>>;
11}