pub struct ChatRequest {Show 20 fields
pub messages: Vec<ChatMessage>,
pub system: Option<String>,
pub model: Option<String>,
pub frequency_penalty: Option<f32>,
pub logit_bias: Option<BTreeMap<usize, f32>>,
pub logprobs: Option<bool>,
pub top_logprobs: Option<u8>,
pub max_tokens: Option<u32>,
pub n: Option<u32>,
pub presence_penalty: Option<f32>,
pub response_format: Option<Value>,
pub seed: Option<i64>,
pub stop: Vec<String>,
pub temperature: Option<f32>,
pub top_p: Option<f32>,
pub tools: Vec<Tool>,
pub tool_choice: Option<Value>,
pub user: Option<String>,
pub stream: bool,
pub stream_options: Option<StreamOptions>,
}
Expand description
The request that can be submitted to the proxy, for transformation and submission to a provider.
Fields§
§messages: Vec<ChatMessage>
The messages in the chat so far.
system: Option<String>
A separate field for system message as an alternative to specifying it in
messages
.
model: Option<String>
The model to use. This can be omitted if the proxy options specify a model.
frequency_penalty: Option<f32>
How to penalize tokens based on their frequency in the text so far
logit_bias: Option<BTreeMap<usize, f32>>
Specific control of certain token probabilities
logprobs: Option<bool>
Return the logprobs of the generated tokens
top_logprobs: Option<u8>
If logprobs
is true, how many logprobs to return per token.
max_tokens: Option<u32>
max_tokens is optional for some providers but you should include it. We don’t require it here for compatibility when wrapping other libraries that may not be aware they are using Chronicle.
n: Option<u32>
Generate multiple chat completions concurrently. Not every model provider supports this.
presence_penalty: Option<f32>
How to penalize tokens based on their existing presence in the text so far
response_format: Option<Value>
Force JSON output
seed: Option<i64>
A random seed to use when generating the response.
stop: Vec<String>
Tell the model to stop when it encounters these token sequences
temperature: Option<f32>
Temperature to use when generating the response
top_p: Option<f32>
Customize the top-P probability of tokens to consider when generating the response
tools: Vec<Tool>
Tools available for the model to use
tool_choice: Option<Value>
Customize how the model chooses tools
user: Option<String>
The “user” to send to the provider.
stream: bool
Send the response back as a stream of chunks.
stream_options: Option<StreamOptions>
For OpenAI, this lets us enable usage when streaming. Chronicle will set this automatically when appropriate.
Implementations§
Source§impl ChatRequest
impl ChatRequest
Sourcepub fn transform(&mut self, options: &ChatRequestTransformation<'_>)
pub fn transform(&mut self, options: &ChatRequestTransformation<'_>)
Transform a chat request to fit different variations on the OpenAI format.
Sourcepub fn merge_message_names(&mut self)
pub fn merge_message_names(&mut self)
For providers that don’t support a name
field in their message,
convert messages with names to the format “{name}: {content}
Sourcepub fn move_system_to_messages(&mut self)
pub fn move_system_to_messages(&mut self)
Move the entry in the system
field to the start of messages
.
Sourcepub fn move_system_message_to_top_level(&mut self)
pub fn move_system_message_to_top_level(&mut self)
Move a system
role ChatMessage to the system
field
Trait Implementations§
Source§impl Clone for ChatRequest
impl Clone for ChatRequest
Source§fn clone(&self) -> ChatRequest
fn clone(&self) -> ChatRequest
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ChatRequest
impl Debug for ChatRequest
Source§impl Default for ChatRequest
impl Default for ChatRequest
Source§fn default() -> ChatRequest
fn default() -> ChatRequest
Source§impl<'de> Deserialize<'de> for ChatRequest
impl<'de> Deserialize<'de> for ChatRequest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ChatRequest
impl RefUnwindSafe for ChatRequest
impl Send for ChatRequest
impl Sync for ChatRequest
impl Unpin for ChatRequest
impl UnwindSafe for ChatRequest
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request