Proxy

Struct Proxy 

Source
pub struct Proxy<D: LlmDaemon + Debug> { /* private fields */ }
Expand description

A proxy to actual LLM server, and only send the last pending request. If the LLM generation is slower than requests, then processing the oldest request does not make sense, as the user is more interested in the later requests. But current server (AFAIK) does not handle this properly…

Implementations§

Source§

impl<D: LlmDaemon + Debug> Proxy<D>

Source

pub fn new(config: ProxyConfig, inner: D) -> Self

Trait Implementations§

Source§

impl<D: Debug + LlmDaemon + Debug> Debug for Proxy<D>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<D: LlmDaemon + Debug> LlmDaemon for Proxy<D>

Source§

type Config = ProxyConfig

Source§

fn fork_daemon(&self) -> Result<()>

Spawns the daemon, initializing any necessary resources or processes. This method is expected to be called before creation of tokio runtime, mostly due to the use of the fork. User is free to use async runtime after calling this.
Source§

fn heartbeat<'a, 'b>(&'b self) -> impl Future<Output = Result<()>> + Send + 'a
where 'a: 'b,

Creates a task which maintains a periodic heartbeat to the daemon. Daemon is expected to terminate if there’s no heartbeat for a certain period of time. Keeping this task within async runtime will ensure that the daemon is kept running during the application. FIXME: Extract heartbeat / ready to Async util?
Source§

fn config(&self) -> &Self::Config

Source§

fn ping(&self) -> Result<()>

Send a single heartbeat to let daemon know there is a client. Can be useful if you don’t want to use heartbeat.
Source§

fn ready<'a>(&self) -> impl Future<Output = ()> + Send + 'a

FIXME: Extract heartbeat / ready to Async util?

Auto Trait Implementations§

§

impl<D> Freeze for Proxy<D>
where D: Freeze,

§

impl<D> RefUnwindSafe for Proxy<D>
where D: RefUnwindSafe,

§

impl<D> Send for Proxy<D>
where D: Send,

§

impl<D> Sync for Proxy<D>
where D: Sync,

§

impl<D> Unpin for Proxy<D>
where D: Unpin,

§

impl<D> UnwindSafe for Proxy<D>
where D: UnwindSafe,

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

impl<T> ErasedDestructor for T
where T: 'static,