Skip to main content

Client

Struct Client 

Source
pub struct Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG> {
    pub chat_client: Arc<Client<CTXEXT, FENSLLM, CUSG>>,
    pub ensemble_fetcher: Arc<CachingFetcher<CTXEXT, FENS>>,
    pub vector_client: Arc<Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>>,
    pub function_fetcher: Arc<FFN>,
    pub profile_fetcher: Arc<FPFL>,
    pub usage_handler: Arc<FUSG>,
}
Expand description

Client for executing Functions.

Orchestrates Function execution by flattening the Function and Profile into executable tasks and running them (Vector Completions or nested Functions) with streaming output support.

Fields§

§chat_client: Arc<Client<CTXEXT, FENSLLM, CUSG>>

Chat completions client for reasoning summaries.

§ensemble_fetcher: Arc<CachingFetcher<CTXEXT, FENS>>

Fetcher for Ensemble definitions.

§vector_client: Arc<Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>>

Vector completions client for executing Vector Completion tasks.

§function_fetcher: Arc<FFN>

Fetcher for Function definitions.

§profile_fetcher: Arc<FPFL>

Fetcher for Profile definitions.

§usage_handler: Arc<FUSG>

Handler for recording usage after execution.

Implementations§

Source§

impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG> Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG>

Source

pub fn new( chat_client: Arc<Client<CTXEXT, FENSLLM, CUSG>>, ensemble_fetcher: Arc<CachingFetcher<CTXEXT, FENS>>, vector_client: Arc<Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG>>, function_fetcher: Arc<FFN>, profile_fetcher: Arc<FPFL>, usage_handler: Arc<FUSG>, ) -> Self

Creates a new Function execution client.

Source§

impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG> Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG>
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, FFN: Fetcher<CTXEXT> + Send + Sync + 'static, FPFL: Fetcher<CTXEXT> + Send + Sync + 'static, FUSG: UsageHandler<CTXEXT> + Send + Sync + 'static,

Source

pub async fn create_unary_handle_usage( self: Arc<Self>, ctx: Context<CTXEXT>, request: Arc<Request>, ) -> Result<FunctionExecution, Error>

Executes a Function and returns the complete response.

Collects the full streaming response and records usage.

Source

pub async fn create_streaming_handle_usage( self: Arc<Self>, ctx: Context<CTXEXT>, request: Arc<Request>, ) -> Result<impl Stream<Item = FunctionExecutionChunk> + Send + Unpin + 'static, Error>

Executes a Function with streaming output and records usage.

Streams chunks as they become available and records usage after completion.

Source§

impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG> Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG>
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, FFN: Fetcher<CTXEXT> + Send + Sync + 'static, FPFL: Fetcher<CTXEXT> + Send + Sync + 'static, FUSG: Send + Sync + 'static,

Source

pub async fn create_streaming( self: Arc<Self>, ctx: Context<CTXEXT>, request: Arc<Request>, ) -> Result<impl Stream<Item = FunctionExecutionChunk> + Send + 'static, Error>

Executes a Function with streaming output.

Fetches the Function and Profile, flattens them into tasks, and executes all tasks with streaming output. Handles reasoning summaries if requested.

Auto Trait Implementations§

§

impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG> Freeze for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG>

§

impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG> !RefUnwindSafe for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG>

§

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

§

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

§

impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG> Unpin for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG>

§

impl<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG> !UnwindSafe for Client<CTXEXT, FENSLLM, CUSG, FENS, FVVOTE, FCVOTE, VUSG, FFN, FPFL, FUSG>

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