pub struct CompletionResponse {
pub id: String,
pub model: String,
pub choices: Vec<CompletionChoice>,
pub usage: Usage,
pub created: Option<i64>,
pub provider: Option<String>,
pub healing_metadata: Option<HealingMetadata>,
}Expand description
A completion response from an LLM provider.
Fields§
§id: StringUnique response identifier
model: StringModel used for completion
choices: Vec<CompletionChoice>List of completion choices
usage: UsageToken usage statistics
created: Option<i64>Unix timestamp of creation
provider: Option<String>Provider that generated this response
healing_metadata: Option<HealingMetadata>Healing metadata (present if response was healed after parse failure)
Implementations§
Source§impl CompletionResponse
impl CompletionResponse
Sourcepub fn content(&self) -> Option<&str>
pub fn content(&self) -> Option<&str>
Get the content of the first choice (convenience method).
§Example
use simple_agent_type::response::{CompletionResponse, CompletionChoice, Usage, FinishReason};
use simple_agent_type::message::Message;
let response = CompletionResponse {
id: "resp_123".to_string(),
model: "gpt-4".to_string(),
choices: vec![CompletionChoice {
index: 0,
message: Message::assistant("Hello!"),
finish_reason: FinishReason::Stop,
logprobs: None,
}],
usage: Usage {
prompt_tokens: 10,
completion_tokens: 5,
total_tokens: 15,
},
created: None,
provider: None,
healing_metadata: None,
};
assert_eq!(response.content(), Some("Hello!"));Sourcepub fn first_choice(&self) -> Option<&CompletionChoice>
pub fn first_choice(&self) -> Option<&CompletionChoice>
Get the first choice.
Sourcepub fn was_healed(&self) -> bool
pub fn was_healed(&self) -> bool
Check if this response was healed after a parsing failure.
Returns true if healing metadata is present, indicating the response
required transformation to be parseable.
§Example
use simple_agent_type::response::{CompletionResponse, CompletionChoice, Usage, FinishReason, HealingMetadata};
use simple_agent_type::message::Message;
use simple_agent_type::coercion::CoercionFlag;
let mut response = CompletionResponse {
id: "resp_123".to_string(),
model: "gpt-4".to_string(),
choices: vec![],
usage: Usage::new(10, 5),
created: None,
provider: None,
healing_metadata: None,
};
assert!(!response.was_healed());
response.healing_metadata = Some(HealingMetadata::new(
vec![CoercionFlag::StrippedMarkdown],
0.9,
"Parse error".to_string(),
));
assert!(response.was_healed());Sourcepub fn confidence(&self) -> f32
pub fn confidence(&self) -> f32
Get the confidence score of the response.
Returns 1.0 if the response was not healed (perfect confidence), otherwise returns the confidence score from healing metadata.
§Example
use simple_agent_type::response::{CompletionResponse, CompletionChoice, Usage, FinishReason, HealingMetadata};
use simple_agent_type::message::Message;
use simple_agent_type::coercion::CoercionFlag;
let mut response = CompletionResponse {
id: "resp_123".to_string(),
model: "gpt-4".to_string(),
choices: vec![],
usage: Usage::new(10, 5),
created: None,
provider: None,
healing_metadata: None,
};
assert_eq!(response.confidence(), 1.0);
response.healing_metadata = Some(HealingMetadata::new(
vec![CoercionFlag::StrippedMarkdown],
0.8,
"Parse error".to_string(),
));
assert_eq!(response.confidence(), 0.8);Trait Implementations§
Source§impl Clone for CompletionResponse
impl Clone for CompletionResponse
Source§fn clone(&self) -> CompletionResponse
fn clone(&self) -> CompletionResponse
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 CompletionResponse
impl Debug for CompletionResponse
Source§impl<'de> Deserialize<'de> for CompletionResponse
impl<'de> Deserialize<'de> for CompletionResponse
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
Source§impl PartialEq for CompletionResponse
impl PartialEq for CompletionResponse
Source§impl Serialize for CompletionResponse
impl Serialize for CompletionResponse
impl StructuralPartialEq for CompletionResponse
Auto Trait Implementations§
impl Freeze for CompletionResponse
impl RefUnwindSafe for CompletionResponse
impl Send for CompletionResponse
impl Sync for CompletionResponse
impl Unpin for CompletionResponse
impl UnwindSafe for CompletionResponse
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