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: StringThe 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: StringA 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§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Request
impl RefUnwindSafe for Request
impl Send for Request
impl Sync for Request
impl Unpin for Request
impl UnwindSafe for Request
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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