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}