Skip to main content

Backend

Struct Backend 

Source
pub struct Backend {
    pub kind: Kind,
    pub base_url: String,
    pub model: String,
    /* private fields */
}
Expand description

A multi-provider LLM backend.

Supports Ollama (via OpenAI-compatible API), OpenAI, and Anthropic. All three providers use the same internal Message/ToolCall format — Anthropic’s content-block schema is translated at the wire boundary.

§Example

use agnt_net::Backend;

let ollama = Backend::ollama("gemma4:e4b");
let openai = Backend::openai("gpt-4o-mini", "sk-...");
let anthropic = Backend::anthropic("claude-sonnet-4-6", "sk-ant-...");

Fields§

§kind: Kind

Which provider schema to use on the wire.

§base_url: String

Base URL for the provider’s API.

§model: String

Model identifier passed in every request.

Implementations§

Source§

impl Backend

Source

pub fn ollama(model: &str) -> Backend

Create a backend pointing at a local Ollama server.

Uses http://localhost:11434/v1 by default (the OpenAI-compatible endpoint).

Source

pub fn openai(model: &str, api_key: &str) -> Backend

Create a backend for OpenAI’s API.

Source

pub fn anthropic(model: &str, api_key: &str) -> Backend

Create a backend for Anthropic’s native API.

Message format is automatically translated to Anthropic’s content-block schema at the wire boundary — you still work with the OpenAI-style Message type internally.

Source

pub fn with_timeouts( self, connect: Duration, read: Duration, ) -> Result<Backend, String>

Override the HTTP timeouts for this backend instance.

Builds a fresh ureq Agent with the supplied connect/read timeouts and attaches it to this Backend. Subsequent requests made via this instance will use the custom Agent instead of the process-wide shared one.

Returns an error if TLS initialization fails.

Source

pub fn chat( &self, messages: &[Message], tools: &Value, sink: Option<&mut dyn FnMut(&str)>, ) -> Result<Message, String>

Trait Implementations§

Source§

impl Clone for Backend

Source§

fn clone(&self) -> Backend

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Backend

Source§

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

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

impl LlmBackend for Backend

Source§

fn model(&self) -> &str

The model identifier this backend is configured for (e.g. gemma4:e4b).
Source§

fn chat( &self, messages: &[Message], tools: &Value, on_token: Option<&mut dyn FnMut(&str)>, ) -> Result<Message, BackendError>

Run one inference turn with the given conversation and tool schemas. Read more

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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