Skip to main content

ChatBuilder

Struct ChatBuilder 

Source
pub struct ChatBuilder { /* private fields */ }
Expand description

Builder for creating and sending chat requests to the LLM canister.

Implementations§

Source§

impl ChatBuilder

Source

pub fn new(model: impl Into<String>) -> Self

Creates a new chat builder with a model.

model is the canister’s model identifier, e.g. "llama3.1:8b" (free) or "gemma3:27b" (paid). See the README for the current list.

Source

pub fn with_messages(self, messages: Vec<ChatMessage>) -> Self

Sets the messages for the chat.

Source

pub fn with_tools(self, tools: Vec<Tool>) -> Self

Sets the tools for the chat.

Source

pub fn with_canister(self, canister: Principal) -> Self

Overrides the LLM canister to call.

By default the SDK addresses the mainnet LLM canister (w36hm-eqaaa-aaaal-qr76a-cai), unless icp deploy has auto-injected PUBLIC_CANISTER_ID:llm on this canister — in which case that value is used. Set this only when neither default is what you want (e.g. when pointing at a fork, a mock, or a staging deployment under a different name).

Source

pub async fn send(self) -> Response

Sends the chat request to the LLM canister.

Attaches CYCLES_PER_CHAT cycles to pay for paid models. Free models refund the full amount. The calling canister must hold at least that many cycles or this call traps.

Trait Implementations§

Source§

impl Debug for ChatBuilder

Source§

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

Formats the value using the given formatter. 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

Should always be Self
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.