Skip to main content

LLMEngine

Struct LLMEngine 

Source
pub struct LLMEngine {
    pub tokenizer: Arc<dyn TokenizerTrait>,
    /* private fields */
}
Expand description

§Engine Wrapper

A universal wrapper for LLM engines.

It aggregates the specific inference backend and a tokenizer used to calculate context management overhead.

Fields§

§tokenizer: Arc<dyn TokenizerTrait>

The active tokenizer utilized for high-speed length estimation.

Implementations§

Source§

impl LLMEngine

Source

pub fn load(cfg: LLMEngineConfig) -> Result<Self>

Loads the corresponding specific underlying engine based on the unified configuration.

Source

pub fn from_custom(backend: Box<dyn LLMEngineTrait>) -> Result<Self>

👎Deprecated since 0.3.3:

use LLMEngine::load(LLMEngineConfig::Custom(backend)) instead

Injects a custom LLM backend via the LLMEngineConfig::Custom variant.

§Deprecation

This method is deprecated. Use LLMEngine::load(LLMEngineConfig::Custom(backend)) instead.

§Migration
// Old (deprecated):
let engine = LLMEngine::from_custom(Box::new(MyEngine))?;

// New (recommended):
let engine = LLMEngine::load(LLMEngineConfig::Custom(Box::new(MyEngine)))?;
Source

pub fn with_custom_tokenizer<T: TokenizerTrait + 'static>( self, tokenizer: T, ) -> Self

Replaces the framework’s default cl100k_base tokenizer, injecting an accurate tokenization algorithm that better matches the specific model.

Source

pub async fn chat(&self, request: LLMRequest) -> Result<String>

§Proxy Method Routing

Executes a complete synchronous chat inference, returning the full response string.

Source

pub async fn chat_stream(&self, request: LLMRequest, tx: Sender<Result<String>>)

Executes streaming chat inference.

Generated text slices must be wrapped in Ok(String) and sent via tx. If an error occurs, it should send Err(AmbiError) via tx, and the framework will automatically interrupt the stream and clean up resources.

Source

pub fn reset_context(&self)

Resets the engine context (e.g., clearing the KV Cache for local inference engines).

Source

pub fn supports_multimodal(&self) -> bool

Declares whether the engine backend supports multimodal input (image parsing).

If false, the framework will perform a fail-fast interception when processing inputs containing images.

Source

pub fn count_tokens(&self, text: &str) -> Result<usize>

Fast, purely synchronous token calculation to support the Agent’s memory eviction algorithm.

Source

pub fn backend_downcast_ref<T: 'static>(&self) -> Result<&T>

Downcasts the engine backend to a concrete type.

Auto Trait Implementations§

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> Any for T
where T: Any,

Source§

impl<T> MaybeSend for T
where T: Send,