Skip to main content

Request

Struct Request 

Source
pub struct Request<'a, C: ?Sized> { /* private fields */ }
Expand description

A fluent request being built against a client. Created via RequestExt.

Implementations§

Source§

impl<'a, C: ?Sized> Request<'a, C>

Source

pub fn system(self, system: impl Into<String>) -> Self

Attach system/context instructions.

Built-in provider clients send this through the provider’s first-class system field or message role for every terminal. This keeps the static instruction prefix separate from the dynamic user prompt, which also improves provider prompt-cache reuse. Custom LLMClient implementations inherit a backwards-compatible concatenation fallback unless they override the request hooks on that trait.

Source

pub fn media(self, media: impl Into<Vec<MediaFile>>) -> Self

Attach media (images, or PDFs where the provider supports them) to the request. Used by materialize, generate, and run. Streaming terminals reject attached media because their client APIs are text-only.

Source§

impl<C: LLMClient + Sync + ?Sized> Request<'_, C>

Source

pub async fn materialize<T>(self, prompt: &str) -> Result<T>
where T: Instructor + DeserializeOwned + Send + 'static,

Materialize a structured T, applying any attached system context and media.

Source

pub async fn materialize_with_attempts<T>( self, prompt: &str, ) -> Result<MaterializeReport<T>, MaterializeFailure>
where T: Instructor + DeserializeOwned + Send + 'static,

Materialize a structured T with cumulative usage and every provider attempt.

Source

pub async fn generate(self, prompt: &str) -> Result<String>

Generate raw text, applying any attached system context and media.

Auto Trait Implementations§

§

impl<'a, C> Freeze for Request<'a, C>
where C: ?Sized,

§

impl<'a, C> RefUnwindSafe for Request<'a, C>
where C: RefUnwindSafe + ?Sized,

§

impl<'a, C> Send for Request<'a, C>
where C: Sync + ?Sized,

§

impl<'a, C> Sync for Request<'a, C>
where C: Sync + ?Sized,

§

impl<'a, C> Unpin for Request<'a, C>
where C: ?Sized,

§

impl<'a, C> UnsafeUnpin for Request<'a, C>
where C: ?Sized,

§

impl<'a, C> UnwindSafe for Request<'a, C>
where C: RefUnwindSafe + ?Sized,

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: Sized + 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: Sized + 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