pub struct LlmResponse {
pub content: Content,
pub finish_reason: Option<String>,
pub usage: Option<TokenUsage>,
}Expand description
The response from an LLM generation request.
Fields§
§content: ContentThe generated content.
finish_reason: Option<String>Finish reason (if available).
usage: Option<TokenUsage>Token usage (if available).
Implementations§
Source§impl LlmResponse
impl LlmResponse
Sourcepub fn tool_call(name: impl Into<String>, args: Value) -> Self
pub fn tool_call(name: impl Into<String>, args: Value) -> Self
A model turn that calls one tool.
Sourcepub fn tool_calls<N: Into<String>>(
calls: impl IntoIterator<Item = (N, Value)>,
) -> Self
pub fn tool_calls<N: Into<String>>( calls: impl IntoIterator<Item = (N, Value)>, ) -> Self
A model turn that calls several tools at once, in order.
Sourcepub fn append(&mut self, chunk: LlmResponse)
pub fn append(&mut self, chunk: LlmResponse)
Add a streamed chunk to this response: its parts are appended (adjacent text merged), and its finish reason and usage, when present, replace these — a provider’s streamed usage is cumulative.
Sourcepub fn with_usage(self, prompt_tokens: u32, completion_tokens: u32) -> Self
pub fn with_usage(self, prompt_tokens: u32, completion_tokens: u32) -> Self
Attach token usage, as a provider reports it.
Sourcepub fn function_calls(&self) -> Vec<&FunctionCall>
pub fn function_calls(&self) -> Vec<&FunctionCall>
Extract function calls from the response.
Trait Implementations§
Source§impl Clone for LlmResponse
impl Clone for LlmResponse
Source§fn clone(&self) -> LlmResponse
fn clone(&self) -> LlmResponse
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LlmResponse
impl Debug for LlmResponse
Source§impl<'de> Deserialize<'de> for LlmResponse
impl<'de> Deserialize<'de> for LlmResponse
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for LlmResponse
impl RefUnwindSafe for LlmResponse
impl Send for LlmResponse
impl Sync for LlmResponse
impl Unpin for LlmResponse
impl UnwindSafe for LlmResponse
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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 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>
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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].