completion.rs

 1use anyhow::Result;
 2use futures::{future::BoxFuture, stream::BoxStream};
 3
 4pub trait CompletionRequest: Send + Sync {
 5    fn data(&self) -> serde_json::Result<String>;
 6}
 7
 8pub trait CompletionProvider {
 9    fn complete(
10        &self,
11        prompt: Box<dyn CompletionRequest>,
12    ) -> BoxFuture<'static, Result<BoxStream<'static, Result<String>>>>;
13}