Skip to main content

Client

Struct Client 

Source
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>

Source

pub fn new( chat_client: Arc<Client<CTXEXT, FENSLLM, CUSG>>, ensemble_fetcher: Arc<CachingFetcher<CTXEXT, FENS>>, completion_votes_fetcher: Arc<FVVOTE>, cache_vote_fetcher: Arc<FCVOTE>, usage_handler: Arc<VUSG>, ) -> Self

Creates a new vector completion client.

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,

Source

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.

Source

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,

Source

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>
where FVVOTE: Sync + Send, FCVOTE: Sync + Send, VUSG: Sync + Send, CUSG: Sync + Send, FENS: Sync + Send, CTXEXT: Sync + Send, FENSLLM: Sync + Send,

§

impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG> Sync for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>
where FVVOTE: Sync + Send, FCVOTE: Sync + Send, VUSG: Sync + Send, CUSG: Sync + Send, FENS: Sync + Send, CTXEXT: Sync + Send, FENSLLM: Sync + Send,

§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more