Request

Struct Request 

Source
pub struct Request {
    pub prompt: String,
    pub preamble: String,
    pub knowledges: Vec<String>,
    pub history: Vec<Message>,
    pub max_tokens: Option<usize>,
    pub temperature: Option<f32>,
    pub tools: Vec<ToolDefinition>,
    pub documents: Vec<Document>,
}
Expand description

Represents a request sent to a language model for generating a completion response.

This struct provides a flexible interface to configure the language model’s behavior and enhance its outputs with additional tools, documents, and contextual information. It is suited for a wide range of use cases, from simple prompt completions to advanced multi-turn interactions or tool-augmented tasks.

Fields§

§prompt: String

The user-provided input text that the language model must complete or respond to.

This is the primary query or message that serves as the basis for the model’s response.

§preamble: String

A system-defined preamble to guide the behavior and tone of the model.

Use this field to provide specific instructions to the model, such as role-playing as an expert, adhering to a formal tone, or aligning responses with certain principles.

§knowledges: Vec<String>

A collection of knowledge sources available for enriching the request prompt.

These knowledge sources are represented as Box<dyn Knowledge> objects, which implement the Knowledge trait. Each knowledge source can process the input prompt and return additional contextual or enriched information.

§history: Vec<Message>

A sequence of previous messages exchanged in the conversation.

This provides context for multi-turn interactions, enabling the model to maintain coherence and relevance across turns.

§max_tokens: Option<usize>

Optional: Defines the maximum number of tokens allowed for the generated response.

When set, this value restricts the length of the model’s output. If not provided, the system may use a default or determine the length dynamically.

§temperature: Option<f32>

Optional: Controls the randomness of the text generation process.

Higher values (e.g., 1.0) result in more creative and diverse responses, while lower values (e.g., 0.2) make the output more focused and deterministic. If None, the system uses a default temperature.

§tools: Vec<ToolDefinition>

A collection of tools available for tool-based interactions with the model.

Tools are external systems, APIs, or utilities that the model can invoke to perform specific tasks or enhance its responses.

§documents: Vec<Document>

A collection of documents that provide context or background information for the model.

These documents can be used by the model to generate more accurate and informed responses. Examples include research papers, policy documents, or reference materials.

Implementations§

Source§

impl Request

Source

pub fn new(prompt: String, preamble: String) -> Self

Constructs a new Request with the given prompt and preamble.

§Arguments
  • prompt: A string representing the user’s input prompt.
  • preamble: A string that defines the system preamble to guide the model.
§Returns

A new instance of the Request struct.

Trait Implementations§

Source§

impl Clone for Request

Source§

fn clone(&self) -> Request

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 Request

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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> 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T
where T: Send + Sync,