pub struct NativeProvider { /* private fields */ }Expand description
Provider adapter: an in-process NativeLlm behind the async LlmProvider trait. Generation is
CPU-bound and &mut, so it runs under a mutex on a blocking thread.
Implementations§
Source§impl NativeProvider
impl NativeProvider
pub fn new(llm: NativeLlm) -> NativeProvider
Trait Implementations§
Source§impl LlmProvider for NativeProvider
impl LlmProvider for NativeProvider
fn name(&self) -> &str
Source§fn synthesizes(&self) -> bool
fn synthesizes(&self) -> bool
Whether this provider produces trustworthy natural-language synthesis of tool results. Large
models (Bedrock, big OpenAI-compatible) do; small on-device tool-callers (Needle, the native
1.7B) do NOT — for those the agent renders a deterministic template from the program result
instead of trusting the model to phrase the numbers. Default
true.Source§fn chat<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
system: &'life1 str,
msgs: &'life2 [Msg],
tools: &'life3 [ToolSpec],
) -> Pin<Box<dyn Future<Output = Result<Turn, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn chat<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
system: &'life1 str,
msgs: &'life2 [Msg],
tools: &'life3 [ToolSpec],
) -> Pin<Box<dyn Future<Output = Result<Turn, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
One turn: given the system prompt, conversation, and available tools, return the model’s reply
(assistant text and/or tool calls).
Source§fn chat_json<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
system: &'life1 str,
msgs: &'life2 [Msg],
schema: &'life3 Value,
name: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Value>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn chat_json<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
system: &'life1 str,
msgs: &'life2 [Msg],
schema: &'life3 Value,
name: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Value>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
One turn whose output is constrained to a JSON schema by the decoder, rather than requested by a
tool definition and hoped for. Read more
Auto Trait Implementations§
impl Freeze for NativeProvider
impl RefUnwindSafe for NativeProvider
impl Send for NativeProvider
impl Sync for NativeProvider
impl Unpin for NativeProvider
impl UnsafeUnpin for NativeProvider
impl UnwindSafe for NativeProvider
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedDestructor for Twhere
T: 'static,
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> ⓘ
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 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> ⓘ
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 moreCreates a shared type from an unshared type.