pub struct Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> {
pub chat_client: Arc<Client<CTXEXT, FENSLLM, CUSG>>,
pub ensemble_fetcher: Arc<CachingFetcher<CTXEXT, FENS>>,
pub completion_votes_fetcher: Arc<FVVOTE>,
pub cache_vote_fetcher: Arc<FCVOTE>,
pub usage_handler: Arc<VUSG>,
}Expand description
Client for creating vector completions.
Orchestrates multiple LLM chat completions to vote on response options, combining their votes using weights to produce final scores.
Fields§
§chat_client: Arc<Client<CTXEXT, FENSLLM, CUSG>>The underlying chat completion client.
ensemble_fetcher: Arc<CachingFetcher<CTXEXT, FENS>>Fetcher for Ensemble definitions.
completion_votes_fetcher: Arc<FVVOTE>Fetcher for votes from historical completions.
cache_vote_fetcher: Arc<FCVOTE>Fetcher for votes from the global cache.
usage_handler: Arc<VUSG>Handler for usage tracking.
Implementations§
Source§impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>
impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>
Source§impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>where
CTXEXT: ContextExt + Send + Sync + 'static,
FENSLLM: Fetcher<CTXEXT> + Send + Sync + 'static,
CUSG: UsageHandler<CTXEXT> + Send + Sync + 'static,
FENS: Fetcher<CTXEXT> + Send + Sync + 'static,
FVVOTE: Fetcher<CTXEXT> + Send + Sync + 'static,
FCVOTE: Fetcher<CTXEXT> + Send + Sync + 'static,
VUSG: UsageHandler<CTXEXT> + Send + Sync + 'static,
impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>where
CTXEXT: ContextExt + Send + Sync + 'static,
FENSLLM: Fetcher<CTXEXT> + Send + Sync + 'static,
CUSG: UsageHandler<CTXEXT> + Send + Sync + 'static,
FENS: Fetcher<CTXEXT> + Send + Sync + 'static,
FVVOTE: Fetcher<CTXEXT> + Send + Sync + 'static,
FCVOTE: Fetcher<CTXEXT> + Send + Sync + 'static,
VUSG: UsageHandler<CTXEXT> + Send + Sync + 'static,
Sourcepub async fn create_unary_handle_usage(
self: Arc<Self>,
ctx: Context<CTXEXT>,
request: Arc<VectorCompletionCreateParams>,
) -> Result<VectorCompletion, Error>
pub async fn create_unary_handle_usage( self: Arc<Self>, ctx: Context<CTXEXT>, request: Arc<VectorCompletionCreateParams>, ) -> Result<VectorCompletion, Error>
Creates a unary (non-streaming) vector completion with usage tracking.
Collects all streaming chunks into a single response.
Sourcepub async fn create_streaming_handle_usage(
self: Arc<Self>,
ctx: Context<CTXEXT>,
request: Arc<VectorCompletionCreateParams>,
) -> Result<impl Stream<Item = VectorCompletionChunk> + Send + Unpin + 'static, Error>
pub async fn create_streaming_handle_usage( self: Arc<Self>, ctx: Context<CTXEXT>, request: Arc<VectorCompletionCreateParams>, ) -> Result<impl Stream<Item = VectorCompletionChunk> + Send + Unpin + 'static, Error>
Creates a streaming vector completion with usage tracking.
Spawns a background task to track usage after the stream completes.
Source§impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>where
CTXEXT: ContextExt + Send + Sync + 'static,
FENSLLM: Fetcher<CTXEXT> + Send + Sync + 'static,
CUSG: UsageHandler<CTXEXT> + Send + Sync + 'static,
FENS: Fetcher<CTXEXT> + Send + Sync + 'static,
FVVOTE: Fetcher<CTXEXT> + Send + Sync + 'static,
FCVOTE: Fetcher<CTXEXT> + Send + Sync + 'static,
VUSG: Send + Sync + 'static,
impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>where
CTXEXT: ContextExt + Send + Sync + 'static,
FENSLLM: Fetcher<CTXEXT> + Send + Sync + 'static,
CUSG: UsageHandler<CTXEXT> + Send + Sync + 'static,
FENS: Fetcher<CTXEXT> + Send + Sync + 'static,
FVVOTE: Fetcher<CTXEXT> + Send + Sync + 'static,
FCVOTE: Fetcher<CTXEXT> + Send + Sync + 'static,
VUSG: Send + Sync + 'static,
Sourcepub async fn create_streaming(
self: Arc<Self>,
ctx: Context<CTXEXT>,
request: Arc<VectorCompletionCreateParams>,
) -> Result<impl Stream<Item = VectorCompletionChunk> + Send + 'static, Error>
pub async fn create_streaming( self: Arc<Self>, ctx: Context<CTXEXT>, request: Arc<VectorCompletionCreateParams>, ) -> Result<impl Stream<Item = VectorCompletionChunk> + Send + 'static, Error>
Creates a streaming vector completion.
Orchestrates chat completions across all LLMs in the ensemble, extracting votes from each and combining them with weights to produce scores.
Auto Trait Implementations§
impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Freeze for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>
impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> !RefUnwindSafe for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>
impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Send for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>
impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Sync for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>
impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Unpin for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>
impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> !UnwindSafe for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more